Les derniers drivers ATI 8.4 qui sont sortis le 16 Avril ne compilent pas avec le kernel 2.6.25.

Il y a des erreurs :

  • /usr/bin/make -C /usr/src/linux-2.6.25 SUBDIRS=/usr/src/modules/fglrx modules
  • make[3]: entrant dans le répertoire « /usr/src/linux-2.6.25 »
  • CC [M] /usr/src/modules/fglrx/firegl_public.o
  • /usr/src/modules/fglrx/firegl_public.c: In function ‘KCL_SetPageNoCache’:
  • /usr/src/modules/fglrx/firegl_public.c:1163: warning: ‘change_page_attr’ is deprecated (declared at include/asm/cacheflush.h:28)
  • /usr/src/modules/fglrx/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
  • /usr/src/modules/fglrx/firegl_public.c:1890: error: implicit declaration of function ‘cap_t’
  • /usr/src/modules/fglrx/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
  • /usr/src/modules/fglrx/firegl_public.c:1898: error: lvalue required as left operand of assignment
  • /usr/src/modules/fglrx/firegl_public.c: In function ‘__ke_check_pci’:
  • /usr/src/modules/fglrx/firegl_public.c:1953: warning: ‘pci_find_slot’ is deprecated (declared at include/linux/pci.h:508)
  • /usr/src/modules/fglrx/firegl_public.c: In function ‘__ke_pci_find_slot’:
  • /usr/src/modules/fglrx/firegl_public.c:2842: warning: ‘pci_find_slot’ is deprecated (declared at include/linux/pci.h:508)
  • make[4]: *** [/usr/src/modules/fglrx/firegl_public.o] Erreur 1
  • make[3]: *** [_module_/usr/src/modules/fglrx] Erreur 2
  • make[3]: quittant le répertoire « /usr/src/linux-2.6.25 »
  • make[2]: *** [build] Erreur 2
  • make[2]: quittant le répertoire « /usr/src/modules/fglrx »
  • make[1]: *** [kdist_image] Erreur 2
  • make[1]: quittant le répertoire « /usr/src/modules/fglrx »
  • Module /usr/src/modules/fglrx failed.
  • Hit return to Continue

Pour cela il faut patcher les driver ATI ainsi qu’activer une option du kernel “unused symbols” :

Kernel hacking —>
[*] Enable unused/obsolete exported symbols

Pour cela télécharger le patch :

  • wget http://pthichat.net/wp-content/uploads/2008/05/fglrx-84-for-2625.patch

Puis l’appliquer :

  • patch firegl_public.c fglrx-8.4-for-2.6.25.patch

Le patch comprend aussi une modification de la licence du module pour pouvoir compiler sous Debian

Si on patch juste le fichier firegl_public.c pour qu’il compile on a une erreur :

  • FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol ‘__rcu_read_lock’

Il faut remplacer dans le fichier firegl_public.c :

  • MODULE_LICENSE(”Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY”);

par :

  • MODULE_LICENSE(”GPL”);