Bug 206147

Summary: Xen paravirt framebuffer is mangled under firstboot
Product: [Fedora] Fedora Reporter: Daniel Berrangé <berrange>
Component: xenAssignee: Xen Maintainance List <xen-maint>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bstein, katzj
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-09-12 15:22:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Log file from Xorg when running under firstboot
none
Logfile from Xorg when running (normally) under GDM
none
Display info when running firstboot
none
Display info when running (normally) under GDM
none
Screenshot of mangled firstboot display none

Description Daniel Berrangé 2006-09-12 14:37:18 UTC
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
GNU/Linux


How reproducible:
Always

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
  
Actual results:
Screen is half-size & colour shifted

Expected results:
Screen displays "normally"

Additional info:
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.

Comment 1 Daniel Berrangé 2006-09-12 14:37:18 UTC
Created attachment 136072 [details]
Log file from Xorg when running under firstboot

Comment 2 Daniel Berrangé 2006-09-12 14:39:11 UTC
Created attachment 136073 [details]
Logfile from Xorg when running (normally) under GDM

Comment 3 Daniel Berrangé 2006-09-12 14:40:16 UTC
Created attachment 136074 [details]
Display info when running firstboot

Comment 4 Daniel Berrangé 2006-09-12 14:41:18 UTC
Created attachment 136076 [details]
Display info when running (normally) under GDM

Comment 5 Daniel Berrangé 2006-09-12 14:42:20 UTC
Created attachment 136077 [details]
Screenshot of mangled firstboot display

Comment 6 Jeremy Katz 2006-09-12 15:22:46 UTC
Okay, firstboot fixed to use the same logic as everything else which will make
this a non-issue.