This how-to is based on a German wiki, the man page of randr and some own experiments. It addresses some projector detection and configuration problems in Karmic:
I just upgraded a first generation Atom netbook from Jaunty to Karmic. It has the ordinary Intel GMA950 integrated graphics,
lspci | -grep VGA gave me:
Code:
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
Using a projector on the external VGA port was no problem and worked "out-of-the-box" in Jaunty, though both the internal display (native resolution 1024x600) and the projector (native resolution 1024x768) would only display at a resolution of 800x600 in mirrored mode, so the picture quality wasn't the best. But at least the projectors were reliably detected and auto-configured.
After the upgrade, more often than not the projectors were not detected at all and showed "no signal" at their VGA inputs. I don't know if it is because some of these projectors are rather old and maybe don't send any information of what resolutions they are capable so auto-configure fails or because of regressions in Intel's drivers not detecting them properly or because of something entirely different.
As the projector output wasn't working reliably out of the box, I googled around a bit and came to the following solution, witch I'd like to share here: I use scripts to manually set the display modes via randr. The following ONLY sets the projector as a clone of the internal screen, for desktop enlargement you would have to make different scripts.
Step by step guide:
1. First, edit your /etc/X11/xorg.conf
(e.g. with ALT+F2 -> gksu gedit /etc/X11/xorg.conf) and add the following lines in the screen section:
Code:
SubSection "Display"
Virtual 1024 768
EndSubSection
Afterwards, you xorg probably looks like this:
Code:
#comment lines are removed
Section "Device"
Identifier "Configured Video Device"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Virtual 1024 768
EndSubSection
EndSection
This is necessary to have the option of using resolutions larger than 1024x600 up to 1024x768 even if the projector is not connected and detected at the start of the xserver. If you want resolutions greater 1024x768 replace that value with e.g. 1920x1080 for home cinema projectors.
2. Use one or more of the following scripts:
The following scripts can be used to set the desired video output. You can use only one or multiple scripts depending on situations and your preferences. I think they are pretty much self explanatory. Just copy+paste them to a new file, name that somescript.sh and place it in a convenient place like /home/yourusername/scripts. Make them executable with
Code:
chmod +x /home/yourusername/*.sh
and finally you can make application menu shortcuts or desktop shortcuts to them for easy access.
Script 1: Sets VGA output to 1024x768 (native resolution for most projectors) and sets internal display to scale the same image to 1024x600. I mostly use this script, it gives me crystal sharp projector images at native resolution and I still have the ability to see the whole picture on the netbook, though it looks a little weired there because of the scaling.
Code:
#!/bin/bash
# ~/Scripts/1024scale.sh
# change display settings to clone mode, 1024x768 pix for VGA (projector) and scales it to the resolution of 1024x600 of the internal display
xrandr --newmode "1024x768" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode VGA1 1024x768
xrandr --fb 1024x768
xrandr --output VGA1 --mode 1024x768
xrandr --fb 1024x768 --output LVDS1 --mode 1024x600 --scale 1x1.28 --panning 0x0
Script 2: Sets VGA output to 1024x768 (native resolution for most projectors) and sets internal display to off
Code:
#!/bin/bash
# ~/Scripts/1024off.sh
# Sets VGA output to 1024x768 (native resolution for most projectors) and sets internal display to off
xrandr --newmode "1024x768" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode VGA1 1024x768
xrandr --fb 1024x768 --output VGA1 --mode 1024x768
xrandr --output LVDS1 --off
Script 3: Sets VGA output to 1024x768 (native resolution for most projectors) and sets internal display to diplay an 1024x600 part of it with panning.
Code:
#!/bin/bash
# ~/Scripts/1024scale.sh
# sets VGA output to 1024x768 and sets internal display to diplay an 1024x600 part of it with panning.
xrandr --newmode "1024x768" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode VGA1 1024x768
xrandr --output VGA1 --mode 1024x768
xrandr --fb 1024x768 --output LVDS1 --mode 1024x600 --panning 0x768 --scale 1x1
Script 4: Change display settings to clone mode, 800x600 pix for VGA (projector) and internal display. This is my fallback option.
Code:
#!/bin/bash
# ~/Scripts/800clone.sh
# change display settings to clone mode, 800x600 pix for VGA and projector
xrandr --output VGA1 --off
xrandr --output LVDS1 --off
xrandr --fb 800x600
xrandr --output VGA1 --mode 800x600 --rate 60
xrandr --output LVDS1 --mode 800x600 --same-as VGA1 --auto --scale 1x1 --panning 0x0
I hope this will be useful to some and may save a couple presentations from technical problems :-)
Bookmarks