Thursday, May 22, 2008

ATI proprietary drivers on Debian


1) get binary package from ATI


2) generate packages:


$ ./ati-driver-installer-8-5-x86.x86_64.run --buildpkg Debian/etch


3) install generated packages


$ wajig install fglrx-driver_8.493-1_i386.deb fglrx-amdcccle_8.493-1_i386.deb fglrx-driver-dev_8.493-1_i386.deb fglrx-kernel-src_8.493-1_i386.deb

If you installed fglrx-glx from official Debian repos before (like my experimentally inclined self) you may get an error with clashing diversions (see bug475007):

dpkg-divert: `diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/diversions/libGL.so.1.2 by fglrx-driver' clashes with `diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/diversions/libGL.so.1.2 by fglrx-glx'

Remove the offending diversion then:

$ dpkg-divert --remove /usr/lib/libGL.so.1.2
Removing `diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/diversions/libGL.so.1.2 by fglrx-glx'



4) compile kernel module

After installing fglrx-kernel-src you should have module source tarball under /usr/src:

$ ls -la fgl*
-rw-rw-r-- 1 root root 1228049 2008-05-22 16:04 fglrx.tar.bz2

Make sure this is the right one, module-assistant by default operates on source found under /usr/src. You can change this behavior via MOD_SRCDIR environment variable. Now build it (do not m-a update or m-a auto-install because it would download source from repo):

$ m-a build,install fglrx-kernel-src



5) Hold packages

Put manually generated packages on hold so they won't get auto-updated during your usual update routine

$ wajig hold fglrx-amdcccle fglrx-kernel-src fglrx-driver fglrx-driver-dev

or, if you don't use wajig:

$ echo "fglrx-amdcccle hold" | dpkg --set-selections
$ echo "fglrx-kernel-src hold" | dpkg --set-selections
$ echo "fglrx-driver hold" | dpkg --set-selections
$ echo "fglrx-driver-dev hold" | dpkg --set-selections



6. update xorg.conf

If you don't have proper entries in your xorg.conf yet, create them using

$ aticonfig --initial



7. reboot

1 comment:

Anonymous said...

One thing more: if you use m-a build package it will build package with module for currently running kernel with source in /usr/src/linux To override it, you must specify kernel dir and verison -k, -l.