X doesn't find a screen and is not starting due a race condition

Bug #606244 reported by Rico Tzschichholz
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Won't Fix
High
Unassigned

Bug Description

X fails to find a screen.
This most likely caused by a race condition which is resolved by including the drm stack into initrd using FRAMEBUFFER=yes with initramfs-tools

Maverick development release
libdrm 2.4.20-2ubuntu1
linux 2.6.35-8-generic
xserver-xorg 2:1.8.1.902-0ubuntu2
xserver-xorg-video-nouveau 0.0.16+git20100518

[ 10.730] (II) Primary Device is: PCI 01@00:00:0
[ 10.730] drmOpenDevice: node name is /dev/dri/card0
[ 10.730] drmOpenDevice: open result is 7, (OK)
[ 10.730] drmOpenByBusid: Searching for BusID pci:0000:01:00.0
[ 10.730] drmOpenDevice: node name is /dev/dri/card0
[ 10.730] drmOpenDevice: open result is 7, (OK)
[ 10.730] drmOpenByBusid: drmOpenMinor returns 7
[ 10.730] drmOpenByBusid: drmGetBusid reports
[ 10.730] drmOpenDevice: node name is /dev/dri/card1
[ 10.734] drmOpenByBusid: drmOpenMinor returns -1
[ 10.734] drmOpenDevice: node name is /dev/dri/card2
[ 10.737] drmOpenByBusid: drmOpenMinor returns -1
[ 10.737] drmOpenDevice: node name is /dev/dri/card3
[ 10.741] drmOpenByBusid: drmOpenMinor returns -1
[ 10.741] drmOpenDevice: node name is /dev/dri/card4
[ 10.745] drmOpenByBusid: drmOpenMinor returns -1
[ 10.745] drmOpenDevice: node name is /dev/dri/card5
[ 10.749] drmOpenByBusid: drmOpenMinor returns -1
[ 10.749] drmOpenDevice: node name is /dev/dri/card6
[ 10.753] drmOpenByBusid: drmOpenMinor returns -1
[ 10.753] drmOpenDevice: node name is /dev/dri/card7
[ 10.757] drmOpenByBusid: drmOpenMinor returns -1
[ 10.757] drmOpenDevice: node name is /dev/dri/card8
[ 10.760] drmOpenByBusid: drmOpenMinor returns -1
[ 10.760] drmOpenDevice: node name is /dev/dri/card9
[ 10.764] drmOpenByBusid: drmOpenMinor returns -1
[ 10.764] drmOpenDevice: node name is /dev/dri/card10
[ 10.768] drmOpenByBusid: drmOpenMinor returns -1
[ 10.768] drmOpenDevice: node name is /dev/dri/card11
[ 10.772] drmOpenByBusid: drmOpenMinor returns -1
[ 10.772] drmOpenDevice: node name is /dev/dri/card12
[ 10.776] drmOpenByBusid: drmOpenMinor returns -1
[ 10.776] drmOpenDevice: node name is /dev/dri/card13
[ 10.780] drmOpenByBusid: drmOpenMinor returns -1
[ 10.780] drmOpenDevice: node name is /dev/dri/card14
[ 10.783] drmOpenByBusid: drmOpenMinor returns -1
[ 10.783] drmOpenDevice: node name is /dev/dri/card15
[ 10.787] drmOpenByBusid: drmOpenMinor returns -1
[ 10.787] drmOpenDevice: node name is /dev/dri/card0
[ 10.787] drmOpenDevice: open result is 7, (OK)
[ 10.787] drmOpenDevice: node name is /dev/dri/card0
[ 10.787] drmOpenDevice: open result is 7, (OK)
[ 10.787] drmGetBusid returned ''
[ 10.787] (II) [drm] nouveau interface version: 0.0.16
[ 10.787] (WW) Falling back to old probe method for vesa
[ 10.787] (WW) Falling back to old probe method for fbdev
[ 10.787] (II) Loading sub module "fbdevhw"
[ 10.787] (II) LoadModule: "fbdevhw"
[ 10.787] (II) Loading /usr/lib/xorg/modules/linux/libfbdevhw.so
[ 10.788] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 10.788] compiled for 1.8.1.902, module version = 0.0.2
[ 10.788] ABI class: X.Org Video Driver, version 7.0
[ 10.788] (II) Loading sub module "dri"
[ 10.788] (II) LoadModule: "dri"
[ 10.788] (II) Reloading /usr/lib/xorg/modules/extensions/libdri.so
[ 10.788] (II) NOUVEAU(0): Loaded DRI module
[ 10.788] drmOpenDevice: node name is /dev/dri/card0
[ 10.788] drmOpenDevice: open result is 8, (OK)
[ 10.788] drmOpenDevice: node name is /dev/dri/card0
[ 10.788] drmOpenDevice: open result is 8, (OK)
[ 10.788] drmOpenByBusid: Searching for BusID pci:0000:01:00.0
[ 10.788] drmOpenDevice: node name is /dev/dri/card0
[ 10.788] drmOpenDevice: open result is 8, (OK)
[ 10.788] drmOpenByBusid: drmOpenMinor returns 8
[ 10.788] drmOpenByBusid: drmGetBusid reports
[ 10.788] drmOpenDevice: node name is /dev/dri/card1
[ 10.792] drmOpenByBusid: drmOpenMinor returns -1
[ 10.792] drmOpenDevice: node name is /dev/dri/card2
[ 10.795] drmOpenByBusid: drmOpenMinor returns -1
[ 10.796] drmOpenDevice: node name is /dev/dri/card3
[ 10.799] drmOpenByBusid: drmOpenMinor returns -1
[ 10.799] drmOpenDevice: node name is /dev/dri/card4
[ 10.803] drmOpenByBusid: drmOpenMinor returns -1
[ 10.803] drmOpenDevice: node name is /dev/dri/card5
[ 10.807] drmOpenByBusid: drmOpenMinor returns -1
[ 10.807] drmOpenDevice: node name is /dev/dri/card6
[ 10.811] drmOpenByBusid: drmOpenMinor returns -1
[ 10.811] drmOpenDevice: node name is /dev/dri/card7
[ 10.815] drmOpenByBusid: drmOpenMinor returns -1
[ 10.815] drmOpenDevice: node name is /dev/dri/card8
[ 10.818] drmOpenByBusid: drmOpenMinor returns -1
[ 10.818] drmOpenDevice: node name is /dev/dri/card9
[ 10.822] drmOpenByBusid: drmOpenMinor returns -1
[ 10.822] drmOpenDevice: node name is /dev/dri/card10
[ 10.826] drmOpenByBusid: drmOpenMinor returns -1
[ 10.826] drmOpenDevice: node name is /dev/dri/card11
[ 10.830] drmOpenByBusid: drmOpenMinor returns -1
[ 10.830] drmOpenDevice: node name is /dev/dri/card12
[ 10.834] drmOpenByBusid: drmOpenMinor returns -1
[ 10.834] drmOpenDevice: node name is /dev/dri/card13
[ 10.838] drmOpenByBusid: drmOpenMinor returns -1
[ 10.838] drmOpenDevice: node name is /dev/dri/card14
[ 10.841] drmOpenByBusid: drmOpenMinor returns -1
[ 10.841] drmOpenDevice: node name is /dev/dri/card15
[ 10.845] drmOpenByBusid: drmOpenMinor returns -1
[ 10.845] drmOpenDevice: node name is /dev/dri/card0
[ 10.845] drmOpenDevice: open result is 8, (OK)
[ 10.845] drmOpenDevice: node name is /dev/dri/card0
[ 10.845] drmOpenDevice: open result is 8, (OK)
[ 10.845] drmGetBusid returned ''
[ 10.845] (II) [drm] DRM interface version 1.0
[ 10.845] (EE) [drm] Could not set DRM device bus ID.
[ 10.845] (EE) NOUVEAU(0): [drm] error opening the drm
[ 10.845] (EE) NOUVEAU(0): 621:
[ 10.845] (II) UnloadModule: "nouveau"
[ 10.845] (II) UnloadModule: "dri"
[ 10.845] (EE) Screen(s) found, but none have a usable configuration.
[ 10.845]
Fatal server error:
[ 10.845] no screens found

Revision history for this message
Rico Tzschichholz (ricotz) wrote :
Revision history for this message
Rico Tzschichholz (ricotz) wrote :
Revision history for this message
Rico Tzschichholz (ricotz) wrote :
Revision history for this message
Rico Tzschichholz (ricotz) wrote :
Revision history for this message
Chris Halse Rogers (raof) wrote :

When this occurs, drmGetBusid returns the empty string, where it should return the PCI bus ID of the card. Moving to the kernel.

affects: xorg-server (Ubuntu) → linux (Ubuntu)
Revision history for this message
Jean-Louis Dupond (dupondje) wrote :

libdrm takes care of the function drmGetBusid.

It seems like this package juist got updated with a new version this is availible today.

The changelog contains:

  * Update libdrm-nouveau1 to the ABI of Linux 2.6.34.
    - Drop 03_revert_abi_change.diff.
    - Bump libdrm-nouveau shlibs and symbols versions to 2.4.20-3~
      to ensure that packages built against this version are not used
      with an older libdrm-nouveau1 version.
    - Add versioned Breaks against xserver-xorg-video-nouveau to force
      an upgrade of that package and prevent X segfaults.

Can somebody hitting this bug try with libdrm - 2.4.21-1ubuntu1?

I guess it should be fixed with that.

Revision history for this message
Jean-Louis Dupond (dupondje) wrote :

Ok, I updated libdrm, and it works like a charm now :)

affects: linux (Ubuntu) → libdrm (Ubuntu)
Changed in libdrm (Ubuntu):
status: New → Fix Released
Revision history for this message
Jean-Louis Dupond (dupondje) wrote :

The first reboot after upgrade of libdrm worked, but seems its not fixed!

Changed in libdrm (Ubuntu):
status: Fix Released → New
Revision history for this message
Robert Hooker (sarvatt) wrote :

This is a kernel and/or grub problem on all KMS configurations from what I can see at the moment. You can boot vesafb=sucks to work around it for now which will make it not load due to an invalid module parameter, or disable gfxpayload=keep grub option..

affects: libdrm (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Robert Hooker (sarvatt) wrote :

Setting this to high importance since it affects all KMS configurations making them unbootable the majority of the time, critical might be more appropriate.

Changed in linux (Ubuntu):
importance: Undecided → High
Revision history for this message
Colin Watson (cjwatson) wrote :

It does not affect all KMS configurations.

Robert Hooker (sarvatt)
tags: added: grub-gfxpayload
Revision history for this message
Jean-Louis Dupond (dupondje) wrote :

Colin Watson confirms that this bug is triggered by a change in grub2.

  * Program vesafb on BIOS systems rather than efifb, and return to enabling
    gfxpayload=keep by default if the kernel has the necessary support
    built-in.

More info about it in https://lists.ubuntu.com/archives/ubuntu-devel/2010-July/030995.html.

Its not a bug in grub2, but its still a kernel bug. Why it show up now, is just because of the grub2 change.

Andy Whitcroft (apw)
tags: added: kernel-candidate kernel-reviewed
tags: added: kernel-graphics
tags: removed: kernel-candidate
penalvch (penalvch)
tags: added: maverick needs-upstream-testing
Revision history for this message
Joseph Salisbury (jsalisbury) wrote : Unsupported series, setting status to "Won't Fix".

This bug was filed against a series that is no longer supported and so is being marked as Won't Fix. If this issue still exists in a supported series, please file a new bug.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: Confirmed → Won't Fix
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.