ubuntuusers.de

nvidia

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./nvidia_logo.jpg Diese Anleitung behandelt die Installation und Konfiguration des proprietären "nvidia"-Treibers. Dieser Treiber bietet im Gegensatz zum 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 Konfigurations-Tool. Seit Version 304.22 wird RandR vollständig unterstützt. Nvidia hat den Treiber in mehrere Versionsgruppen aufgeteilt, welche jeweils unterschiedliche Kartengenerationen unterstützen. Eine vollständige Auflistung aller unterstützten Karten ist in der Herstellerdokumentation 304.137 🇬🇧, Herstellerdokumentation 340.106 🇬🇧 und Herstellerdokumentation 384.111 🇬🇧 zu finden. Dort lässt sich im Zweifel auch die Treiberzuordnung nachschlagen.

Treiberinstallation

Verwaltung eingeschränkter Treiber

Die Installation über die Verwaltung eingeschränkter Treiber ist der empfohlene Weg. Dort kann der proprietäre Treiber einfach installiert und auch wieder deinstalliert werden. Anschließend muss das System neu gestartet werden. Diese Treiber sind auch für entsprechende Quadros geeignet. Man kann anhand des verbauten Chips erkennen, aus welcher GeForce-Reihe dieser stammt und dann diesen Treiber installieren.

Über die Paketverwaltung

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, welcher Grafikprozessor verbaut ist, im Terminal [2]

lspci -nnk | grep -i "VGA\|'Kern'\|3D\|Display" -A2 

eingeben. Dadurch wird ersichtlich, welche Hardware (NVnn) vorhanden und welcher Treiber in Benutzung ist.

Ubuntu 19.10

  • xserver-xorg-video-nvidia-435 - TITAN, RTX, MX, GeForce 1600 bis 600

  • xserver-xorg-video-nvidia-390 - GeForce 400 bis 500 series, GeForce 605 bis 645 und GeForce 705

  • nvidia-340 - GeForce 8 und 9 series, GeForce 100 bis 300 series, Geforce 405

  • nvidia-settings - herstellerseitiges Konfigurations-GUI

Ubuntu 18.04

  • xserver-xorg-video-nvidia-390 - GeForce 400 bis 1000 series

  • nvidia-384 - GeForce 400 bis 1000 series, nicht GeForce 405

  • nvidia-340 - GeForce 8 und 9 series, GeForce 100 bis 300 series, Geforce 405

  • nvidia-settings - herstellerseitiges Konfigurations-GUI

Ubuntu 16.04

  • nvidia-384 - GeForce 400 bis 1000 series, nicht GeForce 405

  • nvidia-340 - GeForce 8 und 9 series, GeForce 100 bis 300 series, GeForce 405

  • nvidia-304 - GeForce 6 und 7 series

  • nvidia-settings - herstellerseitiges Konfigurations-GUI

Aktivierung der Treiber

Die Aktivierung erfolgt nach der Installation und einem Systemneustart automatisch.

Installation aus PPA

Wird die Grafikkarte vom Treiber aus den offiziellen Paketquellen nicht unterstützt oder kommt es zu bekannten Fehlern, kann ggf. die Installation einer neueren Treiberversion aus einem PPA helfen.

Das PPA ~xorg-edgers/+archive/ubuntu/ppa bietet eine sehr hohe Zahl sehr aktueller und auch experimenteller Pakete. Um diese nicht versehentlich bei der Installation des proprietären nvidia-Treibers mit zu installieren, sind die nvidia-Pakete in ein separates PPA ausgelagert worden:

Adresszeile zum Hinzufügen des PPAs:

  • ppa:graphics-drivers/ppa

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams graphics-drivers zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Sollten die Treiber trotz Nutzung des obigen PPAs und des Neueinlesens der Paketquellen nicht in der Treiberverwaltung angezeigt werden, so kann eine Installation manuell aus dem Terminal vorgenommen werden. Um die verfügbaren Versionen anzuzeigen ist, folgende Zeile zu nutzen:

apt search nvidia 

Alternativ kann auch der folgende Befehl verwendet werden, um ausschließlich Treiber in stabiler Version anzuzeigen:

apt search nvidia | egrep -o 'nvidia\-[0-9]+(\/|([ ]+\-))' | egrep -o --color=auto 'nvidia\-[0-9]+' 

Hat man die korrekte Version ermittelt, die Website von Nvidia kann hier hilfreich sein, ist folgendermaßen der Treiber exemplarisch zu installieren:

sudo apt-get install nvidia-390 nvidia-settings 

Nvidia-Treiber-Installer

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.

Problembehebung

Verwendeten Treiber feststellen

Ob der nvidia-Treiber tatsächlich geladen wird, kann durch folgenden Befehl überprüft werden:

grep nvidia_drv.so /var/log/Xorg.0.log 

Ist die Zeile

Loading /usr/lib/xorg/modules/drivers//nvidia_drv.so

enthalten, wird der nvidia-Treiber geladen. Die Version des verwendeten Treibers wird 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

NVIDIA-AGP aktivieren

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

Seit Linux 2.6 muss AGPGART 🇬🇧 deaktiviert werden.

Vorgehen bei GRUB 2

Um das AGP-Modul des Nvidia-Treibers zu nutzen, muss das kerneleigene Modul für AGP abgeschaltet werden. Dafür wird die Konfigurationsdatei /etc/default/grub/ mit einem Editor [3] mit Root-Rechten bearbeitet und die markierte Option agp=off eingesetzt:

GRUB_CMDLINE_LINUX_DEFAULT="agp=off splash quiet"

Anschließend ist noch ein

sudo update-grub 

durchführen, damit die Änderungen übernommen werden.

NVIDIA Fast Writes und SBA aktivieren

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 etwa so aussehen:

   Status:          Enabled
   Driver:          NVIDIA
   AGP Rate:        8x
   Fast Writes:     Enabled
   SBA:             Enabled

3D-Funktionalität testen

Wie man die 3D-Fähigkeit testet, kann man in Grafikkarten nachlesen.

Einstellungen nach Neustart nicht aktiv

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

Falsche Anzeige der Bildwiederholfrequenz im GUI

Bei Nvidia-Grafikkarten kann außerdem das Problem auftreten, dass unter GNOME im GUI keine korrekte Bildwiederholrate angezeigt wird. Hier hilft die Option "DynamicTwinView" "0" in der oben genannten Device-Sektion. Leider verliert man hierdurch 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 

Hinweis:

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.

Keine grafische Oberfläche

  • 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
  • Nach der Aktualisierung auf Ubuntu 16.04 schaltet sich bei einigen Notebooks mit Geforce GTX 660M und Optimus-Technologie (z. B. Modelle von Nexoc) der Notebook-Bildschirm beim Start des XServers völlig aus, und es ist unter normalen Umständen kein Wechsel in eine Konsole möglich. Dies tritt bei allen Treiberversionen bis inkl. 361.x auf. Hier kann in den Recovery-Mode gebootet und der Treiber nvidia-384 installiert werden.

"low graphics mode" nach Installation eines neuen Kernels

Kann die graphische Oberfläche nach der Installation eines neuen Kernels nur im "low graphics mode" gestartet werden, so ist möglicherweise das Paket linux-headers nicht installiert. DKMS kann den Treiber dann nicht für den neuen Kernel erstellen und installieren, siehe DKMS/Kernelquellen nicht installiert.

Es kann auch hilfreich sein, das Konfigurationsskript des installierten nvidia-Treibers (z.B nvidia-384) erneut auszuführen. Anschließend ist ein Neustart erforderlich.

sudo dpkg-reconfigure  nvidia-"Versionsnummer" 

Rechner startet nur bis zur Mitteilung "low graphics mode"

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:

sudoedit /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.

Grafikkarte wird nicht unterstützt

Gelegentlich scheint der nvidia-glx-Treiber nicht zu funktionieren, obwohl die entsprechende Karte in der Liste der unterstützten Produkte aufgeführt wird.

Für neuere Grafikkarten, die noch nicht korrekt vom "new"-Treiber unterstützt werden, ist eine manuelle Treiberinstallation nötig.

Absturz beim Beenden

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.

Keine 3D-Beschleunigung mit legacy-Treiber

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"

Bildschirm flackert (wird kurz schwarz)

Dieses Problem scheint insbesondere im Zusammenhang mit Compiz zu bestehen.

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 🇬🇧

Falsche libglx.so geladen

Es kann sein, dass der Start des X-Servers scheitert, da X seine eigene Version der Bibliothek libglx.so geladen hat. Gewöhnlicher Weise findet man diese unter /usr/lib/xorg/modules/extensions/libglx.so, während NVidia seine libglx.so unter /usr/lib/nvidia-VERSION/xorg/libglx.so ablegt. (VERSION entspricht hier der jeweils installierten Nvidia-Version)

So kann überprüft werden, ob dieses Problem vorliegt:

grep glx /var/log/Xorg.0.log 
[ 11312.722] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[ 11312.722] (II) LoadModule: "glx"
[ 11312.722] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 11312.722] (II) Module glx: vendor="X.Org Foundation"

Steht hier vendor="X.Org Foundation", liegt das beschriebene Problem vor. Bei vendor="NVIDIA Corporation" existiert dagegen wohl ein anderes Problem.

Eine Lösung besteht darin, Xorg den richtigen Pfad zu den Modulen, die es laden soll, mitzuteilen. Dies geschieht in der Datei /etc/X11/xorg.conf in der Sektion "Files":

Section "Files"
    ModulePath      "/usr/lib/nvidia-VERSION/xorg"
    ModulePath      "/usr/lib/xorg/modules"
    ...
EndSection

nvidia-VERSION muss durch die entsprechende Version ersetzt werden (etwa nvidia-319-updates oder nvidia-current).

Kurzzeitig schwarzer Monitor bei Flash-Inhalten auf Webseiten

Bei Flash in einem Browser kann es passieren, dass der Monitor kurzzeitig ein schwarzes Bild bringt ähnlich einem Umschalten des Grafiksmodus'.

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 beseitigt auch dieses Anzeigeproblem.

  1. Öffnen der "NVIDIA X Server Settings", unter GNOME zu finden unter "System → Einstellungen → NVIDIA X Server Settings"

  2. linke Maustaste-Klick auf "OpenGL Settings"

  3. Entfernen des Hakens bei "Allow Flipping"

Diese Option wird sofort angewendet. Ein Reset von X ist nicht nötig.

Abschaltung eines externen Monitors bei geschlossenem Notebook-Deckel

Nach der Installation des nvidia-Treibers (getestet mit 16.04, nvidia-340 und Thinkpad T61 Quadro NVS 140M) geht beim Schließen des Deckels der externe Monitor aus, bzw. schaltet das System in suspend am Login-Screen. Abhilfe kann die Anpassung von /etc/systemd/logind.conf mit folgenden Werten schaffen:

HandleLidSwitch=ignore
LidSwitchIgnoreInhibited=no

Intern

Extern

Diese Revision wurde am 16. Januar 2020 09:23 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Nvidia, unfreie Software, Hardware