Laptop With Linux
From SPARK
Contents |
Unpublished
Using a laptop with Linux OS in a presentation has often caused some challenges (at least to me). Our computing friends with Win and MacOS are not free of these problems either, but somehow I get the feeling we have more problems than they do. A lot of the problems are hardware dependent, and this can be the external display unit, as well as the laptop. Some even require you to reboot your laptop with the VGA cable attached!
For the remainder of this article, I will refer to the laptop display unit as “LCD” and the external display unit as “CRT”. The latter one could be a real monitor, or a projector unit (or “beamer” as our European colleagues call them).
Step 1: plug in the cable
The first step should be to plug in the VGA cable and see if your laptop will sync up to the CRT automatically. If it does (and on my Dell 5000 1400×1024 panel this has happened once on a model InFocus LP130), you are a very lucky person, and you can stop reading now.
If it does not, most laptops have a special button to toggle the CRT “on”. Most buttons are actually a 3-toggle, so they can cycle through the three modes: CRT alone, LCD alone, and CRT + LCD together, by pressing this button again and again. On my Dell 5000 this button is Fn-F8, and is labeled “CRT/LCD”.
Don't panic if your screen goes bonkers when you toggle to CRT (it does this on mine). It probably means your X server cannot sync up, and now has problems syncing back. Normally you will be able to get your old X back (no need to reboot or kill X yet) by switching to another virtual console (VC) and coming back to X:
- ctrl alt F2 switch to VC2
- ctrl alt F7 switch back to X
and if that fails.....
- ctrl alt backspace a shortcut to kill your X server
and if even that fails.....
- ctrl alt del reboot the machine </pre>
Step 2: change the logical resolution in your current X
The “ Ctrl Alt + ” and “ Ctrl Alt – ” allow you to cycle through the working (resolution) modes in your current X server. Note that these have to be the numeric + , not the regular one. On my keyboard, this has to be done with the Fn key, so I actually have to hold down four keys at the same time:
“Ctrl Fn Alt +”.
You can simply try it, or look at your /etc/X11/XF86Config
(or /etc/X11/XF86Config-4) file where modes have been defined.
Here is the relevant section from mine; you can usually find it
at the tail end of /etc/X11/XF86Config-4:
- Section “Screen”
- Identifier “Screen0”
- Device “ATI Rage Mobility”
- Monitor “Monitor0”
- DefaultDepth 16
- Identifier “Screen0”
- Subsection “Display”
- Depth 16
- Modes “1400×1050” “1024×768”
- EndSubsection
- EndSection
- Section “Screen”
- Identifier “Screen1”
- Device “ATI Rage Mobility”
- Monitor “Monitor0”
- DefaultDepth 16
- Subsection “Display”
- Depth 16
- Modes “1024×768”
- Depth 16
- EndSubsection
- Identifier “Screen1”
- EndSection
In this example I left out the “1280×1024” mode, since it does not seem to work on my LCD. The second screen (called Screen1 here) is useful if you wind up with an external display that cannot handle the high< resolution, and your X display server has the -screen option (see below)
If your CRT will sync up in 1024 mode, you will find the virtual desktop size remains at the maximum mode size, 1400 in this case, and thus you will only get a 1024 scrolling window in this 1400 screen. This is probably not good enough for a full screen presentation, so you will need to consider the next step.
Another added note here, you may also see the following:
- Section “Device”
- Uncomment the following line to enable external display
- Option “crt_screen”
- Identifier “ATI Rage Mobility”
- Driver “ati”
- VendorName “ATI Rage Mobility”
- BoardName “ATI Rage Mobility”
- BusID
- EndSection
Notice the crt_screen option. Uncommenting it will also help using the LCD and CRT together.
Step 3: change the physical resolution in your current X
Newer releases of XFree86 have an option to change physical screen
size and/or reflection, called the RandR extension. The xrandr command provides simple command line access to this exension, e.g. on my laptop I see:
- xrandr
- SZ: Pixels Physical Refresh
0 1600×1200 ( 290mm x 221mm ) 60
- 1 1400×1050 ( 290mm x 221mm ) 59
- 2 1280×1024 ( 290mm x 221mm ) 60
- 3 1280×960 ( 290mm x 221mm ) 60
- 4 1024×768 ( 290mm x 221mm ) 60
- 5 800×600 ( 290mm x 221mm ) 60
- 6 640×480 ( 290mm x 221mm ) 60
- 7 700×525 ( 290mm x 221mm ) 59
- 8 640×512 ( 290mm x 221mm ) 60
- 9 512×384 ( 290mm x 221mm ) 60
- 10 400×300 ( 290mm x 221mm ) 60
- 11 320×240 ( 290mm x 221mm ) 60
Current rotation – normal Current reflection – none Rotations possible – normal Reflections possible – none
and with the command
- xrandr -s 4
the screen would switch to 1024×768 and most likely this will fit on the simpler external display panels. I have some anecdotal evidence that this may have screwed up my APM slightly, which interfered with my NVidia driver and could not come properly out of suspend or go into it.
Step 4: suspend the machine
Another known solution is to suspend the machine before hooking up the laptop to the external display unit. Most laptops have a suspend button, e.g., on the recent Dell Inspirons it is Fn-Esc. Some are configured to suspend if you close the lid while running on batteries.
Step 5: start a new X
If all else fails, you can start a new X. If you have a lot of good things in your current X server, and don't want to lose them, Linux does have this nice feature of being able to run a number (usually up to 6) of X servers simultaneously using the Virtual Consoles (VCs). Here is an example session where you want to keep your current X server (:0) in high resolution, and start another (lower) resolution X server (:1) for the presentation. Older version of XFree86 did not have the -xf86config option, (“X -help” to find out), but if they do, you don't have be root to run multiple resolutions:
OLD METHOD:
- Ctrl Alt F2 switch to VC2, as root
- cp /etc/X11/XF86Config-4_1024 /etc/X11/XF86Config-4
- ctrl alt F3 switch to VC3, as normal user;
- before you start X, try to toggle CRT/LCD to the CRT also
- % startx -- :1
- this new X server will appear under VC8
- now use the CRT/LCD toggle
- Ctrl Alt F7 switch to the :0 (lcd) x server
- Ctrl Alt F8 switch to the :1 (crt/lcd) x server
- when all done, and :1 will be finished, go back
- Ctrl Alt F2
- put the original one back in place for normal usage
- cp /etc/X11/XF86Config-4_1400 /etc/X11/XF86Config-4
- Ctrl Alt F7 switch back to :0
NEW METHOD:
- ctrl alt F3 switch to VC3, as normal user
- before you start X, try to toggle CRT/LCD to the CRT also
- to see if you can can the LCD to show up the console
- % startx -- :1 -xf86config XF86Config-4_1024
- this new X server will appear under VC8
- now use the CRT/LCD toggle
- or you can do this:, if you have made multiple Screen sections
- % startx -- :1 -screen Screen1
Worth noting: once you are about to start the new low resolution X, try to toggle the display mode into CRT+LCD or CRT, but try and see if the screen usage is the same. On my machine the CRT+LCD mode does not display 100% of the screen, some edges are cut-off. In CRT only mode it does use full screen (using the laptop may not be a little harder).
Also note that the crispness of colors is often different on CRT and LCD. Certainly overhead display units for presentations loose a lot of color, and what you see as clear on the LCD, will come washed out on the CRT. The gamma factor can also be different.
Some comments
FWIT: Anecdotes
The solution turned out to be to use the dual monitor setting in the display setting. I have to activate the second monitor and tell power point that I want to display the talk having the second monitor go to the projector. I actually inadvertently found that this way I can have a different screen on my laptop which allows me to have a set of notes that the audience doesn't see! This might have been there all along, but I only found it now. All in all, it's a pain, but I've got it figured out now.
On my Inspiron 8200 I cannot use the USB mouse when plugged in. So I switch to PS/2 with the usb-ps2 adapter. Can't use the wheel, but that's OK.
With the native X driver, I could not have two versions of X running, but that was solved with the Nvidia driver.
</PRE>
Links
Here are some links probably worthwhile looking at if this still leaves you confused.
The XFree86 Project, Inc.
The Linux XFree86 HOWTO
Linux Touch Screen HOWTO
XFree86 Video Timings HOWTO
Second Mouse in X mini-HOWTO



