Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
Unter 12.10 muss manuell das Paket linux-headers-generic installiert werden, siehe 1068341.
Diese Anleitung behandelt die Installation und Konfiguration des proprietären "nvidia"-Treibers. Dieser Treiber bietet im Gegensatz zu dem freien Nouveau-Treiber eine ausgereifte 2D-Beschleunigung, unterstützt OpenGL sowie die Hardware-Beschleunigung von HD-Videos über VDPAU. Die RandR-Erweiterung wird von Versionen vor 304.22 nur in Version 1.1 unterstützt, der Treiber bietet aber ein eigenes umfangreiches Konfigurationstool. Ab Version 304.22 wird Randr vollständig unterstützt. Nvidia hat den Treiber in mehrere Versionen aufgeteilt, welche jeweils unterschiedliche Kartengenerationen unterstützen. Eine vollständige Auflistung aller unterstützten Karten ist in der Hersteller-Dokumentation-295.71 , bzw. Hersteller-Dokumentation-304.64
, und Hersteller-Dokumentation-310.32
zu finden. Dort lässt sich im Zweifel auch die Treiberzuordnung nachschlagen.
Über die Verwaltung eingeschränkter Treiber kann der proprietäre Treiber einfach installiert und aktiviert werden. Dies ist der für Ubuntu empfohlene Weg. Nach dem Start dieser Funktion über "System -> Systemverwaltung -> Hardware-Treiber" wird der geeignete Treiber hervorgehoben und kann per Mausklick aktiviert werden. Es wird gewarnt, dass die Verwendung von binären Treibern nicht risikofrei ist. Nach dem Bestätigen dieser Warnung wird der Treiber automatisch installiert und konfiguriert. Anschließend muss das System neu gestartet werden.
Ab Quetzal Quantal hat sich die Lage zur Installation unfreier Treiber etwas geändert. Der Installationsdialog befindet sich nun im Paketquellen-Manager (Software-Quellen) und ist dort über den 6. Reiter erreichbar.
Alternativ kann der Treiber über die Paketverwaltung installiert [1] werden. Dabei ist die für die jeweilige Karte passende Treiberversion (s.a. Links) zu wählen und das entsprechende Paket zu installieren.
Um festzustellen, welche Grafikkarte vorliegt, im Terminal [2]
lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print'
eingeben. Dadurch wird ersichtlich, welche Hardware (NVnn) vorhanden und welcher Treiber in Benutzung ist.
nvidia-experimental-310: (NVC0 und neuer) ab GeForce 8
nvidia-current: (NV40 - NVAF) GeForce 6/7
nvidia-173: (NV30-NV38) GeForce 5 bis GeForce 9 - Treiber für X-Server ABI 1.13 aktualisiert, jedoch fehlt nun noch nvidia-settings 1100994. Sehr oft genügt auch der vorinstallierte Nouveau-Treiber
nvidia-96: (NV11 und NV17-28) Legacy-Treiber funktioniert nicht mit aktuellem X-Server, kein Hersteller-Update für X-Server ABI 1.13 mehr geplant.
nvidia-settings: herstellerseitige Konfigurations-GUI
nvidia-experimental-310: (NVC0 und neuer) ab GeForce 8
nvidia-current: (NV40 - NVAF) GeForce 6/7
nvidia-173: (NV30 - NV38) GeForce 5 bis GeForce 9
nvidia-96: (NV11 und NV17 - NV28) GeForce 2 MX - GeForce 4
nvidia-settings: herstellerseitige Konfigurations-GUI, bzw.
nvidia-settings-updates – falls bereits eine Aktualisierung vorliegt, siehe auch nvidia-settings
nvidia-current (Version 195.36.24): ab GeForce 6
nvidia-173: GeForce FX
nvidia-96: GeForce2 MX bis GeForce 4
nvidia-settings: herstellerseitige Konfigurations-GUI
Bei Ubuntu-Version die neuer als Lucid Lynx sind, erfolgt die Aktivierung nach der Installation und einem System-Neustart automatisch. Siehe auch Verwaltung eingeschränkter Treiber
Zur Aktivierung des Treibers muss dieser in der Konfigurationsdatei des X-Servers /etc/X11/xorg.conf eingetragen werden. Dazu wird die Konfigurationsdatei mit einem Editor [3] mit Root-Rechten [8] bearbeitet (wenn nicht vorhanden, neu anlegen). Der Abschnitt "Device
" ist um den Eintrag Driver "nvidia"
zu ergänzen:
Section "Device" Identifier "Configured Video Device" Driver "nvidia" EndSection
Nach einem Neustart sollte der Treiber aktiv sein.
Wird die Grafikkarte von dem Treiber in den Paketquellen nicht unterstützt oder kommt es zu bekannten Fehlern, kann ggf. die Installation einer neueren Treiberversion aus einem PPA helfen.
Ab Ubuntu Lucid Lynx 10.04 können aktualisierte Treiber aus folgender Paketquelle bezogen werden.
Adresszeile zum Hinzufügen des PPAs:
ppa:ubuntu-x-swat/x-updates
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen bietet die PPA-Beschreibung vom Benutzer/Team ubuntu-x-swat.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Außerdem ist es möglich, neuere Treiberversionen von Hand zu installieren. Dies sollte jedoch nur durchgeführt werden, falls die benötigte Treiberversion anderweitig noch nicht verfügbar ist.
Die Möglichkeiten zur Konfiguration des Nvidia-Treibers sind ausführlich unter Nvidia-Grafikkarten XServer-Optionen beschrieben.
Ob der "nvidia"-Treiber tatsächlich geladen wird, kann durch folgenden Befehl überprüft werden:
grep nvidia_drv.so /var/log/Xorg.0.log
Dort sollte folgende Zeile vorkommen:
Loading /usr/lib/xorg/modules/drivers//nvidia_drv.so
Wenn diese Zeile in der Datei vorkommt, wird der "nvidia"-Treiber geladen.
Die Version des verwendeten Treibers wird einem im Begrüßungsfenster von nvidia-settings mitgeteilt.
Eine grobe Übersicht erhält man durch eine Terminaleingabe [2] von
dpkg -l nvidia*
Beispiel:
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten | Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/ Halb installiert/Trigger erWartet/Trigger anhängig |/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht) ||/ Name Version Beschreibung +++-==================================================-==============================-=========================================================== un nvidia-180-modaliases <keine> (keine Beschreibung vorhanden) un nvidia-185-modaliases <keine> (keine Beschreibung vorhanden) ii nvidia-common 1:0.2.44.2 Find obsolete NVIDIA drivers un nvidia-current-modaliases <keine> (keine Beschreibung vorhanden) ii nvidia-current-updates 304.64-0ubuntu0.2 NVIDIA binary Xorg driver, kernel module and VDPAU library un nvidia-libvdpau <keine> (keine Beschreibung vorhanden) un nvidia-libvdpau-ia32 <keine> (keine Beschreibung vorhanden) un nvidia-libvdpau1 <keine> (keine Beschreibung vorhanden) un nvidia-libvdpau1-ia32 <keine> (keine Beschreibung vorhanden) ii nvidia-settings-updates 304.43-0ubuntu0.2 Tool of configuring the NVIDIA graphics driver un nvidia-vdpau-driver <keine> (keine Beschreibung vorhanden)
Alternativ kann man auch diesen Befehl im Terminal eingeben, für den Treiber nvidia-current
:
dpkg --status nvidia-current-updates | grep Version
was zu diesem Ergebnis führt:
Version: 304.64-0ubuntu0.2
Um zu erfahren, ob AGP aktiviert ist und welche Version des Treibers verwendet wird, im Terminal folgenden Befehl ausführen:
cat /proc/driver/nvidia/agp/status
oder
cat /proc/driver/nvidia/version
Wird als Treiber Nvidia
ausgegeben, so wird der Treiber bereits verwendet.
Um den AGP-Treiber von Nvidia zu aktivieren, muss zunächst der aktuelle AGP-Treiber abgeschaltet werden.
Eine mögliche Ausgabe von
lsmod | grep agp
wäre
intel_agp 33724 1 agpgart 42184 2 nvidia,intel_agp
In diesem Falle müssten die Module agpgart
, nvidia
und intel_agp
auf die Blacklist gesetzt werden. Ein einfaches Neustarten reicht dabei in aller Regel nicht! Wenn es nach einem Neustart also noch nicht funktioniert, müssen die Module mittels eines
sudo update-initramfs -u
und anschließendem Neustart entladen werden.
Zur Aktivierung des AGP-Treibers muss dieser in der Konfigurationsdatei des Xservers /etc/X11/xorg.conf eingetragen werden. Dazu wird die Konfigurationsdatei mit einem Editor [3] mit Root-Rechten bearbeitet. Der Abschnitt Section "Device"
ist um den Eintrag Option "nvidia" "NvAGP" "1"
zu ergänzen:
Section "Device" Identifier "Configured Video Device" Driver "nvidia" Option "NvAGP" "1" EndSection
Ab Linux 2.6 muss AGPGART deaktiviert werden.
Um das AGP-Modul des Nvidia-Treibers zu nutzen, muss das Kerneleigene Modul für AGP abgeschalten werden. Dafür wird die Konfigurationsdatei /etc/default/grub/ mit einem Editor [3] mit Root-Rechten bearbeitet. In der Zeile 'GRUB_CMDLINE_LINUX_DEFAULT="agp=off splash quiet"' muss die markierte Option (agp=off
) eingesetzt werden. Anschließend noch ein
sudo update-grub
durchführen, damit die Änderungen übernommen werden.
Um "Fast Writes" und SBA (Sideband Adressing) zu aktivieren, muss zunächst die Konfigurationsdatei modprobe.conf in /etc in einem Editor[3] mit Root-Rechten erstellt oder bearbeitet werden. In dieser Datei müssen die Optionen
alias char-major-195 nvidia options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1
aufgenommen werden.
Nach einem Neustart kann man mit
cat /proc/driver/nvidia/agp/status
feststellen, ob "Fast Writes" und SBA geladen sind, die Ausgabe sollte in etwa so aussehen:
Status: Enabled Driver: NVIDIA AGP Rate: 8x Fast Writes: Enabled SBA: Enabled
Wie man die 3D-Fähigkeit testet, kann man in Grafikkarten nachlesen.
Werden die Einstellungen der NVIDIA-Settings nach einem Neustart nicht direkt aktiviert, sondern erst nach einem manuellen Start des Programms, hilft folgender Befehl im Autostart: nvidia-settings -l
Bei Nvidia-Grafikkarten kann außerdem das Problem auftreten, dass unter GNOME in der GUI keine korrekte Bildwiederholrate angezeigt wird. Hier hilft die Option "DynamicTwinView" "0"
ebenfalls in der oben genannten Device
-Sektion. Leider verliert man hierdurch auch die Möglichkeit, eine einzelne Ausgabe ("X Screen"
) beliebig auf mehrere Bildschirme zu verteilen.
Section "Device" Identifier "Nvidia 7600GS" Driver "nvidia" ... Option "DynamicTwinView" "0" EndSection
Alternativ lässt sich bei Verwendung von "DynamicTwinView"
die tatsächliche Bildwiederholrate auch direkt über den Treiber ermitteln und ausgeben:
nvidia-settings -q RefreshRate
DynamicTwinView
bietet die Möglichkeit, eine einzelne Ausgabe ("X Screen"
) auf mehrere Bildschirme zu verteilen. Die Bildwiederholrate wird unter X meist mithilfe der RandR-Erweiterung des Xservers ermittelt. Gegenwärtig ist RandR noch nicht in der Lage, einzelne "X Screens"
zu handhaben, die auf mehrere Bildschirme verteilt sind. Nvidia umgeht diese Einschränkung durch Verwendung eines "MetaModus"
, die Ermittlung der Bildwiederholrate mittels RandR schlägt daraufhin jedoch fehl.
Sollte es zu Problemen mit dem nvidia-Treiber kommen, kann dieser in der xorg.conf durch Auskommentieren der Driver "nvidia"
-Zeile (ein "#" davor setzen) deaktiviert werden.
Gegebenenfalls muss in der /etc/default/linux-restricted-modules-common das durch eine vorherige manuelle Installation des Treibers gesperrte Nvidia-Kernelmodul von Ubuntu entsperrt werden. Dazu entfernt man das nv
in den DISABLED_MODULES
:
DISABLED_MODULES=""
In Medion-Computern mit einer GeForce4 440 Go Grafikkarte kann es helfen, den Treiber zu zwingen, das Signal auf den Computerbildschirm zu senden ("DFP" (digital flat panel)), anstatt es fälschlicherweise zuerst mit dem TV-Ausgang zu versuchen. Man fügt (mit Root-Rechten) folgende Option in die Datei /etc/X11/xorg.conf ein:
Section "Device" ... Option "UseDisplayDevice" "DFP" EndSection
Kann die graphische Oberfläche nach der Installation eines neuen Kernels nur im "low graphics mode" gestartet werden, so sind möglicherweise die Header des Kernels nicht installiert. DKMS kann den Treiber dann nicht für den neuen Kernel erstellen und installieren, siehe DKMS/Kernelquellen nicht installiert.
Durch einen Bug kann es bei einigen Nvidia-Karten in Verbindung mit nvidia-current (195) oder dem nvidia-173 zu Problemen beim Start kommen. Diese können zum Teil nur durch den Wechsel in die Konsole
Strg +
Alt +
F1 und ein entsprechendes Bearbeiten von GRUB 2 behoben werden. Dafür fügt man die Bootoption "nopat"
in der Datei /etc/default/grub ein:
sudo nano /etc/default/grub
Die Bootoption einfügen:
GRUB_CMDLINE_LINUX="nopat"
und am Ende noch
sudo update-grub sudo reboot # startet den Rechner abschließend neu.
Damit läuft die Grafikkarte nun stabil.
Gelegentlich scheint der nvidia-glx-Treiber nicht zu funktionieren, obwohl die entsprechende Karte in der Liste der unterstützten Produkte aufgeführt wird.
Hier hilft für ältere Grafikkarten die Benutzung des legacy-Treibers (z.B. mit GeForce 3 TI 200, GeForce 4 MX 440 und GeForce4 440 Go, letztere erfordert auch die Beachtung des Absatzes "Keine 3D-Beschleunigung mit legacy-Treiber" weiter unten). Speziell Medion-Karten und Karten, die modifiziert und übertaktet sind, machen ggf. Probleme.
Für neuere Grafikkarten, die noch nicht korrekt vom "new
"-Treiber unterstützt werden, ist eine manuelle Treiberinstallation nötig.
Grafikkarten der neuen Geforce_200M-Serie bereiten derzeit noch einige Probleme (Stand 20.03.2010). Für diese Karten wird empfohlen, den "195.36.15
"-Treiber aus den angeführten PPA-Quellen zu installieren.
Anschließend ist in der xorg.conf die Zeile
Option "ModeValidation" "NoTotalSizeCheck"
unter "Device"
einzutragen[3]. Danach sollte die Grafikkarte unterstützt werden.
Ebenso scheint es einen Bug zu geben, der beim Beenden des Systems den XServer sich aufhängen lässt. Umgehen kann man dies derzeit, indem man der Grafikkarte eine Auflösung des Framebuffers zuweist. Die vga
-Kerneloption muss von Hand in die /boot/grub/menu.lst eingetragen werden. Mehr dazu im Wiki unter Booten.
Für den Fall, dass der Befehl [2]
glxinfo | grep direct
mehrere Zeilen folgenden Inhalts ausgibt:
Xlib: extension "GLX" missing on display ":0.0"
Hier kann es helfen, in der /etc/X11/xorg.conf in der Section "Device"
folgende Zeile zu ergänzen:
Option "AllowGLXWithComposite" "true"
Dieses Problem scheint insbesondere im Zusammenhang mit Compiz zu bestehen (siehe dieses Posting im nVidia-Forum) .
Eine mögliche Lösung besteht laut dem Posting darin, dem nVidia-Kernelmodul beim Laden zusätzliche Parameter zu übergeben. Dazu muss der Konfigurationsdatei /etc/modprobe.d/nvidia-kernel-nkc folgendes hinzugefügt werden:
options nvidia_new NVreg_Mobile=1 NVreg_RegistryDwords="PerfLevelSrc=0x2222"
oder alternativ:
options nvidia NVreg_Mobile=1 NVreg_RegistryDwords="PerfLevelSrc=0x2222"
Ist die Datei nicht vorhanden, so kann sie einfach angelegt und mit der Zeile gefüllt werden.
Sollte dadurch das Flackern nach dem Neustart nicht verschwunden sein, sollte man zusätzlich mit der Datei /etc/modprobe.d/nvidia genauso vorgehen.
In /etc/modprobe.d/options muss die Zeile eingetragen werden. (Quelle: Forum)
Sollte auch das nicht helfen, folgendes Skript anlegen, z.B. in /usr/local/bin:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash while true; do powerstate=`cat /proc/acpi/ac_adapter/AC/state | awk '{print $2}'` if [ $powerstate = "on-line" ]; then nvidia-settings -q all > /dev/null fi sleep 25; done |
Das Skript verhindert durch Abfragen der Einstellungen der Nvidia-Karte alle 25 Sekunden, dass der Grafikchip sich heruntertaktet (dies verursacht das Flackern). Dies geschieht allerdings nur, wenn sich das Notebook am Stromnetz befindet.
Das Skript kann dann am Besten per Autostart gestartet werden.
Quelle: thinkwiki.org
Wenn der Browser einen Flashplayer anzeigt (egal ob z.B. Werbung oder Youtube Video) kann es passieren das der Monitor kurzzeitig ein schwarzes Bild zeit, so als wenn der Grafik-Modus umgeschaltet würde.
Im Youtube_Video Flackern in Screencasts mit compiz wird ein ähnliches Problem durch die Deaktivierung der Option
Allow Flipping
im Programm NVIDIA X Server Settings
gelöst. Das Deaktivieren dieser Option durch die folgenden Schritte löst auch dieses Anzeigeproblem.
Öffnen der "NVIDIA X Server Settings", unter GNOME zu finden unter "System -> Einstellungen -> NVIDIA X Server Settings"
-Klick auf "OpenGL Settings"
Entfernen des Haken bei "Allow Flipping"
Diese Option wird sofort angewendet. Ein Reset von X ist nicht nötig.
intern
Grafikkarten/Nvidia Übersichtsartikel
NVIDIA X-Server Settings Herstellerspezifische GUI für erweiterte Einstellungen
extern
Nvidia - offizielle Übersicht der aktuellen, proprietären Unix-Treiber
Nvidia-Treiberdownload - auch zu Info-Zwecken geeignet, offizielle Herstellerseite
Launchpad: Nvidia-Drivers-Ubuntu Fehlerberichte/Bugreports