[Debian-eeepc-devel] Video out toggling

Phil Endecott spam_from_debian_eee at chezphil.org
Tue Sep 9 21:42:35 UTC 2008

Hi Everyone,

I have been playing with Fn+F5 video out toggling on my '901.  I would 
guess that most of this applies equally to the smaller Eees.  Assorted 
observations follow:

1. If the external monitor is attached when X starts, it chooses a size 
based on the DDC from the external monitor and the LCD just displays 
the top left corner (I don't think there's a way to pan this, is 
there?).  This was surprising; I have no idea how to fix it.

2. Attempting to toggle when the XDM login screen is displayed doesn't 
work.  My guess is that DISPLAY and/or XAUTHORITY is not being set 
correctly in this case.  This could presumably be fixed in the 
scripts.  (Where do errors from e.g. the xrandr command in the 
vga-toggle.sh script go to?)

3. The default script (well, the version that I have) sets the mode for 
the external monitor to 640x480, so only the top left portion of the 
screen is shown.  Changing it to 1024x600 in 
/etc/default/eeepc-acpi-scripts fails because 1024x600 is not a mode 
that my external monitor advertises in its DDC.  (In fact, I guess that 
very few if any monitors would advertise this mode; it's not one of the 
standard modes that needs only one bit of DDC data, and there's limited 
space in the DDC ROM for advertising non-standard modes.)  However, I 
would be very surprised if there are any monitors made this millennium 
that would fail to display this mode if given it; at most you would 
need to press the "auto" button.  And X already knows the timings for 
it because it's supplying it to the panel, so all that you need to do is

   xrandr --addmode VGA 1024x600

before the existing "xrandr --output VGA --mode" and it will just 
work.  A minor snag is that the current split between 
/etc/acpi/actions/vga-toggle.sh and /etc/default/eeepci-acpi-scripts 
doesn't suit this configuration.

4. 1024x600 renders no worse than 640x480 on my 1600x1200 external 
monitor; however, the scaling that the monitor does does not look 
great.  1024x768 looks much better after scaling because it's the same 
scale factor in X and Y.  But 1024x768 is better than the LCD.  The 
solution is to use a 1024x600 "letter box" mode where there are 600 
active lines and 168 blank lines, so that the monitor thinks it's 
1024x768.  I got this to work with the following:

   xrandr --newmode 1024x600LB 78.8 1024 1040 1136 1312 600 601 604 800
   xrandr --addmode VGA 1024x600LB
   xrandr --output VGA --mode 1024x768LB

That works, though it puts all the blank lines at the top of the 
image.  For some reason my monitor didn't like it when I tried to put 
half the lines above and half below, but I may have mis-typed 
something.  I'll have to get my scope out and try again.

Presumably with some clever scripting you could cycle through all these 
various possibilities.

Still to do:

- I would be interested to hear from anyone with a widescreen monitor 
(e.g. 1440x900) who can try this.

- Is there any way to use the native resolution of the external monitor 
and to show a scaled-down version on the Eee?

- I am very keen to get external monitor switching working for the 
console.  Also I'd like to get a 1024x600 console, which I think needs 
either a BIOS fix or some serious surgery in the intelfb driver.  If 
anyone knows anything at all about this, _please_ get in touch!

Cheers,  Phil.

More information about the Debian-eeepc-devel mailing list