Nun habe ich das Problem allein loesen koennen.
Es vielen mehrere Dinge zusammen und das fuehrte zum im Eroeffnungsthread geschilderten Problem.
1. Das in meinem Moduleordner liegende Modul war wirklich mit dem 2.6.11-er kompiliert. Ich habe es wohl bei meinen Versuchen, die ATI-Karte unter dem 2.6.12.1-er Kernel zum laufen zu kriegen, aus dem Moduleordner des 2.6.11-er teesthalber rueberkopiert und vergessen es wieder zu loeschen.
2 Der originale ATI-Treiber als Installer, ati-driver-installer-8.14.13.run, ist buggy und kann in der vorliegenden Version so nicht funktionieren. Dazu spaeter.
Da das Kompilieren des neuen fglrx-Modules zunaechst fehlgeschlagen ist, wurde das im 2.6.12.1-er Moduleorder liegende "falsche" fglrx-Modul nicht ueberschrieben. Also war die Fehlermeldung beim Laden von fglrx,
fglrx: version magic '2.6.11-gentoo-r11 SMP K7 gcc-3.3' should be '2.6.12.1 SMP preempt K7 gcc-3.3',
richtig. Das System hat korrekt reagiert.
3. Ich habe mich also auf die Suche des Fehlers im Installer des ATI-Treibers 8.14.13 begeben und Folgendes herausgefunden:
Zunachst erst mal die Fehlermeldung aus dem Logfile nach dem Ausfuehren von ati-driver-installer-8.14.13.run,
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[Message] Kernel Module : Trying to install a precompiled kernel module.
[Message] Kernel Module : Precompiled kernel module version mismatched.
[Message] Kernel Module : Found kernel module build environment, generating kernel module now.
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.1/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.12.1'
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-2.6.12.1'
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module - please consult readme.
|
Als erstes habe ich den Fehler mit "slot_name" beseitigt. Dazu folgendes durchfuehren.
In der Datei /lib/modules/fglrx/build_mod/agpgart_be.c habe ich ALLE Vorkommen von slot_name mit " " ersetzt (also " " hinschreiben).
Beispiel einer Ersetzung, in Zeile 7070
|
Quellcode
|
1
|
"chipset at %s\n", " ");
|
Wuerde man Jetzt die Treiber erneut installieren wurde man einen neuen Fehler erhalten. Auf diesen gehe ich nicht mit Code ein sondern beschreibe unter als zweites die Beseitigung dieses neuen Fehlers.
Als Zweites in der Datei /lib/modules/fglrx/build_mod/firegl_public.c kommt "inter_module_get" genau 3 x vor.
Diese 3 "inter_module_get" habe ich folgendermassen ersetzt.
Das erste Vorkommen mit inter_module_get_request(x,y)
Das zweite Vorkommen mit inter_module_get_request("drm","drm")
Das dritte Vorkommen mit inter_module_get_request("drm_agp","drm_agp")
Beispiel fuer die Ersetzung in der Zeile des ersten Vorkommens:
|
Quellcode
|
1
|
#define inter_module_get_request(x,y) firegl_stub_pointer
|
Das sind die Fehlerkorrekturen. Nun kommt aber das
Wichtigste. Um die ATI-Treiber zu installieren nun (nach den Fehlerkorrekturen) NICHT erneut das Script "ati-driver-installer-8.14.13.run" benutzen! Es geht auch anders und zwar so.
|
Quellcode
|
1
2
|
cd /lib/modules/fglrx
./make.sh
|
Das make.sh wird nun immer noch einige Warnungen zeigen. Am Ende sollte Folgendes stehen:
|
Quellcode
|
1
2
3
4
5
6
7
8
|
make[1]: Leaving directory `/usr/src/linux-2.6.12.1'
build succeeded with return value 0
duplicating results into driver repository...
done.
==============================
You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
==============================
|
Nun noch
|
Quellcode
|
1
2
|
cd /lib/modules/fglrx
./make_install.sh
|
Das make_install.sh sollte Folgendes ergeben
|
Quellcode
|
1
2
3
4
|
- creating symlink
- recreating module dependency list
- trying a sample load of the kernel module
done.
|
und dmesg sollte folgende Angaben enthalten:
|
Quellcode
|
1
2
|
[fglrx] module loaded - fglrx 8.14.13 [Jun 8 2005] on minor 0
[fglrx] module unloaded - fglrx 8.14.13 [Jun 8 2005] on minor 0
|
Ein nun durchgefuehrtes modprobe fglrx erfolgt ohne Error und dmesg zeigt dazu
|
Quellcode
|
1
|
[fglrx] module loaded - fglrx 8.14.13 [Jun 8 2005] on minor 0
|
Fazit
Der von ATI angebotene Treiber in der Version 8.14.13 ist nicht der erste fuer diese Karten. Eigentlich koennte man annehmen, dass er in der x-ten Version endlich fehlerfrei ist. Schwache Leistung von ATI !
Eventuell hilft mein Thread Jemandem, seine ATI-Karte zum Laufen zu bekommen. Feedback willkommen.
Gruss quiptime