Préambule

J'utilise cette vieille version du driver ATI pour la simple et bonne raison que la sortie TV du chipset RS300/IXP200 n'est fonctionnelle qu'avec certaines versions (patchées qui plus est) de firegl. Donc pour éviter de se prendre la tête à chaque mise à jour, je reste sur cette version (de toutes façons je me sers de cette carte graphique que pour sa sortie TV). En contre partie, le code est souvent à corriger pour obtenir le précieux fglrx.ko.

Versions

Avant toute explication, il faut avoir en tête que selon la version du driver ATI et la version du noyau, les corrections à apporter ne sont pas les mêmes.

De mon côté, j'utilise les versions suivantes et les explications qui suivent ne sont valables que pour celles-ci:

  • kernel 2.6.13.2 vanilla
  • firegl 8.12.10
  • gcc 4.0.1

Corrections à appliquer

Décompresser les sources du modules (dans /usr/src) :

tar zxvf fglrx-kernel-src.tar.gz
cd modules/fglrx-kernel-src/

Créer le fichier libfglrx_ip.a.GCC4 car gcc est en version 4 :

cp libfglrx_ip.a.GCC3 libfglrx_ip.a.GCC4

A ce moment là, on est censé utiliser le fichier make.sh pour compiler proprement le module mais ça c'est en théorie. Le code n'est plus à jour pour être compilé avec le kernel 2.6.13.
Après plusieurs recherches sur le net, j'ai créé un petit patch qui corrige une grande partie des problèmes de compilation. Il n'est pas parfait, il reste des warnings, mais pour l'utilisation que je fais de la carte, ils ne m'ont pas posé de problèmes. Ce patch travaille sur les fichiers agpgart_be.c, firegl_public.c et nvidia-agp.c.

patch -p0 < patch_8.12.10--2.6.13_all.diff

Les fichiers sont à présent *compilables*...

Compilation à-la-debian

La méthode la plus propre et la plus simple (je n'ai qu'un seul module à compiler, donc je ne précise pas ce module) :

cd /usr/src/linux
fakeroot make-kpkg modules_image

En root :

dpkg -i fglrx-kernel-2.6.13.2_8.12.10-1+bibibox.1_i386.deb

(le bibibox.1 correspond à la version de mon noyau)

modprobe fglrx

Et voilà une bonne chose de faite. La sortie TV re-fonctionne avec un kernel récent.

bibibox:~# uname -a
Linux bibibox 2.6.13.2 #1 Sat Oct 1 19:18:12 CEST 2005 i686 GNU/Linux
bibibox:~# modinfo fglrx
filename:       /lib/modules/2.6.13.2/misc/fglrx.ko
author:         Fire GL - ATI Research GmbH, Germany
description:    ATI Fire GL
license:        Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY
vermagic:       2.6.13.2 preempt PENTIUM4 gcc-4.0
depends:
parm:           firegl:s
bibibox:~#

Liens

Le patch : patch_8.12.10--2.6.13_all.diff

Le forum rage3d sur linux : http://www.rage3d.com/board/forumdisplay.php?f=88