ATI Catalyst (fglrx) 10.6 for Linux.

Superior Hardware Gets Hoblage.

The ATI Catalyst 10.7 drivers are just about here and that brings me to contemplate my thoughts on the 10.6 drivers that came before it. As my desktop system in 100% Linux the best video card option in the past had been nVidia. Their Linux drivers are the best on the platform so even where another brand may have had slightly better hardware, nVidia's superior driver meant that as a total package, nVidia was the most stable and performant way to go.

nVidia do have one chink in their Linux armour though. When someone needs more than two screens that means two cards. When running more than one card that means you have to use Xinerama in order to unify all of your screens into one desktop. Xinerama unfortunately isn't perfect and appart from any bugs it might have one big issue it has is that it isn't compatable with a compositing window manager. That means no Compiz or Kwin4 goodness. Not criticle, but far from perfect.

That's where ATI steps in. They have cards that can do three or more monitors in their normal desktop range and nVidia have nothing similar in nature. So for those looking for triple head setups ATI hardware is the best way to go. But there is a problem and that's their drivers. In the past ATI's fglrx drivers have earned a reputation as a buggy, cludgy mess. I've been looking on with disappointment because I wanted their hardware but their software rendered their cards unsuitable for me.

ATI in the recent past had begun to really improve their Linux drivers and they started to show some real promise in early 2010. By the time the 10.6 drivers were released I decided that they'd improved to a point I could be happy enough with them and so bough an ATI HD 5870.

So a long time nVidia user I'd become accustomed to a properly functional Linux desktop and was about to take a reliability hit with the installation of an ATI card. Once the card was installed it was now time to install the Catalyst drivers and here's what I found.

Installation Issues - When installing the drivers I first tried to use the “build packages for your distribution” method but the installer wouldn't build a viable driver with this so I had to use the alternative method. ATI should disable this functionality until it actually works so that end users don't end up fighting to try to get it to work before using the alternative way. Needlessly frustrating.

Also, when setting up a multi-monitor system I was initially presented with one of the displays remaining black with only the mouse pointer being displayed. With some trouble I was finally able to get it to work.

Here from my notes made at the time is the detail of what I went through when I initially installed the card back in June.

ATI 5870 on Ubuntu 10.04, The Saga Begins.

  • Booted the system while the nVidia 9800GT is installed.
  • Downloaded the ATI 10.6 fglrx driver.
  • Removed the nVidia driver.
  • Rebooted to confirm it's thoroughly removed.
  • Shutdown the system.
  • Removed the 9800GT and installed the HD 5870.
  • Powered on the system
  • Machine boots to GDM (the login screen) and then onto the desktop using the open source drivers with no problems.
  • Launched a shell.
  • Executed the fglrx 10.6 installer.
  • Its GUI is displayed.
  • I select build packages and follow the prompts.
  • The environment is correctly identified as Ubuntu/Lucid.
  • Says it built the package but it doesn't actually build them.
  • I exit the GUI.
  • It then autostarts the installer in text mode in the shell I launched it from for some reason.
  • I go through it again just for laughs.
  • It crashes due to a double free. WTF?
  • I look at the log. It says there's no dpkg-buildpackage so I install dpkg-dev and try again.
  • This time the installer does something but still fails.
  • Installer log says it needs the dh command.
  • I install debhelper and try again.
  • Fails again due to not having execstack available.
  • I install execstack and try again.
  • This time it builds the packages.
  • I install the packages. They install without issue.
  • I remove the old xorg.conf and execute '/usr/bin/aticonfig --initial -f'.

And here it gets interesting.
I'm presented with this wonderful output:

mugginz@mugginz-desktop:~/Downloads/fglrx$ sudo /usr/lib/fglrx/bin/aticonfig --initial -f
Unable to open /etc/ati/control, please reinstall the driver.
/usr/lib/fglrx/bin/aticonfig: No supported adapters detected

lspci -v provides this output:

01:00.1 Audio device: ATI Technologies Inc Cypress HDMI Audio [Radeon HD 5800 Series]
         Subsystem: Giga-byte Technology Device aa50
         Flags: bus master, fast devsel, latency 0, IRQ 17
         Memory at e5020000 (64-bit, non-prefetchable) [size=16K]
         Kernel driver in use: HDA Intel
         Kernel modules: snd-hda-intel

At this stage I wonder if I've got a card that fglrx doesn't have PCI ids for.

ATI 5870 on Ubuntu 10.04, The Saga Continues.

On further investigation, the packages built by the installer are full of fail. Note to others, be wary of that path.

  • Just for laughs I decide to remove the built packages, reboot and re-run the installer but this time I choose to install the drivers directly from the installer.
  • This succeeds.
  • I run '/usr/bin/aticonfig --initial -f' and this time it succeeds as well.
  • I reboot and get to a desktop with cloned displays. (Both screens display the same image)
  • I run 'gksudo amdcccle' and configure the system for one desktop across two displays.

After a restart I'm presented with one screen correctly displayed and one screen which is black. The mouse pointer happily moves onto and around that screen and back to the other one but when dragging a window onto it it is not displayed. This 'black screen' issue is not unheard of unfortunately.

  • After various bits of mucking around I shut down the system,
  • Installed another hard drive,
  • Did a clean install,
  • Installed all available updates,
  • Rebooted,
  • Installed the distro provided 10.5 drivers,
  • Rebooted,
  • Configured the display for one desktop across two screens,
  • Logged out, and back in.
  • I'm presented with what I'm after.

At this stage, with the 10.5 drivers the system displays the well known slow maximise behaviour but other than that during this very short bit of the test no other bad behaviour is encountered. I should stress though that I didn't spend much time in this environment.

After satisfying myself that the hardware is able to provide this dual screen functionality that I'm after, at least with the 10.5 drivers, I'm a bit happier.

  • I removed the 10.5 drivers,
  • Rebooted,
  • Installed the 10.6 drivers,
  • Reboot,

After the system successfully boots to the cloned desktop with the 10.6 drivers I configure the system for one desktop across two screens. After a reboot for thoroughness I'm presented with a desktop with one desktop across two screens. Just what I'm after. Compiz is functional and fast.

At this stage I'm even happier and now decide to “fix” my original install on the SSD.

ATI 5870 on Ubuntu 10.04, Finally success.

  • I shut down the system and removed the HDD,
  • Installed the SSD and configured the machine to boot from it,
  • Booted to my original desktop
  • Was again presented with the black screen issue.

I reinstalled the 10.6 drivers and muck around a bit, fight some with amdcccle and then after a few reboots I'm presented with a correctly behaving one desktop across two monitors configuration within my original system installation.

  • I now enable vsync.
  • I make sure compiz is configured to use vsync.

After all that fighting with fglrx I was relieved to find that my $500 purchase was going to be fairly usable although not as good as the nVidia card unfortunately.

Getting the card operational was a bit of a fight and I was hoping that was going to be the extent of if but I was to find that there were various areas in which fglrx was not as good as the nVidia driver and it wasn't just in the area of installation. Following are some other problems with fglrx that I didn't have with my nVidia card.

Some other issues with the driver.

  • Blender UI corruption.

    While using Blender various GUI controls don't render properly and make the program a bit fiddly to use in some ways. Not horribly broken but it'd be nice if they fix this.

  • No V-Sync

    When using more than one screen at a time v-sync no longer works. Not really a deal breaker for a lot of productivity applications but watching video playback is very annoying indeed.

    Video of moving windows and video playback demonstrating the lack of V-Sync

  • Poor full screen flash performance.

    When full screen flash video is shown C.P.U. utilisation rises dramatically and this 2.4GHz Quad Core machine is no longer able to keep up. Screen artefacts range from stuttering and short pauses in play-back to a strange “slow painting” effect. While C.P.U. utilisation would also rise with an nVidia card it didn't to the same extent as the ATI card and the older card would at least faithfully reproduce clean, glitch free full screen video unlike the HD 5870.

    Video of flash in a window and then in full screen demonstrating the slow performance.

  • Hard locks while playing Windows games under wine.

    This is something I didn't have happen with this system while running an nVidia card. These lock-ups required a hardware reset to get the machine operational again. Very inconvenient!

  • Black Windows bug.

    During the updating of the display sections of the screen become black and require the user to resize a window or perform some other action in oder to get the system to hopefully correctly update the screen again.

    Video of resizing a browser window showing the effect.

  • X-Video flickers when overlays are displayed.

    For example while watching a video with Totem movie player in full screen if you cause it to display its control overlays or if some other program displays content over the top of it such as the Gnome volume display you get flickering playback of the video.

  • No Eyefinity.

    Only two screens are activatable at a time.

    While 5000 series ATI graphics cards support the use of three or more screens concurrently when using 10.6 on a Linux machine you're restricted to only being able to activate two screens concurrently. Eyefinity was the whole reason I bought this card so to say this made me a bit unhappy is an understatement.

I've had a lot to say about nVidia's superiority over ATI as far as Linux drivers are concerned. Many ATI fans wanted to minimise the extent of the problems fglrx has while maximising any problems they thought nVidia cards had. There were also many insisting that unless you actually owned an ATI card you weren't entitled to comment on fglrx's faults. Well, I bought one, and here are just some of the problems I had. My own experience demonstrated that yes, nVidia's drivers really were superior to ATI's no matter what the ATI fanbois were saying. Just as I suspected they were wearing rose coloured glasses.

Copyright (c) 2010 Greg Newsome all rights reserved.