09 Jul 2007

NVidia-Treiber auf SuSE Linux 10.0 installieren

Um die Nvidia-Treiber unter Linux zu installieren, benötigt man normalerweise einen Compiler und die Kernel-Headers, welche zum gerade installierten Kernel passen. Leider passen bei SuSE LInux 10.0 die Kernel-Headers irgendwie nicht zum installierten Kernel oder ein anderer Fehler liegt vor.

Folgende Fehlermeldung erhielt ich zuerst von nvidia-installer: “Unable to find the kernel source tree for the currently running kernel.”

Nach installieren der Kernel-Headers kam folgende Fehlermeldung: “The kernel header file ‘/lib/modules/ 2.6.13-15-default/source/include/linux/kernel.h does not exist.”

Es muss ein kompletter Kernel kompiliert werden mit der “alten” Konfiguration.

Dazu wie folgt vorgehen: Den korrekten Treiber hier von der NVidia-Homepage downloaden und z. B. im Home-Verzeichnis speichern.

Dann müssen folgende Pakete mit dem YaST installiert werden: gcc, make, kernel-source Um das zu kontrollieren, folgendes eingeben:

rpm -qa kernel*

Die Ausgabe muss lauten:

kernel-update-tool-0.9-10
kernel-docs-2.6.13-15
kernel-default-2.6.13-15
kernel-source-2.6.13-15
kernel-default-nongpl-2.6.13-15

und für make und gcc:

rpm -qa make gcc
make-3.80-188
gcc-4.0.2_20050901-3

Wenn Pakete fehlen, müssen sie über den YaST nachinstalliert werden. Bei mir war das instalieren der Kernel-Sourcen nur möglich, wenn als Installationsquelle packman angegeben habe. Dazu im YaST unter dem Menüpunkt Software -> Installationsquelle Wechseln folgende Installationsquelle hinzufügen

Protokoll:

(x) FTP
Servername:
ftp.uni-erlangen.de
Verzeichnis auf dem Server
pub/mirrors/packman/suse/10.0

Als positiven Nebeneffekt kann man jetzt viele andere Pakete auch vom Packman instalieren und muss eigentlich keine CDs mehr einlegen. Jetzt geht man ins Verzeichnis /usr/src und kontrolliert, ob (neben anderem)( ein symlink namens linux auf 2.6.13-15 vorhanden ist:

cd /usr/src
ls -l
linux -> linux-2.6.13-15

Danach einen neuen Kernel mit den gleichen Daten des alten bauen. Folgende Befehle der Reihe nach als root eingeben: (nicht durch die Kompilier-Meldungen erschrecken)

# cd /usr/src/linux
# make cloneconfig
# make bzImage
# make modules
# make modules_install
# make install

Der neue Kernel ist jetzt fertigkompiliert und installiert. Den Rechner mit

# reboot

neu starten, der neue Kernel sollte automatisch ausgewählt und gebootet werden. Danach als root auf einer Text-Konsole einloggen (CTRL-ALT-F1 beim grafischen Login-Schirm drücken) und den X-Server stoppen:

# /etc/init.d/xdm stop
shutting down service gdm done

Jetzt kann (endlich) der NVidia-Treiber kompiliert werden, wie auch in der Anleitung zum Treiber beschrieben. Dazu in das Verzeichnis wechseln wo man vorhin den Treiber von der Webseite heruntergeladen hat, und eingeben:

# sh ./NVIDIA-Linux-x86-1.0-7185-pkg1.run

(den Namen des Treibers natürlich durch den passenden, aktuellen ersetzen, hier wird der alte Treiber für die Legacy GPU version (1.0-71xx series) verwendet, beim verwendeten Dell Optiplex GX 150 ist halt die alte Karte verbaut) Die Fragen im Installer korrekt beantworten, und endlich sollte es gelingen, ein Kernel-Modul zu kompilieren. Der Treiber kann dann mit dem SuSE-eigenen Konfigurationstool sax2 aktiviert werden. Als root in den runlevel 3 wechseln:

# init 3

und dann

# sax2

eingeben, um das Konfigurationstool zu starten. Konfiguration ändern, den NVidia-Treiber auswählen und die 3D-Beschleunigung aktivieren. Nach beendigen des Tools in den runlevel 5 wechseln:

# init 5