Wednesday, August 26, 2009

Upgrading Linux ATI drivers on ubuntu

OK, normally I don't do tech stuff in my blog, but this has been a long standing frustration that, now that it's fixed, I feel the need to share.

Background: A year or so ago I bought a fairly inexpensive laptop from Tiger direct. It was a toshiba satellite A215-S740 and only cost around $600. This is a fairly decent machine and I intended to use it for work. It came preinstalled with Vista, but I typically run Linux (ubuntu to be exact).

I thought I'd run vista for a while and see how I liked it, tired after two days of the constant interrogation. I felt like Vista was an overly agressive Gestapo agent... so I installed Ubuntu (ahhh, much better).

My first problem, however was that the built in ATI driver did not support 3d. At the time I was playing with building 3d visualizations of our systems and I REALLY needed 3d (because software 3d was way too slow). I found the ati proprietary drivers, installed them, and everything seemed OK acceptable, but not quite Great.

Some examples of problems where:
Desktop effects didn't work
Changing resolutions and hotplugging monitors didn't quite work.

Admittedly these where minor so i basically ignored them. Every month or two I would download the latest ati drivers and then attempt to upgrade. Invariably I would waste 2 hours fooling around with them and finally give up.

Recently, I took off the gloves. I had some vacation time and decided I was going to solve this problem once and for all. After much wrangling, I discovered some things that really seemed necessary to get things to work.

#0 This I kept forgetting and I think had something to do with it
sudo rmmod fglrx
sudo rmmod ati_agp

#1 Uninstall the old drivers.
yeah, really, just do it. If you want my advice, hit on startup, pick the #2 option (safe mode or whatever it is) and then pick "go to root shell". Some alternatives might be to switch to another console, log in, and stop GDM, but I'm trying to illustrate the most "foolproof"

For those that don't know how, the steps I took to uninstall where:
sudo dpkg -r fglrx-amdcccle
sudo dpkg -r fglrx-modaliases
sudo dpkg -r xorg-driver-fglrx

#2 Create the ubuntu .deb files from the installer.
sudo ./ati-driver-installer-9-3*.run --buildpkg

#3 install the ubuntu .deb files
sudo dpkg -i fglrx-kernel-source_8.593-0ubuntu1_i386.deb
sudo dpkg -i fglrx-modaliases_8.593-0ubuntu1_i386.deb
sudo dpkg -i xorg-driver-fglrx_8.593-0ubuntu1_i386.deb
sudo dpkg -i fglrx-amdcccle_8.593-0ubuntu1_i386.deb

#4 reconfigure the driver
sudo aticonfig --initial --resolution=0,1280x800 -f

#5 restart!

Some key points...

#1 I used a BUNCH of other techniques, but I never uninstalled the drivers first, nor did I stop the kernel modules (#0 and #1) I think these where critical.
#2 When running aticonfig, use the -f option to write the changes into the xorg.conf file. I kept getting kernel panics when I didn't include the -f.

No comments: