Red Hat Bugzilla – Bug 206147
Xen paravirt framebuffer is mangled under firstboot
Last modified: 2007-11-30 17:11:42 EST
Description of problem:
When the firstboot program starts up in a Xen paravirt guest, the framebuffer is
completely mangled. The screen is half-width & duplicated side-by-side, and has
a serious colour shift across it.
Version-Release number of selected component (if applicable):
2.6.17-1.2630.fc6xen #1 SMP Wed Sep 6 16:40:06 EDT 2006 x86_64 x86_64 x86_64
Steps to Reproduce:
1. Provision a new rawhide guest
2. Attach VNC viewer to guest display at first boot after installation
3. Wait for firstboot to launch
Screen is half-size & colour shifted
Screen displays "normally"
Hacking the rhpxl sources to save Xorg logs to a file rather than /dev/null, I
managed to compare the Xorg logs to normal X startup under the Xen paravirt
framebuffer. The critical difference is:
< (**) FBDEV(0): Depth 24, (--) framebuffer bpp 32
< (==) FBDEV(0): RGB weight 888
> (**) FBDEV(0): Depth 16, (--) framebuffer bpp 16
> (==) FBDEV(0): RGB weight 565
So, firstboot is starting an X server in 16 bpp mode, which explains the
half-width display & the 565 rgb weight explains the colour shift.
The question is how is this even possible ? The kernel paravirt framebuffer
driver is hardcoded to 32bpp, 800x600 so there should be no way for the
firstboot Xorg server to even try a 16bpp display - it simply isn't supported
by the virtual display driver.
Created attachment 136072 [details]
Log file from Xorg when running under firstboot
Created attachment 136073 [details]
Logfile from Xorg when running (normally) under GDM
Created attachment 136074 [details]
Display info when running firstboot
Created attachment 136076 [details]
Display info when running (normally) under GDM
Created attachment 136077 [details]
Screenshot of mangled firstboot display
Okay, firstboot fixed to use the same logic as everything else which will make
this a non-issue.