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

display switching under X/debian



Argh!!!!  I'm trapped in XServer hell, and I need a workaround!

I'm running Debian testing on an IBM thinkpad (X21) whose graphics
card is an "ATI Rage Mobillity P/M AGP 2x (rev 64)" aka MACH64. 

I foolishly upgraded to XFree86 4.3 as part of a general update.  It
turns out (after much gnashing of teeth) that in release 4.3 XFree86
disabled display switching via the BIOS (that is, by Fn-F7 or
similar). 

Leif Delgass describes the problem perfectly in a comment (#6) posted
to a RedHat bug report (https://bugzilla.redhat.com/bugzilla/long_list.cgi?buglist=84944)
when he says:

   I think it's more of a feature than a bug. ;) Based on your X log
   in the bugzilla bug, your laptop has a Rage Mobility mach64 chip.
   Display switching via the BIOS (with the X server's VT active) was
   disabled for mach64s with dual-CRTCs in XFree86 4.2.99.1:

   http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c.diff?r1=1.14&r2=1.15

   My guess is that allowing BIOS-initiated display switches with the
   X server active could cause problems because the driver's cached
   register state might not be valid after the display switch.  For
   example, if you switch from the LCD to the CRT, the driver would
   continue to program the card as if the LCD were still active, when
   in fact the BIOS has changed the card's state out from under the
   driver.

   In the revision above, the feature bit for display switching is
   re-enabled when switching away to a text console VT (assuming it
   was enabled in the BIOS at server startup), which is why the
   display switching works there, but the driver disables the feature
   bit and restores its cached state when switching back to the X
   server.

XFree86 says this can be reenabled in 4.4, but Debian isn't going
there.  Since XOrg's server split at 4.2.99, for all I know it has the
same bug/feature.  And, in my experience, changing X servers can be
wildly painful, so I'd rather wait until something has been reasonably
well tested before I take the plunge.

Workarounds are tough: For now, the best I can come up with is to
restart the X server with ctl-alt-backspace and hit FN-F7 twice before
the server starts.  Not real reliable.  I tried atitvout (a nice
package written by , the same person who posted that
useful diagnosis above).  Although it detects the LCD and the CRT
(well, projector) fine, it complains that "VBE call failed" when I try
to use it to select the CRT.  get-edid also complains that "VBE call
failed" so perhaps it is some ATI strangeness.

I suppose it would be possible to downgrade to an earlier XFree86, but
when I tried to do that, I get dpkg errors in preconfigure and
configure saying "discover: Bus not found".  That way seems to lie
madness.

Is there anything anyone can suggest to address this while I wait for
Debian to move to X.org or whatever is going to happen? 

Help!

Larry

-- 

Lawrence Hunter, Ph.D.
Director, Center for Computational Pharmacology
Associate Professor of Pharmacology, PMB & Computer Science

phone: +1 303 724 3574           
cell:  +1 303 324 0355
fax:   +1 303 724 3648
email: Larry.Hunter@uchsc.edu    
URL: http://compbio.uchsc.edu/hunter

US mail: PO Box 6511, MS 8303, Aurora, CO 80045-0511 USA
Express Delivery:  12801 E. 17th Ave, RC-1 South Rm L18-6101, Aurora, CO 80045

PGP key on public keyservers     



Reply to: