Ati Treiber unter Gentoo

Anleitung ati-Treiber unter gentoo linux (amd64) manuell installieren

fglrx64_6_8_0-8.14.13-1.x86_64.rpm von ati.com runterladen und mit rpm2targz in ein tar.gz file umwandeln.
danach entpacken.
/lib/modules/fglrx/build_mod/make.sh ausführen.
Falls hierbei folgender Fehler auftritt (wahrscheinlich wurde auf kernel 2.6.12 upgedated):
ATI module generator V 2.0
==========================
initializing...
cleaning...
patching 'highmem.h'...
assuming new VMA API since we do have kernel 2.6.x...
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.12/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux'
CC [M] /lib/modules/fglrx/build_mod/2.6.x/agp3.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/nvidia-agp.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/agpgart_be.o
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `agp_find_supported_device':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7136: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7156: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7161: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7187: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7207: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7227: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7232: error: structure has no member named `slot_name'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `__fgl_agp_init':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7613: warning: `pm_register' is deprecated (declared at include/linux/pm.h:106)
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `__fgl_agp_cleanup':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:7623: warning: `pm_unregister_all' is deprecated (declared at include/linux/pm.h:116)
make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.o] Error 1
make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux'
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module - please consult readme.
die Datei /lib/modules/fglrx/build_mod/agpgart_be.c folgendermaßen patchen:
jeden Aufruf von dev->slot_name durch pci_name(dev) ersetzen.
die Datei /lib/modules/fglrx/build_mod/firegl_public.c folgendermaßen patchen:
den ersten Aufruf von inter_module_get durch inter_module_get_request(x,y) ersetzen.
den 2. Aufruf von inter_module_get durch inter_module_get_request("drm","drm") ersetzen.
den 3. Aufruf von inter_module_get durch inter_module_get_request("drm_agp","drm_agp") ersetzen.

Kommt danach ein Fehler, daß die Datei asm/ioctl32.h nicht gefunden werden kann:
zuerst einmal ein make in /usr/src/linux ausführen (ich hoffe, der symlink wurde an den neuen Kernel angepaßt).
danach folgendermaßen patchen:
einen Symlink /lib/modules/2.6.12-gentoo-r4/build/include/asm auf /lib/modules/2.6.12-gentoo-r4/build/include/asm-x86_64 anlegen.
Danach die Datei ioctl32.h in diesem Verzeichnis mit folgendem Inhalt anlegen:
#include <linux/ioctl32.h>
Danach /lib/modules/fglrx/build_mod/make.sh ausführen.
Dies sollte jetzt erfolgreich sein.
Jetzt /lib/modules/fglrx/make_install.sh ausführen.
Danach ein Verzeichnis /lib/modules/2.6.12-gentoo-r4/video erstellen und die Dateien fglrx.2.6.12-gentoo-r4.ko und den entsprechenden Symlink fglrx.ko reinkopieren.
Jetzt Verzeichnis /usr/lib64/opengl/ati/include und /usr/lib64/opengl/ati/lib erstellen und folgende Dateien aus dem Verzeichnis /lib/modules/fglrx/... reinkopieren:
leo@phoenix /usr/lib/opengl/ati $ ls -l -R
.:
total 8
drwxr-xr-x  2 root root 4096 Jul  3 00:03 include
drwxr-xr-x  2 root root 4096 Jul  3 00:03 lib

./include:
total 4
-r--r--r--  1 root root 3351 Jun  8 21:07 fglrx_gamma.h

./lib:
total 1016
lrwxrwxrwx  1 root root      21 Jul  3 00:03 libfglrx_gamma.1 -> libfglrx_gamma.so.1.0
-rw-r--r--  1 root root    6882 Jun  8 21:07 libfglrx_gamma.a
-rwxr-xr-x  1 root root   13405 Jun  8 21:07 libfglrx_gamma.so.1.0
lrwxrwxrwx  1 root root      12 Jul  3 00:03 libGL.so.1 -> libGL.so.1.2
-rwxr-xr-x  1 root root 1009781 Jun  8 21:07 libGL.so.1.2
leo@phoenix /usr/lib/opengl/ati $

Danach sollte es mit opengl-update ati klappen, den Treiber zu aktivieren.
fglxinfo | grep direct sollte dann (natürlich auf der grafischen Oberfläche ausgeführt) Yes auswerfen.

Einen Dank an: http://www.linuxquestions.org/questions/showthread.php?s=&threadid=335524


this document is located at www.eibler.at and written by Leo Eibler