FglrxInteferesWithRadeonDriver

Revision 13 as of 2011-11-04 01:53:37

Clear message

The -fglrx driver does not always uninstall properly, and leaves bits behind which can cause failures in -ati.

Symptoms:

  • You had -fglrx installed previously but have switched to -ati, and now are seeing various odd problems including one or more of the following:
    • Failure to boot, perhaps including an error mentioning MTRRs
    • Performance issues
    • Monitor power management stops working
    • glxgears/glxinfo fails to work
    • Various crashes, freezes, rendering errors, etc.

Non-Symptoms:

  • If you've never had -fglrx installed on your system, there is no chance you have this problem

How It Works

The fglrx driver includes kernel components which don't always get fully uninstalled when switching to -ati. In addition, -fglrx provides its own fglrx-specific version of libgl, which can cause breakage when running -ati.

In theory, apt should be able to clean up all the fglrx bits properly, but in practice there are many corner cases where bits get left behind.

Try:

 dpkg -l '*fglrx*'

and

 locate fglrx

to see if there is still some proprietary bits around causing problems.

Problem: Need to purge -fglrx

Typically, the following manual commands will properly uninstall -fglrx:

  sudo apt-get remove --purge xorg-driver-fglrx fglrx*
  sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri fglrx-modaliases
  sudo dpkg-reconfigure xserver-xorg

If you want desktop effects (compiz or KDE) you'll need the glx module loaded. This will not work even after purging fglrx since a hanging libglx.so file is left around. Both fglrx and xserver-xorg-core provide this file so to replace it with the correct version you'll need to reinstall xserver-xorg-core as well.

   sudo apt-get install --reinstall xserver-xorg-core

Problem: Need to fully remove -fglrx and reinstall -ati from scratch

Here is a more aggressive recipe which removes both -fglrx and -ati, and reinstalls the latter:

  sudo /usr/share/ati/fglrx-uninstall.sh  # (if it exists)
  sudo apt-get remove --purge fglrx*
  sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon 
  sudo apt-get install xserver-xorg-video-ati
  sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
  sudo dpkg-reconfigure xserver-xorg

For systems with multiarch enabled (Oneiric has it by default), if you have installed more than one architecture of a package, you have to specify each to reinstall them (or you will get an "E: Internal Error, No file name for libgl1-mesa-glx"):

  sudo apt-get install --reinstall libgl1-mesa-glx:amd64 libgl1-mesa-dri:amd64 libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 xserver-xorg-core

To check which architectures you have installed, you must use dpkg, as no other program has such feature yet:

  dpkg --get-selections|grep libgl1-mesa
libgl1-mesa-dri                                 install
libgl1-mesa-dri:i386                            install
libgl1-mesa-glx                                 install
libgl1-mesa-glx:i386                            install

Optionally, if you want the proprietary fglrx/Catalyst driver to be installable through the Restricted Hardware Driver Manager (a.k.a. jockey), you'll need to:

  sudo apt-get install fglrx-modaliases

Then reboot (or fix up the kernel modules and restart gdm).

Problem: Need to fully remove -nvidia and reinstall -nv from scratch

A similar issue exists for -nvidia/-nv, for similar reasons. People don't run into it quite as much since -nv doesn't tap 3D functionalities as often, but it still happens.

The nvidia kernel module is loading from the proprietary drivers, but x is trying to load xserver-xorg-video-nv. If you installed the binary drivers from nvidia.com to get into this situation you will want to run sudo nvidia-settings --uninstall and then install the binary drivers provided by ubuntu instead after you reboot. if thats not the case you can do a sudo apt-get install nvidia-graphics-drivers-185 and it will overwrite your xorg.conf with the needed one.

How to File a Bug Report

It is generally known that incomplete -fglrx uninstallations can interfere with -ati, so no bug reports need be filed for the issues that arise from this. See bug #285603 in particular.

However, if you have specific recommendations or ideas on how to improve the transition process, please feel free to file wishlist bugs against fglrx-installer explaining the idea in detail.