Unfreie Grafiktreiber für NVIDIA

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Grafische Oberflächen ‹ Unfreie Grafiktreiber für NVIDIA


Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.



Nvidia ist der proprietäre Treiber von NVIDIA selbst. Er bietet volle 3D-Unterstützung und uneingeschränkte Möglichkeiten beim Konfigurieren von Setups mit mehreren Monitoren und sogar TV-out.

Die Installation umfasst im wesentlichen 3 Schritte:

  • Kompilieren bzw. installieren des Kernel Moduls
  • Installieren des Xorg-Treiber
  • Konfiguration der /etc/X11/xorg.conf

Diese drei Schritte sind je nach Installationsart verschieden zu bewerkstelligen. Für die Installation selbst gibt es einmal die Möglichkeit, vorgefertigte Debian Pakete aus den Debian non-free Quellen zu installieren. Oder man nutzt direkt den Treiber von nvidia.de.

Nvidia Installer oder Debian Quellen

Jede Variante hat seine Vor- und Nachteile. Jedoch wird es sehr empfohlen die Installation über die Debian Quellen zu erledigen.

Treiber aus den Debian Quellen

  • Die Installation erfolgt als Debian Pakete, kann also auch ohne Probleme wieder rückgängig werden.
  • Updates werden direkt über die Debian Paket Verwaltung installiert.
  • Die Debian Paket sind in der Regel länger getestet und als stabil befunden. Außerdem wird sichergestellt, dass innerhalb eines Releases alle Versionen zueinander passen.
  • Installation ist einfacher
  • Brandneue Hardware wird möglicherweise nicht unterstützt
  • Bekannte Bugs in dem geschlossenen Treiber

Treiber von nvidia.com:

  • meist neuere Version als aus den offiziellen Debian Quellen, dadurch wird neuere Hardware möglicherweise besser/überhaupt unterstützt.
  • Bugs älterer Versionen meist gefixt
  • Der Installer kann abstürzen, wenn der nouveau-Treiber aktiv/installiert ist


Ermittlung des passenden Treibers

In den unfreien Quellen gibt es ein Programm zur Ermittlungen des richtigen Treibers. Dieses Programm heißt Debianpackage.png nvidia-detect und kann mit folgendem Befehl installiert werden:

root@debian:~# apt-get install nvidia-detect
user@debian:~$ nvidia-detect

Ausgabebeispiel 1:

 Detected NVIDIA GPUs:
 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GT 630] [10de:0f00] (rev a1)
 Your card is supported by the default drivers.
 It is recommended to install the
     nvidia-glx
 package.

Ausgabebeispiel 2:

 Detected NVIDIA GPUs:
 00:10.0 VGA compatible controller [0300]: NVIDIA Corporation C73 [GeForce 7050 / nForce 610i] [10de:07e3] (rev a2)
 Your card is only supported up to the 304 legacy drivers series.
 It is recommended to install the
     nvidia-legacy-304xx-driver
 package.

Ausgabebeispiel 3:

 Detected NVIDIA GPUs:
 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT216 [GeForce GT 220] [10de:0a20] (rev a2)
 Your card is supported by the default drivers and legacy driver series 304.
 It is recommended to install the
     nvidia-driver
 package.

Ausgabebeispiel 4:

 Detected NVIDIA GPUs:
 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:13b2] (rev a2)
 Uh oh. Your card is not supported by any driver version up to 304.131.
 A newer driver may add support for your card.
 Newer driver releases may be available in backports.

Installation unter Lenny

Um den nvidia-Treiber aus den Debian Quellen installieren zu können, muss die /etc/apt/sources.list um die `contrib` und `non-free` Quellen erweitert werden.

Für Lenny gibt es zwei Treiber. Das ist der Treiber in Version 173.14.09. Im Handbuch sind die unterstützten Karten aufgelistet. Und es gibt den Legacy-Treiber in Version 96.43.07, welcher üblicherweise ältere, vom Erstgenannten nicht mehr unterstützte Karten unterstützt. Das Handbuch gibt es für diese Version nur in Plain-Text Form, die unterstützen Karten sind im Appendix A aufgelistet.

Wird ein Standardkernel von Lenny verwendet, kann das bauen des Kernel Modules übersprungen werden. Es liegt bereits fertig in den offiziellen Quellen von Debian.

Wird statt dessen ein anderen Kernel benutzt, z.B. aus den Backports, so muss man mit module-assistant (Kurzform m-a) das Modul für den laufenden Kernel gebaut und installiert werden. Zuerst müssen aber folgende Debian Pakete installiert werden: Debianpackage.png build-essential, Debianpackage.png module-assistant, Debianpackage.png nvidia-kernel-source.

Danach wird folgendes als root ausgeführt:

root@debian:~# m-a prepare
root@debian:~# m-a a-i nvidia

Nun kann man die Pakete für den Treiber und ein paar Hilfsprogramme installieren:

nvidia-glx nvidia-xconfig nvidia-settings

Jetzt wird mit Hilfe des Tools nvidia-xconfig die /etc/X11/xorg.conf bearbeitet, was den Treiber aktiviert:

root@debian:~# nvidia-xconfig

Abschließend wird der Xserver neu gestartet.

Die Installation der Legacy-Treiber verläuft völlig analog, nur das statt nvidia-glx, nvidia-glx-legacy-96xx und statt nvidia-kernel, nvidia-kernel-legacy-96xx geschrieben wird.

Hinweis.png Hinweis: Wird die amd64 Architektur benutzt und es soll mit Hilfe von wine Windows Spiele, oder andere Programme, die 3D-Unterstützung benötigen und nur in 32-Bit vorliegen, ausgeführt werden, so wird zusätzlich Debianpackage.png nvidia-glx-ia32 benötigt!


Installation unter Wheezy, Squeeze und Sid

Um den nvidia-Treiber aus den Debian Quellen installieren zu können, muss die /etc/apt/sources.list um die `contrib` und `non-free` Quellen erweitert werden.

Wie auch in Lenny gibt es zwei Versionen, das ist zum einen der Treiber mit Version 195.36.24. Im Handbuch des Treiber kann nachgelesen werden, welche Karten unterstützt werden. Und zum anderen der Legacy Treiber in Version 173.14.25. Ebenfalls kann im Handbuch nachgelesen werden, welche Karten unterstützt werden.

Mit Squeeze wird eine neue Technik zum Bauen der Kernelmodule eingeführt: Debianpackage.png dkms. Dieses Programm kümmert sich selbständig bei Kernelupdates um den Bau der entsprechenden Module. DKMS ist nicht auf den nvidia-Treiber beschränkt.

Warnung.png Warnung: Bitte darauf achten, dass die passenden Linux-Headers installiert sind.


root@debian:~# apt-get install linux-headers-`uname -r`


Die Installation gestaltet sich recht einfach. Zunächst müssen alle benötigten Pakete installiert werden: Debianpackage.png nvidia-kernel-dkms, Debianpackage.png nvidia-glx, Debianpackage.png build-essential, Debianpackage.png nvidia-settings, Debianpackage.png nvidia-xconfig.

root@debian:~# apt-get install nvidia-kernel-dkms nvidia-glx build-essential nvidia-settings nvidia-xconfig

bzw. folgende Pakete für den Legacy Treiber: Debianpackage.png nvidia-kernel-legacy-173xx-dkms, Debianpackage.png nvidia-glx-legacy-173xx, Debianpackage.png build-essential, Debianpackage.png nvidia-settings, Debianpackage.png nvidia-xconfig.

root@debian:~# apt-get install nvidia-kernel-legacy-173xx-dkms nvidia-glx-legacy-173xx build-essential nvidia-settings nvidia-xconfig

Wer eine noch ältere Grafikkarte besitzt muss folgende Pakete installieren: Debianpackage.png nvidia-kernel-legacy-96xx-dkms, Debianpackage.png nvidia-glx-legacy-96xx, Debianpackage.png build-essential, Debianpackage.png nvidia-settings, Debianpackage.png nvidia-xconfig.

root@debian:~# apt-get install nvidia-kernel-legacy-96xx-dkms nvidia-glx-legacy-96xx build-essential nvidia-settings nvidia-xconfig

Jetzt wird mit Hilfe des Tools nvidia-xconfig die /etc/X11/xorg.conf bearbeitet, was den Treiber aktiviert:

root@debian:~# nvidia-xconfig -o /etc/X11/xorg.conf

Nach dem abschliesenden Neustart läuft nun alles.

Hinweis.png Hinweis: Wird die amd64 Architektur benutzt und es soll mit Hilfe von wine Windows Spiele, oder andere Programme, die 3D-Unterstützung benötigen und nur in 32-Bit vorliegen, ausgeführt werden, so wird zusätzlich Debianpackage.png nvidia-glx-ia32 benötigt!


Hinweis.png Hinweis: Debian Jessie Wird die amd64 Architektur benutzt und es soll mit Hilfe von wine Windows Spiele, oder andere Programme, die 3D-Unterstützung benötigen und nur in 32-Bit vorliegen, ausgeführt werden, so sollte man die kompatibilitäts bibliothek libgl1-nvidia-glx installieren, diese zieht dann noch wietere Pakete als abhängigkeit nach apt-get erledigt dies selbsständig. Multiarch muss natürlich vorher aktiviert werden.
root@debian:~#  apt-get install libgl1-nvidia-glx:i386


VDPAU

Mit VDPAU wird die Videodekodierung über die Grafikkarte ermöglicht, sodass die CPU dieses nicht mehr erledigen muss. Insbesondere bei schwachen CPUs macht dies die Wiedergabe von hochauflösenden Videos erst möglich. Voraussetzungen für VDPAU sind ein wie im vorigen Abschnitt beschriebener Nvidia-Treiber, ein Videoplayer mit VDPAU-Unterstützung und natürlich eine kompatible Grafikkarte. Außer den 8800er Modellen können dies alle Modelle ab Geforce 8x00, man erkennt die Grafikkarten am Werbeschriftzug "PureVideoHD".

An Paketen muss installiert werden: Debianpackage.png nvidia-vdpau-driver, Debianpackage.png vdpau-va-driver und bei 32bit-Programmen auf 64bit-Systemen noch zusätzlich Debianpackage.png nvidia-vdpau-driver-ia32 und Debianpackage.png lib32vdpau1.

# apt-get install nvidia-vdpau-driver vdpau-va-driver

und gegebenenfalls

# apt-get install nvidia-vdpau-driver-ia32 lib32vdpau1

Auf meinem System zeigte mplayer aus squeeze augenscheinlich Unterstützung für VDPAU, stürzte dann jedoch ab. VLC in Squeeze hat keine Unterstützung für VDPAU. Ich empfehle an der Stelle debian-multimedia.org für mplayer und/oder vlc >= 1.1.9 aus testing oder sid. TODO: mplayer testen! Bei VLC muss in den Einstellungen unter "Input und Codec" die (experimentelle) GPU-Beschleunigung aktiviert werden, damit aktiviert VLC automatisch VDPAU.

Links