Ubuntu: Nvidia-Treiber installieren

Die folgende Anleitung bezieht sich auf Ubuntu bis Version 7.04 (Feisty Fawn). Eine Beschreibung für Gutsy Gibbon (7.10) finden Sie weiter unten.

Ich habe einige Anläufe gebraucht, um die oben genannte Kombination zum Laufen zu bewegen.

Für alle, die damit ebenso Probleme haben, habe ich hier in Kürze die wichtigsten Einstellungen und Vorgehensweisen zusammengefasst, die ich aus diversen Howtos und Tutorials, Forenbeiträgen und Basteleien entnommen habe.

Zunächst das Handwerkszeug

Es gibt Pakete, die wir für die Installation unbedingt benötigen. Dazu gehören die Kernel-Sourcen inkl. Header und natürlich die Build-Essentials. Diese installieren wir mit

sudo apt-get install linux-headers-$(uname -r) build-essential

Es ist wichtig, dass die passenden Kernel-Sourcen zum laufenden Kernel installiert werden, daher bedienen wir uns des kleinen Tricks mit uname.

Nvidia-Treiber installieren

Es kommt hierbei auf die verwendete Grafikkarte an. Gehört diese (wie bei mir) zum alten Eisen, so ist der Legacy-Treiber von Nvidia zu verwenden. Im Falle des Satellite 2410-404 wurde eine GeForce4 420 Go verbaut, für die ebenfalls der Legacy-Treiber in Frage kommt.
Der Original-Treiber von der Nvidia-Homepage kommt auf keinen Fall zum Zuge, da die dortigen Versionen nicht zu den Kernel-Modulen passen, die Ubuntu mitbringt.

Befehl für den Nvidia-Treiber (für alle aktuellen Karten)

sudo apt-get install nvidia-glx

Befehl für den Nvidia-Legacy-Treiber (für alte Karten, z.B. GeForce Go 420 wie im Satellite 2410)

sudo apt-get install nvidia-glx-legacy nvidia-xconfig nvidia-settings

Bevor man nun fortfährt, sollte man eine Kopie der aktuellen xorg.conf anlegen, hier im Home-Verzeichnis:

cp /etc/X11/xorg.conf ~/xorg.conf_backup

Spezielle Einstellungen für Toshiba Satellite 2410-404

Das Display in diesem Schleppi muss korrekt angesprochen werden. Das Zauberwort heisst hier, die Optionen für den Nvidia-Kernel-Treiber anzupassen. Bevor der X-Server gestartet werden kann, ist dieser Schritt unbedingt durchzuführen, andernfalls stürzt der Rechner komplett ab.

sudo nano /etc/modprobe.d/options

und dort am Ende der Datei diese Zeile eintragen:

options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=2

Sollte es wider Erwarten doch zu einem Crash kommen, so ist aus der "2" eine "4" zu machen.

Installation des Treibers von der Herstellerseite (nur neuere Karten)

Vielleicht wollen Sie lieber den Treiber vom Hersteller direkt installieren? Besorgen Sie sich den Treiber von der NVidia Homepage. Dieser beinhaltet auch schon AIGLX, welches eine Installation des XGL-Servers unnötig macht, wenn man den Windowmanager "Beryl" verwenden möchte.

Für die Installation brauchen Sie ebenfalls die Kernel-Sourcen und das Build-Paket (siehe oben). Zusätzlich installieren Sie noch das Entwicklerpaket des Xorg-Servers mit

sudo apt-get install xserver-xorg-dev

Beenden Sie den laufen X-Server mit STRG-ALT-Backspace. Falls Sie wieder im grafischen Login landen, verlassen Sie dieses mit STRG-ALT-F1. Loggen Sie sich ein und geben Sie

sudo /etc/init.d/gdm stop

bzw. falls Sie KDM verwenden

sudo /etc/init.d/kdm stop

ein. Das beendet das grafische Login.

Laden Sie den Treiber herunter und wechseln in ein Terminal. Dort wechseln Sie in das Verzeichnis, wo Sie den Treiber gespeichert haben. Rufen Sie dort auf der Konsole

sudo sh ./NVIDIA-Linux-x86-1.0-9629-pkg1.run

auf. Folgen Sie den Anweisungen auf dem Bildschirm.

Nach erfolgter Installation können Sie den Login-Manager wieder mit

sudo /etc/init.d/gdm start

oder für KDM

sudo /etc/init.d/kdm start

Das NVidia-Logo sollte in beiden Fällen beim Starten des X-Servers erscheinen.

Installation des Treibers für alte Karten

Ich habe bei meinem alten Toshiba Laptop eine GeForce 4 420 Go eingebaut. Diese Karte funktioniert nur mit dem alten "Legacy" Treiber von Nvidia. Für gewöhnlich sind dies die Treiber mit der Versionsnummer 7xxx. Neue Treiber funktionieren hier zwar, bilden jedoch die Frequenzen für den internen TFT nicht richtig ab, sondern bringen allenfalls mit einem externen Bildschirm ein Bild. Falsche Frequenzen können den internen TFT-Bildschirm Ihres Laptops zerstören! Bemerken Sie also ein "verstümmeltes" Bild mit Streifen o.ä., beenden Sie den X-Server umgehend mit STRG-ALT-BACKSPACE!

Bekannte Probleme

Sie sollten sich für genau eine Methode entscheiden, um NVidia zu installieren. Die Installation der Ubuntu-Pakete hat zur Folge, dass das Paket restricted-modules mitinstalliert wird. Dieses ist u.a. auch für die Korrekte Einrichtung von WLAN-Geräten zuständig. Wenn Sie den Originaltreiber verwenden, dann müssen alle Ubuntu-Pakete deinstalliert werden. Dabei verschwindet auch das Modul restricted-modules und Ihr WLAN funktioniert nicht mehr.

Was bleibt zu tun?

Ich persönlich verwende die Originaltreiber, habe aber auch WLAN. Wie geht das? Ganz einfach, wenn man es weiß:

Installieren Sie den Originaltreiber wie oben beschrieben. Installieren Sie danach das Paket restricted-modules einzeln. Wundern Sie sich nicht, wenn das Paket "nvidia-glx" ebenfalls wieder auf der Platte landet. Sie sollten die folgenden Anweisungen dann allerdings genau befolgen, sonst können Sie kein X mehr startet. Der Grund: nvidia-glx und der Treiber stören sich gegenseitig, wenn sie geladen werden. Sie werden eine Meldung erhalten, dass die Version der X-Server-Libraries nicht mit denen des Treibers übereinstimmt.

Lösung

Öffnen Sie die Datei

sudo nano /etc/default/linux-restricted-modules-common

Wie der dortige Kommentar beschreibt, lassen sich hier Module aus diesem Paket explizit abschalten, d.h. sie werden nicht beim Start in den Kernel geladen - also genau das, was wir wollen!
In der letzten Zeile der Datei finden wir die Anweisung

DISABLED-MODULES=""

Tragen Sie nun den Wert "nv" ein:

DISABLED-MODULES="nv"


Fertig!

Rebooten und der nagelneue NVidia-Treiber wird geladen nebst erhaltener WLAN-Unterstützung!

Besonderheiten in Gutsy Gibbon (7.10)

Mein schneller Laptop war bisher noch immer mit Feisty in Betrieb, da die Verwaltung des NVidia-Treibers hier komplett anders realisiert ist. So hat Canonical hier die proprietären Treiber von NVidia und ATI direkt mit in die Distribution gepackt. Dies hat den Vorteil, dass selbst ein Laie diese per Mausklick installieren und sich somit oben beschriebene Aktionen sparen kann.

Problematisch wird es aber für Notebookbesitzer, die gerne auch mal einen externen Bildschirm benutzen möchten. In meinem Falle wollte sich der 22" Videoseven mit 1680x1050er Auflösung nicht ansteuern lassen. Das Problem kannte ich vormals schon vom aktuellsten Treiber mit der Major-Nummer 100, mit dem 97xx ging es problemlos, das hier der Ausgang automatisch gewählt wurde. Die Crux: der eingebaute Treiber in Gutsy ist der aktuellste und somit besteht dieses Problem weiterhin.

Für mich habe ich nur eine Lösung gefunden, und zwar das Tool "nvidia-settings" zu benutzen. Bei Gutsy gibt es allerdings keinen Menüeintrag für dieses Tool, daher startet man es mittels ALT+F2 mit

gksu nvidia-settings

Da das Programm als root-Benutzer gestartet wird, kann man die Änderungen sogar in die Konfiguration abspeichern lassen (xorg.conf). Entgegen jeder Logik stellt man hier den externen Bildschirm als den einzigen ein, den man verwenden möchte. Twinview schaltet man ab.

Auf diese Wiese konnte ich sogar den DVI-Ausgang benutzen, allerdings verursachte dies beim Wechsel auf die Textkonsole ein übles Bild auf dem internen Laptopdisplay. Um es vor Schaden zu bewahren, sollte man hier entweder auf den DVI verzichten oder aber den Rechner komplett runterfahren, wenn man den externen Monitor nicht mehr benutzen will.