X fails to use GEODE and reverts to VESA on a host without any xorg.conf

Bug #220510 reported by Martin-Éric Racine
6
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
Fix Released
High
Bryce Harrington
Hardy
Fix Committed
High
Unassigned
Intrepid
Fix Released
High
Bryce Harrington

Bug Description

In its current form, X fails to match Geode LX hardware with the corresponding "geode" X driver, instead reverting to the "vesa" driver, on hosts launching without any xorg.conf, or whose xorg.conf omits the Driver statement in the Device section.

This has been verified on various Geode LX -based hardware featuring BIOS from a variety of vendors.

Suspicion is that patching hw/xfree86/common/xf86AutoConfig.c to add the PCI ID for Geode LX would fix this. A patch is attached towards this effect.

---

1. Impact: The bug is a failure to match the graphics hardware that is built into Geode chipset with the corresponding X driver.

a) On desktop hosts, the result is that running X without any xorg.conf or with an xorg.conf that omits the driver name will have X revert to the VESA driver. This produces sub-optimal performance and an unability to use chipset-specific features that are present in the "geode" driver.

b) On LTSP hosts, which uses a different method for configuring X, this fails for a completely different reason, because X core follows a different method for producing an xorg.conf using "Xorg -configure" than for configuration-less chipset matching.

2. How it's addressed:
a) The desktop case is fixed with the enclosed patch, by adding the PCI ID for the Geode LX to hw/xfree86/common/xf86AutoConfig.c.
b) Fixing the LTSP case will require further investigation.

3. The patch for the desktop case is attached to this bug.

4. To reproduce this issue, launch X (e.g. using "startx") from console, on a Geode LX -based desktop host without any xorg.conf present. Then, examining the X log, we notice that the VESA driver was used by X. After the patch has been applied, repeating the test produces an X log that correctly shows that X used the "geode" X driver.

5. The patch cannot introduce any regression. Rather, it introduces positive PCI ID matching in a situation where it was not existent.

Revision history for this message
Martin-Éric Racine (q-funk) wrote :
Revision history for this message
Martin-Éric Racine (q-funk) wrote :

Actually, this bug is not necessarily a duplicate of #219630: while we suspect that adding the PCI ID might help for some things, we already noticed with test packages in my PPA that this doesn't solve everything.

Revision history for this message
DURAKOVIC Ahmedin (durakovic) wrote :

Installing Xubuntu 8.04 on Linutop 2 based hardware, and doing dpkg -i reconfigure xserver-xorg don't find the driver, i try all possibility like #214119 but nothing going on.

On Linutop 1 based hardware and Xubuntu 7.10 and package from your repository It worked well.

Revision history for this message
Martin-Éric Racine (q-funk) wrote :

For reference, Linutop-1 is essentially a DBE61C booting off a General Software BIOS, while a Linutop-2 is an ION603 booting off an Award BIOS.

Revision history for this message
Bryce Harrington (bryce) wrote :

Patch looks good, I've uploaded to Intrepid.

Please test in Intrepid and verify it's working. If you'd like to do an SRU of it to get it in for Hardy, I think it would be appropriate.

Changed in xorg-server:
assignee: nobody → bryceharrington
importance: Undecided → High
status: New → In Progress
Revision history for this message
Bryce Harrington (bryce) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

s/hardy/intrepid/ in the above debdiff.

Revision history for this message
Bryce Harrington (bryce) wrote :

Scratch that debdiff; I'm going to roll this together with a few other changes in the upload.

Revision history for this message
Bryce Harrington (bryce) wrote :

This bug was fixed in the package xorg-server - 2:1.4.1~git20080131-1ubuntu10

---------------
xorg-server (2:1.4.1~git20080131-1ubuntu10) intrepid; urgency=low

  [Timo Aaltonen]
  * 166_fix_lpl_monitors.diff:
    - fix LPL monitors properly (LP: #204065)

  [Martin-Eric Racine]
  * 167_xf86AutoConfig_geode_addition.diff:
    - Autodetect geode video devices (LP: #219630)

  [Bryce Harrington]
  * 166_fix_lpl_monitors.diff:
    - Modified to apply to Ubuntu
  * 168_closedir.patch:
    - Fix crash on PS3 due to closing a dir that wasn't successfully opened
      (LP: #217647)

 -- Bryce Harrington <email address hidden> Tue, 13 May 2008 00:03:40 -0700

Changed in xorg-server:
status: In Progress → Fix Released
Revision history for this message
Martin-Éric Racine (q-funk) wrote :

Looks good to me.

What's missing to get these into Hardy as an SRU?

Revision history for this message
Bryce Harrington (bryce) wrote :

https://wiki.ubuntu.com/StableReleaseUpdates

If you can do step #3 there, I'll do the rest.

Revision history for this message
Martin-Éric Racine (q-funk) wrote :

1. The bug is a failure to match the graphics hardware that is built into Geode chipset with the corresponding X driver.

a) On desktop hosts, the result is that running X without any xorg.conf or with an xorg.conf that omits the driver name will have X revert to the VESA driver. This produces sub-optimal performance and an unability to use chipset-specific features that are present in the "geode" driver.

b) On LTSP hosts, which uses a different method for configuring X, this fails for a completely different reason, because X core follows a different method for producing an xorg.conf using "Xorg -configure" than for configuration-less chipset matching.

2.
a) The desktop case is fixed with the enclosed patch, by adding the PCI ID for the Geode LX to hw/xfree86/common/xf86AutoConfig.c.
b) Fixing the LTSP case will require further investigation.

3. The patch for the desktop case is attached to this bug.

4. To reproduce this issue, launch X (e.g. using "startx") from console, on a Geode LX -based desktop host without any xorg.conf present. Then, examining the X log, we notice that the VESA driver was used by X. After the patch has been applied, repeating the test produces an X log that correctly shows that X used the "geode" X driver.

5. The patch cannot introduce any regression. Rather, it introduce positive PCI ID matching in a situation where it was not existent.

Bryce Harrington (bryce)
description: updated
Revision history for this message
Bryce Harrington (bryce) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

fix debdiff, sed/intrepid/hardy-proposed/

Revision history for this message
Bryce Harrington (bryce) wrote :

Uploaded to hardy-proposed for SRU.

Changed in xorg-server:
importance: Undecided → High
milestone: none → ubuntu-8.04.1
status: New → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

Bryce, I rejected your xserver-xorg upload to hardy-proposed. The actual patch (debian/patches/167_xf86AutoConfig_geode_addition.diff) seems alright, but the changelog is totally wrong:

+xorg-server (2:1.4.1~git20080131-1ubuntu9.2) hardy-proposed; urgency=low
+
+ * 169_xf86AutoConfig_choose_default_driver_if_no_pci.patch
+ - Choose the default driver for the platform instead of the generic
+ default (vesa) if there is no PCI info. Without this, on platforms
+ like PS3 where fbdev should be used rather than vesa, the system
+ will fail to start up. (LP: #219424)
+
+ -- Bryce Harrington <email address hidden> Wed, 14 May 2008 16:24:15 -0700
+
+xorg-server (2:1.4.1~git20080131-1ubuntu9.1) hardy-proposed; urgency=low
+
+ * 42_dont_break_grab_and_focus_for_window_when_redirecting.diff:
+ - Disables grabs/lose-focus state change events when composite has
+ unmapped windows. Prevents side effect where gnome-screensaver loses
+ its grab when compiz unredirects the fullscreen lock window. Prevents
+ password authentication bypass.
+ (LP: #160264, ref LP 122549, debian 449108)
+
+ -- Bryce Harrington <email address hidden> Tue, 13 May 2008 18:59:47 -0700

There is no xorg-server in hardy-proposed, thus the upload should be ubuntu9.1, not ubuntu9.2, and there should be just one changelog. Also, neither of the changelogs describes the actual patch, and the patches in the changelog are not present in the diff.

Martin Pitt (pitti)
Changed in xorg-server:
status: Fix Committed → In Progress
Revision history for this message
Bryce Harrington (bryce) wrote :

I've uploaded a new version showing this patch.

Revision history for this message
Bryce Harrington (bryce) wrote :

Uploaded to hardy-proposed

Changed in xorg-server:
status: In Progress → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote :

evidently, this is the same as bug #219630; marking as a dupe.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.