Ubuntu – Radeon HD 2000, 3000, 4000 on Ubuntu 12.04.2 and higher: fglrx (legacy) unsupported, what to do

atidriversfglrxradeonxorg

After upgrading to 12.10 quantal, the packaged version of fglrx no longer works. I discovered that this is because there is a separate 'legacy' fglrx driver for the HD 2k-4k series cards, but it is incompatible with the xorg server on 12.10.

This is the most current version of the driver for HD 2000 through HD 4000 series cards. You can't use the non-legacy fglrx driver, but you can use the open-source radeon driver if you prefer your WM compositing to be laggy and your YouTube videos to play like they would on a Pentium MMX series:

http://support.amd.com/us/kbarticles/Pages/catalyst126legacyproducts.aspx

Usually this driver can be installed in the following way, necessary because apt-get install fglrx would pull in the non-legacy driver:

wget http://www2.ati.com/drivers/legacy/amd-driver-installer-12.6-legacy-x86.x86_64.zip
unzip amd-driver-installer-*
sudo sh ./amd-driver-installer-*.run --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb
sudo aticonfig --initial -f

If you use a different version of fglrx (for example, a newer 12.9 that doesn't support those cards) then the final command will give you an error no supported hardware detected or something similar. However, everything works at this point and you will get a reasonable xorg.conf:

... other stuff

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:1:5:0"
EndSection

... other stuff

At this point you're supposed to reboot and everything will be working with the fglrx driver. However, upon rebooting, you'll be treated to the following errors in Xorg.0.log when fglrx attempts to load:

(EE) Failed to load /usr/lib/xorg/modules/drivers/fglrx_drv.so: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: noXFree86DRIExtension

Some searching around will show that this is a problem with the legacy ATI drivers not supporting xserver 1.13 or newer. (Arch Linux thread) ATI has released a fixed driver for its most recent (HD 5000 series or later) cards, but not for the 'legacy' cards yet. The non-legacy ATI drivers can't be used with the old cards.

What should an Ubuntu user, using one of these HD 2000-4000 series cards, do?

  1. Wait for an updated 'legacy' ATI driver that properly works with xserver 1.13?
  2. Downgrade back to 12.04 Precise, which uses xserver 1.11?
  3. Try to downgrade xserver on 12.10 Quantal to 1.12, which could possibly break Unity and GNOME?
  4. Forced upgrade to HD 5000 series or later card? (Not possible with integrated graphics…)
  5. Some other 1337 action that fixes this problem painlessly?

Best Answer

  • There's the ppa:makson96/fglrx PPA that has the legacy driver. It will also downgrade your Kernel and X server to older versions, as the legacy driver is not compatible with newer Kernels nor X servers. However, please read the release notes from the link as the driver isn't fully compatible with the Unity used in Ubuntu 13.04.

    If you want to use the PPA, run these commands from the terminal to downgrade the Kernel and X server and to install the legacy driver:

    sudo add-apt-repository ppa:makson96/fglrx
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install fglrx-legacy
    
  • Related Question