[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to turn off internal monitor when using external one (solved, sort of)

On 02/21/05 17:57:38, Jason Martens wrote:
Gerardo Ballabio wrote:
| (WW) RADEON(0): Invalid Monitor type specified for 1st port
| (WW) RADEON(0): Invalid Monitor type specified for 2nd port
| (WW) RADEON(0): No valid monitor specified, force to CRT on 1st
| Actually, while your configuration sets "MonitorLayout" as "LCD,
| those don't seem valid values, if I read the radeon man page

Yes, indeed I am getting that error.

Indeed. I argue that:
1) something in the Gnome startup procedure ignores/overrides the "PanelOff" option and turns the backlight on -- I regard this as a Gnome bug, and I'm going to file a bug report. 2) the above doesn't happen to you because your X configuration is actually screwed, as a consequence the laptop panel is disabled, docked or not.

I tried to fix the X configuration by setting "MonitorLayout" to various combinations, but the undocked laptop only seems to work with "LVDS" as first value, and if I set that, the resolution for the internal monitor is used also when docked. Removing options "DDCMode" and "MonitorLayout" however works -- in fact, they were missing from my original X configuration. I regard this as an indication that DDC autodetection fails on this hardware.

Thus we are still left with the problem with Gnome, but I've found a (rather ugly) workaround. After some googling, I found a little program called "radeontool" that can turn the backlight on/off, and do a few other things. I've edited it and added a check on the screen resolution, so that it only turns the backlight off if it matches that of the external monitor (if you know a better way to check whether the laptop is docked, please let me know), and I've set up my Gnome session so as to run it automatically at login.

Here's the exact procedure:
1) remove options "DDCMode" and "MonitorLayout" from your X configuration, and restart X. 2) compile backlight-off (source attached; original radeontool.c file included as well). I've set the external monitor resolution to 1280x960; you may want to change this number.
3) install it *setuid root*.
4) add it to the list of programs to be run at startup (Applications -> Desktop Preferences -> Advanced -> Sessions -> Startup Programs). 5) put this line at the end of your ~/.gnomerc file (if it doesn't exist, create it): "exec gnome-session --purge-delay=5000". This is needed to work around Debian bug #253729 (which is marked as closed, but it looks like it isn't, see http://mail.gnome.org/archives/gnome-list/2004-September/msg00028.html). For me, a delay of 5000 (milliseconds) is fine, since that's roughly what it takes to complete startup; you may want to decrease it.

Now, when you log into Gnome docked, the backlight should turn on for a very short time, then off again.


Attachment: backlight-off.tar.gz
Description: application/compressed-tar

Reply to: