Building proprietary ATI fglrx driver on Debian Lenny x86_64

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.

4 Responses to “Building proprietary ATI fglrx driver on Debian Lenny x86_64”

  1. Fabio Paolinion 10 Sep 2008 at 01:01

    Hi, I have a debian lenny x86_64 and have the same problem to install the ati driver. But there is no ia32-libs in my sources. If I press apt-cache search ia32-libs comes nothing. Where can I get this library?

    Thanks

  2. Randomon 10 Sep 2008 at 01:30

    Just check your /etc/apt/sources.list, I simply use my local debain mirror (ftp://ftp.at.debian.org), it’s in the main section.

    See the debian package search:
    http://packages.debian.org/search?keywords=ia32-libs&searchon=names&suite=all&section=all

    Maybe apt-cache is configured incorrectly. Try to use just apt or aptitude.

  3. Fabio Paolinion 10 Sep 2008 at 02:10

    That is me again.
    I think that the problem is that my initial configuration was an i386 and then I got the package “linux-image-amd64”. Maybe that is different from install an 64 architecture at the beginning. But I have similar problems as posted in this site. See that

    ldd /usr/bin/amdcccle
    libICE.so.6 => not found
    libSM.so.6 => not found
    libXext.so.6 => not found
    libX11.so.6 => not found
    libfontconfig.so.1 => not found
    libXi.so.6 => not found
    libXrandr.so.2 => not found
    libfreetype.so.6 => not found
    libXcursor.so.1 => not found
    libXrender.so.1 => not found
    libXext.so.6 => not found

    and I have all this files in /usr/lib/

    Thanks any way.

  4. Wokyon 18 Dec 2008 at 02:39

    Please can you paste here index of your source.list file.I have the same problem with searching ia32-libs package.No in default repository.

    Thanks.

primary