Building proprietary ATI fglrx driver on Debian Lenny x86_64
Random August 25th, 2008
To build the ATI proprietary driver (version 8.8, being reported as 8.522) on Debian Lenny 2.6.26-1-amd64 (probably the same for testing/unstable) on x86_64 I ran into 2 subtle problems which requried a little tricking to get the driver compiled and loaded. The following issues apply only to the x86_64 version of linux.
The first issue is a library problem with a very misleading description .
shell# sh /home/random/ati-driver-installer-8-8-x86.x86_64.run --buildpkg Debian/testing
... build fails with library libXext.so.6 missing ...
The solution is to install the ia32-libs, which contain the correct libs for ia32. Building with the above command work fine afterwards. Then it was possible to install the packages
shell# dpkg -i fglrx-amdcccle_8.522-1_amd64.deb fglrx-driver_8.522-1_amd64.deb fglrx-kernel-src_8.522-1_amd64.deb
The second issue happened during loading of the kernel module after building, installing and loading it with
shell# m-a build fglrx
shell# dpkg -i /usr/src/fglrx-kernel-2.6.26-1-amd64_8.522-1+2.6.26-3_amd64.deb
shell# modprobe fglrx
fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol flush_tlb_page
The patch is basically to remove the defined(__SMP__) from a preprocessor rule (this is not my patch, please see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485605 for details).
-#if defined(__x86_64__) && defined(__SMP__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
+#if defined(__x86_64__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
After applying the patch, rebuilding the packages, recreating the module, installing the resulting kernel-module package and loading the kernel module everything worked like a charm. Of course you need to correctly configure the driver for your X server.
- Category: Bits & Bytes A-Tags: Linux
- Comments(4)