Dieses Wochenende ist es soweit, Debian erneuert den Kernel in testing auf Version 2.6.16. Leider fehlt prompt der 3D-Support für alle älteren Nvidia-Karten vor GeForce2. Das Kernelmodul für Xorg, das mit dem Nvidia Legacy-Treiber reden soll, darf man sich wieder selber kompilieren. Immerhin wird der Source als Paket angeboten: nvidia-kernel-legacy-source. Installiert landet es als nvidia-kernel-legacy-source.tar.gz
in /usr/src
. Wie man mit dem Paket umgehen soll ist ausführlich in /usr/share/doc/nvidia-kernel-legacy-source/README.Debian
beschrieben. Folgt man der Anleitung krepiert der Compiler aber mit der Fehlermeldung
os-interface.c:1262: error: ‘struct task_struct’ has no member named ‘rlim’
make[1]: *** [os-interface.o] Fehler 1
make[1]: Leaving directory `/usr/src/modules/nvidia-kernel-legacy/nv'
make: *** [build-stamp] Fehler 2
Das gleiche Ergebnis erhält man auch mit dem Installer von Nvidia (1.0.7174). Im Forum auf nvnews.com ist das Problem schonmal mit einem Patch behoben worden. Diesem Thread bitte folgen, dann löst sich allles in Wohlgefallen auf.
Update:
Ich hab mal in den Patch aus dem oben genannten Thread reingeguckt, der macht ansich nichts kompliziertes. Das rlim-Problem liegt an einer einzigen Datei: conftest.sh
Nachdem ihr das deb-Paket nvidia-kernel-legacy-source (1.0.7174-4) installiert habt, packt ihr /usr/src/nvidia-kernel-legacy-source.tar.gz
aus. Anschließend öffnet ihr die Datei /usr/src/modules/nvidia-kernel-legacy/nv/conftest.sh
Deren Zeile 14 bis 16 heißt
CFLAGS="-D__KERNEL__ \
-nostdinc -isystem $ISYSTEM \
-Werror -Wimplicit-function-declaration"
Das ergänzt ihr wie folgt:
CFLAGS="-D__KERNEL__ \
-DKBUILD_BASENAME=\"#conftest$$\" \
-DKBUILD_MODENAME=\"#conftest$$\" \
-nostdinc -isystem $ISYSTEM \
-Werror -Wimplicit-function-declaration"
anschließend folgt ihr wieder der Beschreibung in /usr/share/doc/nvidia-kernel-legacy-source/README.Debian
Das deb-Paket sollte jetzt problemlos gebaut werden. (swg)