Problem: While updating from SuSE 9.1, when the SuSE 9.3 installation system activates the X server for the GUI dialog, the displayed colours are all wrong:
The resolution appears to be set correctly (1024x768), but something goes wrong with the mapping between pixel values and displayed colours. The background is a very dark purple, and the pixels of the anti-aliased glyphs have fairly random colours. The text is very difficult to read (almost as bad as for a Tempest eavesdropper ;-). The X server appears to use the VESA driver.
Details:
Workaround: The problem occurs only in the initial update dialogue. After navigating that one semi-blindly (i.e., with some guesswork as to what the displayed hardly readable text says), after the system rebooted into the newly upgraded kernel, the screen mode is fine. A quick look into /var/log/Xorg.0.log confirms that the X server is now using the TRIDENT driver instead of the VESA one.
However, with the TRIDENT driver, any attempt to activate the external VGA output (for use with a data projector) disrupts the displayed image severely (a vertical stripe of 1/4 of the image area is repeated three times).
Diagnosis and solution: This is a known problem in the VESA driver in Xorg 6.8.2 for this chipset, which is fixed by this single-character patch by Jonas Lund, which appeared in XFree86 4.4.99.4 (27 April 2004) but had not found its way yet into the X.Org distribution:
--- vesa.c +++ vesa.c @@ -1071,7 +1071,7 @@ if (data->data->XResolution != pScrn->displayWidth) VBESetLogicalScanline(pVesa->pVbe, pScrn->displayWidth); - if (pScrn->bitsPerPixel >= 8 && pVesa->vbeInfo->Capabilities[0] & 0x01) + if (pScrn->bitsPerPixel == 8 && pVesa->vbeInfo->Capabilities[0] & 0x01) VBESetGetDACPaletteFormat(pVesa->pVbe, 8); pScrn->vtSema = TRUE;It ensures that VBESetGetDACPaletteFormat() in the vesa driver is not called for modes with depth > 8. See also SuSE/Novell bugzilla bug 80333. Special thanks to Stephan Dirsch at SuSE for quickly providing me with a patched VESA driver. This patched VESA driver is preferable over the TRIDENT driver, because the latter has problems with the external VGA output. Since the TRIDENT driver for this chipset is not accelerated, there are no other advantages using it.
created 2005-04-23 – last modified 2005-04-30 – http://www.cl.cam.ac.uk/~mgk25/suse93-problems/