Header Shadow Image


Fedora Update: undefined symbol: DRIOpenDRMMaster

Following a recent upgrade, Xorg was apparently also updated to version xorg-x11-server-Xorg-1.6.1.901-1.fc11.i586 which unfortunately didn't play nicely with version xorg-x11-drv-ati-6.12.2-14.fc11.i586 .  After a brief investigation, the combination resulted in this error:

 /usr/lib/xorg/modules/drivers//radeon_drv.so: undefined symbol: DRIOpenDRMMaster

Ultimately, this had the following effect:

  • No GUI (System never got as far as showing any graphics let alone KDE, Gnome etc)
  • No Keyboard functionality: Couldn't open console window with CTRL-ALT-F1-9 keys.
  • No mouse functionality.
  • No error message on the screen.  Just an empty screen.

Not good.  The system was frozen and unresponsive and nothing I tried on the terminal did anything.  Here's how to go a about solving this issue.

 

SOLUTION

The quick solution to this, as it turned out after a more extensive investigation, was to update the Xorg RPM's.  Here's the procedure:

Following the above, you'll either need a restart or to simply run:

  • init 3
  • Then init 5

First, this will bring you to level 3 or non GUI stage of the boot up process.  init 5 will bring you to the GUI stage where you can login to your favorite UI like KDE or GNOME.  And that resolved the issue for me.

 

Wait!  How do I get into my system now if the keyboard, mouse and video aren't working?

There are really two ways I used.  First option was to use another computer on my home network to get into the problematic PC so I can get things fixed up:

  • In a Windows PC, I installed PUTTY.  You can get the application from here.
  • Using PUTTY, SSH to your Workstation over your home network. 
  • You should now be into your Workstations CLI.

The second way was to edit the boot grub startup options when the system starts up so you end up in init level 1.  Here's how to do this:

  • Start up your system.  When the GRUB menu comes up, use the arrow keys to highlight the kernel you want to boot.
  • Instead of clicking ENTER on the kernel, press the letter e.  This will let you edit the boot parameters.
  • You may see a label that looks like this: kernel /vmlinuz-2.6.29.6-217.2.3.fc11.i586 ro root=LABEL=/
  • Add single to the end of it including a space in front to make it look like this:
    kernel /vmlinuz-2.6.29.6-217.2.3.fc11.i586 ro root=LABEL=/ single
  • Now press enter to confirm the settings then press the b key to boot the above line.  This will bring you to the command line init level 1 of the system.  (init 5 is the GUI you can't start on account of above problem)

 

INVESTIGATION

The investigation for this one was a bit tricky and lengthy.  For one, /var/log/Xorg.0.log had no errors or warnings applicable to the above.  There were basically no WW or EE marked items in the above file.  The WW stands for warning and the EE stands for error.  There was no messages on the screen either.  Naturally since this appears video related, I look into /etc/X11/xorg.conf but don't notice any changes there.  First I try to copy this xorg.conf file out to old.xorg.conf and restart so the system regenerates it's own config file.  That doesn't work either so I know my xorg.conf couldn't be at fault.  Checking the main system log /var/log/messages yielded many of these:

Aug  9 07:06:26 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.234230 seconds
Aug  9 07:06:26 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.201843 seconds
Aug  9 07:06:26 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.203118 seconds
Aug  9 07:06:26 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.202416 seconds
Aug  9 07:06:27 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.205379 seconds
Aug  9 07:06:27 lhs gdm-binary[2930]: WARNING: GdmDisplay: display lasted 0.215556 seconds
Aug  9 07:06:27 lhs gdm-binary[2930]: WARNING: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors
Aug  9 07:06:27 lhs init: prefdm main process (2930) terminated with status 1
Aug  9 07:06:27 lhs init: prefdm main process ended, respawning

Notice prefdm and gdm-binary.  I really had no idea what these were but possibly these could just be scripts.  So a quick search:

$ locate prefdm
/etc/X11/prefdm
/etc/event.d/prefdm
$

Quickly checking the files it's clear they are both scripts and /etc/event.d/prefdm calls /etc/X11/prefdm.  Editing /etc/X11/prefdm it's clear it calls /etc/sysconfig/desktop which has this setting on my system:

$ cat /etc/sysconfig/desktop
DESKTOP=KDE
DISPLAYMANAGER=GNOME

# DISPLAYMANAGER = GNOME
# DISPLAYMANAGER = KDE
# DISPLAYMANAGER = WDM
# DISPLAYMANAGER = XDM
You have new mail in /var/spool/mail/root
$

So what does all of this mean for us?  Unfortunately, not that much however it does tell us the sequence the startup is taking towards the error.  At this point it could be anything and I'm not much closer to what is really causing this problem for me.  So the next thing I do is try to find other log files that could point me further in the right direction:

  • cd /var/log
  • ls -al Xorg*

which results in a bunch of Xorg files one of which is /var/log/Xorg.setup.log.  Checking this file I see:

$ cat Xorg.setup.log

X.Org X Server 1.6.1.901 (1.6.2 RC 1)
Release Date: 2009-5-8
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.18-128.1.6.el5 i686
Current Operating System: Linux lhs.localhostservers 2.6.29.6-217.2.3.fc11.i586 #1 SMP Wed Jul 29 15:46:46 EDT 2009 i686
Kernel command line: ro root=LABEL=/
Build Date: 18 May 2009  02:47:59PM
Build ID: xorg-x11-server 1.6.1.901-1.fc11
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (–) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/dev/null", Time: Wed Aug 12 22:55:23 2009
(++) Using config file: "/tmp/tmpYZhMwdxorg.config"
/usr/bin/Xorg: symbol lookup error: /usr/lib/xorg/modules/drivers//radeon_drv.so: undefined symbol: DRIOpenDRMMaster
$

which seams to indicate the problem is with either /usr/bin/Xorg or the /usr/lib/xorg/modules/drivers/radeon_drv.so.  In fact, at the same time I notice a /var/log/gdm folder and checking files there also shows the same errors.  The radeon driver is the standard radeon driver supplied with Fedora from the Xorg project.  There is an issue with the log file however, it's slightly old and doesn't match my last system restart so possibly it's not related.  So to confirm, I run /usr/bin/Xorg to see if it truly shows the same error and it does:

$ /usr/bin/Xorg
X.Org X Server 1.6.1.901 (1.6.2 RC 1)
Release Date: 2009-5-8
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.18-128.1.6.el5 i686
Current Operating System: Linux lhs.localhostservers
2.6.29.6-217.2.3.fc11.i586
#1 SMP Wed Jul 29 15:46:46 EDT 2009 i686
Kernel command line: ro root=LABEL=/
Build Date: 18 May 2009  02:47:59PM
Build ID: xorg-x11-server 1.6.1.901-1.fc11
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (–) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Aug 12 22:55:46 2009
(==) Using config file: "/etc/X11/xorg.conf"
/usr/bin/Xorg: symbol lookup error: /usr/lib/xorg/modules/drivers//radeon_drv.so: undefined symbol: DRIOpenDRMMaster
$

Now I know the error is either with /usr/lib/Xorg or with the radeon drivers which is astronomically better then what I initially started with.  Naturally I decide to look into the driver and end up trying a few things that in the end don't work:

  • Get an older copy of the radeon, extract radeon_drv.so then copy it over to the drivers folder above.
  • Disable this driver in xorg.conf.
  • Try to get and use the ATI drivers.  Unfortunately, ATI decides not to support my card in Kernels 2.6.29 (which is what I now have since F11) so I can't use those either.  Neither does it appear there will be any fglrx drivers that support R500 or earlier releases of ATI cards!  This is bad since my dependence will be solely on the Radeon drivers from x.org in future releases.

Eventually, I try to look into the /usr/bin/Xorg file.  I do notice the xorg-x11-drv-ati-6.12.2-14.fc11.i586 was installed in a recent update I did on Aug 10th, which would suggest the issue is with the driver, however possibly the X server itself hasn't caught up yet and is calling DRIOpenDRMMaster incorrectly from the new ATI driver.  A quick look into the http://x.org website quickly reveals some DRI changes in the ATI video drivers, however not exactly in regards to the error I had.  Since I already tried to get updated drivers and that didn't work, the other thing to do is to find out if there are updated Xorg RPM's available that could potentially work.  Quickly checking which package holds the Xorg executable yields:

$ rpm -qf /usr/bin/Xorg
xorg-x11-server-Xorg-1.6.1.901-1.fc11.i586
$

Following that I visit one of my favorite sites rpmfind.net and end up downloading and updating the above Xorg server file with the above mentioned testing RPM's in the solution, resolving the issue.

Cheers!
Tom K.

Leave a Reply

 


     
  Copyright © 2003 - 2013 Tom Kacperski (microdevsys.com). All rights reserved.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License