ATI Driver installs have destroyed SUSE/GNOME graphics setup

Caution to all using ati graphics download repository.

I have been using SUSE 11.4 after an upgrade from 11.3 through zypper for months.
I added ati graphics as a update repository. Software update installed two ati files. I did not notice their names.

Upon installation my graphics was acting funny so I uninstalled the two ati-files figuring I’d be back to where I was.

Now I can only get into terminal window after reboot at both runlevel 3 and 5; no graphics at all. I keep getting message re: display ‘null’
I wish to return to original graphics configuration prior to ati downloads which, I believed used xorg drivers.

I believe I either need to revise xorg.conf file back to original which was overwritten by ati process or reinstall xorg/X11 related files.

I have an ati radeon HD 3450 agp card. 32 bit SUSE w/11.4 installed and running.
Anyone have a sample xorg.conf that might work or some other ideas of how to get back to where I was.

As a related question, if I do a fresh reinstall of SUSE 11.4 using dvd can I save my /home files and any /filesystem files that my special software created in root directories.

Thanks, Tom Kosvic

If you did uninstall the ATI driver properly, just rename or remove the file /etc/X11/xorg.conf and reboot and you’ll be back to the radeon or radeonhd driver. If it still doesn’t boot in graphics mode, reboot with the option ‘nomodeset’. I don’t think HD AGP cards are still supported by the Catalyst driver.

Can you provide us some more information ?

From what I recall from reading, the AGP version of the Radeon HD3450 graphic card is difficult to get working with the proprietary graphic driver. The PCI-e versions are simple (to get working) in comparison.

Can you boot to a terminal (full screen text), login and type:

rpm -qa '*fglrx*' 

and confirm there are no rpms with ‘fglrx’ in the file name?

After confirming that, what happens if you rename the /etc/X11/xorg.conf file to /etc/X11/xorg.conf.backup.last (such there is no xorg.conf) then reboot with with boot code ‘nomodeset’ ? [idea is to force radeonhd graphic driver]

If that fails, what happens if you then reboot with the boot code ‘x11failsafe’ ? [idea is to force fbdev graphic driver]

If that fails, what happens (with xorg.conf still removed) you boot to a terminal and go to the /etc/X11/xorg.conf.d/50-device.conf and edit the file (uncommenting the line with radeon’ in it) such that the file looks like:


Section "Device"
  Identifier "Default Device"

  Driver "radeon"

  ## Required magic for radeon/radeonhd drivers; output name
  ## (here: "DVI-0") can be figured out via 'xrandr -q'
  #Option "monitor-DVI-0" "Default Monitor"

EndSection

save that change, and reboot and again use the boot code ‘nomodeset’ when booting ? [idea is to force radeon graphic driver]

I thank oldcpu for the ideas to try. No ideas have yet worked to get back graphics. I have only terminal screen. With full boot I get terminal screen with suse crinkled screen background and high quality fonts.
Here’s some general notes then I’ll summarize results of each of oldcpu’s ideas following some general observations. Note that I am having to hand type display messages so mistakes are inevitable but hopefully minor.

When running startx as root from terminal window following any of the boot permutations, I see:

startx says:
Xauth: /root/.serverauth.5196 does not exist
/etc/X11/xinit xserverrc
line 51: exec: X: not found
xinit giving up: unable to connect to xserver: connection refused
xinit failed: /usr/bin/Xorg is not setuid may be reason

Additional notes:
Boot to level 5 with verbose messages yields:
Failed Services: nmb
Skipped services: cpufreq rng-tools nfs cifs earlyxdm xdm

Summary of oldcup’s ideas:

idea 1 – search for rpm with fglrx
no rpm containing fglrx in name was found

idea 2 – no xorg.conf file and boot w/nomodeset option
gave coarse text screen with black background. No graphics. Startx messages as above.
Subsequent boot to level 5 also gave no graphics

idea 3 – boot w/x11failsafe option
gave good quality black background screen. No graphics. startx messages as above
Subsequent boot to level 5 also gave no graphics

idea 4 – modify 50-device.conf file, reboot with nomodeset option
gave coarse screen. No graphics. startx messages as above
Subsequent boot to level 5 also gave no graphics

Thanks to oldcpu for ideas.
Anyone with any further ideas to get graphics going. I consider myself linux proficient but not at the systems level as everyone can see.
Thanks again,

Tom Kosvic

This reminds me of something: Display driver problem? how to restore system?
Finally it turned out that the ATI driver (from repo) created a symlink to the X server, which wasn’t restored properly while deinstalling the package. See here: Display driver problem? how to restore system?

thanx “please_try_again” graphics/desktop has started,
Graphics are now working.

Per your reference to: Display driver problem? how to restore system? link, I typed

service xdm start

Command returned that gdm started.

I typed gdm and got the desktop back. I tested a few graphics things and they seem to work.

Now:::::

How do I make this a permanent thing as to starting xdm/gdm automatically upon reboot? Is this a permanent fix? I’m hesitant to reboot.

Thanks all
Tom Kosvic

The change is not permanent. To get graphics/desktop, I need to start xdm/gdm at each login manually from the terminal.

I reset xdm (started/stopped) at runlevel services and rebooted and again had to go through manual start of xdm/gdm

Where is this started in boot process so I can make the start of graphics permanent?
Thanks again,
Tom Kosvic

How did you fix it? Did you recreate the symlink as describe here: Display driver problem? how to restore system?. If you did that, it is fixed permanently.

If you experienced the same situation as @thaiiceland in the other thread after deinstalling fglrx, there is a bug in the deinstallation script of the driver from ATI repo. Users should check if the symlink starting X is OK by typing:

readlink /var/lib/X11/X

If it doesn’t output /usr/bin/Xorg but /usr/bin/X.x11-video-fglrxG02, this is obviously wrong and they should recreate the symlink with this command:

su -c 'ln -sf /usr/bin/Xorg /var/lib/X11/X' 

What did you change?

thanx please_try_again,

I made the last changes to the symlink per your descriptions above and now I boot directly into desktop as before.

Previously I had not made any changes: I only manually started xdm/gdm. I think those instructions might be hidden in an inoperable scrollbar in the link your provided. At least the scrollbar would not work for me. Thanks for re-stating the necessary changes.

Now that I have graphics, I can wait for the end of the world this afternoon.

Thanks again, Tom Kosvic

Please_try_again ! Excellent post! Well done in noting that similarity.

tckosvic well done in sticking with this to a solution.

@oldcpu,

Actually I was expecting something like that to happen. The user in the other post used atiupgrade - which first uninstalled the ATI driver from repo. As it didn’t work, I suspected a bug in the x11-video-fglrxG02 package. The OP in this post uninstalled the ATI driver manually with the same issue.

So I just installed the ATI driver from repo to take a look at the postinstall and postuninstall scriplets in x11-video-fglrxG02 rpm. Here’s what I found:

  • the postinstall script replaces DISPLAYMANAGER_XSERVER="Xorg"
    with DISPLAYMANAGER_XSERVER=X.x11-video-fglrxG02 in /etc/sysconfig/displaymanager. (shown in the code in red below). I checked in this file and the change happened indeed.
**# rpm -q --scripts x11-video-fglrxG02 | grep -C 3 'X.x11-video-fglrxG02'**
ln -snf /usr/lib/dri usr/X11R6/lib/modules/dri
test -f etc/sysconfig/displaymanager && \
. etc/sysconfig/displaymanager
if  "${DISPLAYMANAGER_XSERVER}" == "X.x11-video-fglrxG02" ]; then
  # broken entry in /etc/sysconfig/displaymanager:DISPLAYMANAGER_XSERVER
  # use a sane default instead
  DISPLAYMANAGER_XSERVER=Xorg
fi
sed -i s/REPLACE_ME/${DISPLAYMANAGER_XSERVER}/g usr/bin/X.x11-video-fglrxG02
test -f etc/sysconfig/displaymanager && \
sed -i 's/DISPLAYMANAGER_XSERVER=.*/DISPLAYMANAGER_XSERVER=**X.x11-video-fglrxG02**/g' \
       /etc/sysconfig/displaymanager
test -x /etc/X11/xdm/SuSEconfig.xdm && \
/etc/X11/xdm/SuSEconfig.xdm

  • Then it runs /etc/X11/xdm/SuSEconfig.xdm
    (code in blue above), which creates the symlink /var/lib/X11/X → /usr/bin/X.x11-video-fglrxG02, as shown in the code in red below:
**# grep -C 3 'DISPLAYMANAGER_XSERVER' /etc/X11/xdm/SuSEconfig.xdm**
    elif test "$DISPLAYMANAGER_STARTS_XSERVER" = "yes" ; then
        sed -ri 's/^#:blank:]]*(:[0-9]:blank:]]+local:blank:]]+)/\1/g' ${file}.SuSEconfig
    fi
    if   test "$DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN" = "no" ; then
        sed -ri 's%(.*/usr/bin/X):blank:]]*(-nolisten:blank:]]*tcp:blank:]]*|)%\1 -nolisten tcp %g' ${file}.SuSEconfig
    elif test "$DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN" = "yes" ; then
        sed -ri 's%(.*/usr/bin/X):blank:]]*-nolisten tcp:blank:]]*%\1 %g' ${file}.SuSEconfig
    fi
    check_md5_and_move $file
fi

if test -n "$DISPLAYMANAGER_XSERVER" -a -x "/usr/bin/$DISPLAYMANAGER_XSERVER" ; then
    test -d /var/lib/X11 && ln -snf "/usr/bin/$DISPLAYMANAGER_XSERVER" /var/lib/X11/X
else
    test -d /var/lib/X11 && ln -snf /usr/bin/Xorg /var/lib/X11/X
fi
  • when deinstalling x11-video-fglrxG02, you would expect the symlink to be changed back (code in blue above), but it doesn’t happen because the postinstall script (below) doesn’t call /etc/X11/xdm/SuSEconfig.xdm, nor does it set the value of DISPLAYMANAGER_XSERVER back to Xorg in /etc/sysconfig/displaymanager.
**# rpm -q --scripts x11-video-fglrxG02 | sed -n '/postuninstall/,$p'**
postuninstall scriptlet (using /bin/sh):
# Rearrange run level symlinks after removing the atieventsd init script

    /sbin/insserv /etc/init.d
if  "$1" -eq 0 ]; then
  if ls var/lib/hardware/ids/* &> /dev/null; then
    >  var/lib/hardware/hd.ids
    for i in var/lib/hardware/ids/*; do
      cat $i >> var/lib/hardware/hd.ids
    done
  else
    rm -f var/lib/hardware/hd.ids
  fi
  test -f etc/X11/xorg.conf && \
    cp etc/X11/xorg.conf etc/X11/xorg.conf.fglrx-postun
  if  -r etc/X11/xorg.conf.fglrx-post ]; then
    mv etc/X11/xorg.conf.fglrx-post etc/X11/xorg.conf
  else
    true
  fi
  which gnome-xgl-switch &>/dev/null && \
    gnome-xgl-switch --disable-xgl
  # cleanup
  rm -f usr/X11R6/lib/modules/dri
  rmdir --ignore-fail-on-non-empty usr/X11R6/lib/modules
fi
exit 0

So here’s what remains after deinstalling the driver with

zypper rm x11-video-fglrxG02
**# find /var/lib/X11 -type l -name X -ls**
  2449    0 lrwxrwxrwx   1 root   root   29 May 22 09:08 /var/lib/X11/X -> /usr/bin/X.x11-video-fglrxG02

**# grep  'DISPLAYMANAGER_XSERVER=' /etc/sysconfig/displaymanager**
DISPLAYMANAGER_XSERVER=X.x11-video-fglrxG02

It’s a bug. You can add a warning in your HowTos. I will add a workaround in atiupgrade as soon as I have some time.

The quick fix:


su -l
sed -i 's/^DISPLAYMANAGER_XSERVER=.*/DISPLAYMANAGER_XSERVER="Xorg"/' /etc/sysconfig/displaymanager
ln -snf /usr/bin/Xorg /var/lib/X11/X

@please_try_again,
thanks man,your post fixed the problem I had about 2 weeks ago.

Just added that fix to the atiupgrade script: Upgrading ATI driver with atiupgrade - Page 7