staging.inyokaproject.org

nvidia

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

./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. Der Treiber bietet über ein eigenes umfangreiches Konfigurations-Tool nvidia-settings Einstellungsmöglichkeiten. Seit Version 304.22 wird die RandR-Erweiterung 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 zu finden. Dort lässt sich im Zweifel auch die passende Treiberzuordnung nachschlagen, die man dann mit der Hauptversionsnummer für Ubuntu auswählen kann, über Verwaltung eingeschränkter Treiber, die Paketverwaltung mit grafischer Benutzeroberfläche oder im Terminal per Befehlszeile:

Treiberinstallation

Verwaltung eingeschränkter Treiber

Die Installation über die Verwaltung eingeschränkter Treiber ist der empfohlene Weg mit grafischer Benutzeroberfläche. 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.

Installation mit apt-get im Terminal

Sicherheitshalber alte Treiberreste restlos entfernen und dann den passenden nvidia-driver installieren:

sudo apt-get purge \*nvidia\* ; sudo apt-get install nvidia-driver-XXX nvidia-settings 

Die jeweils passende dreistellige nvidia-driver Hauptversionsnummer auswählen und anstelle von XXX einsetzen.

Ubuntu 23.04

  • Ältere Nvidia-Grafikkarten ⇒ freier nouveau Treiber

Ubuntu 22.10

  • Ältere Nvidia-Grafikkarten ⇒ freier nouveau Treiber

Ubuntu 22.04

  • Ältere Nvidia-Grafikkarten ⇒ freier nouveau Treiber

Ubuntu 20.04

  • Ältere Nvidia-Grafikkarten ⇒ freier nouveau Treiber

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 Proprietary GPU Drivers PPA ~graphics-drivers/+archive/ubuntu/ppa bietet aktuelle nvidia-driver Pakete von upstream Nvidia an. Es richtet sich an erfahrene Nutzer. Freiwillige sind zum testen willkommen.

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.

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update 

Sollten die Treiber trotz Nutzung des obigen PPAs und neueinlesen der Paketquellen nicht in der Treiberverwaltung angezeigt werden, so kann eine Installation manuell aus dem Terminal vorgenommen werden. Terminaleingabe um die verfügbaren Versionen anzuzeigen:

apt search nvidia-driver | grep -iC1 meta 

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

apt search nvidia | egrep -o 'nvidia-driver\-[0-9]+(\/|([ ]+\-))' | egrep -o --color=auto 'nvidia-driver\-[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-driver-390 nvidia-settings 

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 folgende Zeile wie hier im Beispiel enthalten, wird der proprietäre nvidia-driver geladen:

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

Die Version des verwendeten Treibers wird im Begrüßungsfenster von nvidia-settings mitgeteilt.

Eine Übersicht über die installierten nvidia Pakete erhält man durch eine Terminaleingabe [2] von

dpkg -l | grep nvidia 

Im Beispiel ist die Ausgabe auf einem 22.04 Jammy Jellyfish zu sehen, mit dem 515.65.01 nvidia-driver Metapaket aus dem Nvidia CUDA Repository, welches die restlichen Bestandteile für den nvidia-driver hineinzieht:

ii  libnvidia-cfg1-515:amd64                                    515.65.01-0ubuntu1                                         amd64        NVIDIA binary OpenGL/GLX configuration library
ii  libnvidia-common-515                                        515.65.01-0ubuntu1                                         all          Shared files used by the NVIDIA libraries
ii  libnvidia-compute-515:amd64                                 515.65.01-0ubuntu1                                         amd64        NVIDIA libcompute package
ii  libnvidia-compute-515:i386                                  515.65.01-0ubuntu1                                         i386         NVIDIA libcompute package
ii  libnvidia-decode-515:amd64                                  515.65.01-0ubuntu1                                         amd64        NVIDIA Video Decoding runtime libraries
ii  libnvidia-decode-515:i386                                   515.65.01-0ubuntu1                                         i386         NVIDIA Video Decoding runtime libraries
ii  libnvidia-encode-515:amd64                                  515.65.01-0ubuntu1                                         amd64        NVENC Video Encoding runtime library
ii  libnvidia-encode-515:i386                                   515.65.01-0ubuntu1                                         i386         NVENC Video Encoding runtime library
ii  libnvidia-extra-515:amd64                                   515.65.01-0ubuntu1                                         amd64        Extra libraries for the NVIDIA driver
ii  libnvidia-fbc1-515:amd64                                    515.65.01-0ubuntu1                                         amd64        NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-fbc1-515:i386                                     515.65.01-0ubuntu1                                         i386         NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-gl-515:amd64                                      515.65.01-0ubuntu1                                         amd64        NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  libnvidia-gl-515:i386                                       515.65.01-0ubuntu1                                         i386         NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  nvidia-compute-utils-515                                    515.65.01-0ubuntu1                                         amd64        NVIDIA compute utilities
ii  nvidia-dkms-515                                             515.65.01-0ubuntu1                                         amd64        NVIDIA DKMS package
ii  nvidia-driver-515                                           515.65.01-0ubuntu1                                         amd64        NVIDIA driver metapackage
ii  nvidia-kernel-common-515                                    515.65.01-0ubuntu1                                         amd64        Shared files used with the kernel module
ii  nvidia-kernel-source-515                                    515.65.01-0ubuntu1                                         amd64        NVIDIA kernel source package
ii  nvidia-prime                                                0.8.17.1                                                   all          Tools to enable NVIDIA's Prime
ii  nvidia-settings                                             515.65.01-0ubuntu1                                         amd64        Tool for configuring the NVIDIA graphics driver
ii  nvidia-utils-515                                            515.65.01-0ubuntu1                                         amd64        NVIDIA driver support binaries
ii  screen-resolution-extra                                     0.18.2                                                     all          Extension for the nvidia-settings control panel
ii  xserver-xorg-video-nvidia-515                               515.65.01-0ubuntu1                                         amd64        NVIDIA binary Xorg driver

Alternativ kann man auch diesen Befehl im Terminal eingeben, um nach dem installiertem nvidia-driver Metapaket zu schauen, welches die restlichen Bestandteile für den properitären nvidia-driver hineinzieht:

dpkg -l | grep -i 'NVIDIA driver meta' 

Nach dem geladenen Kernelmodul und Version schauen

Um zu erfahren welche Version des Treibers verwendet wird, im Terminal folgenden Befehl ausführen:

cat /proc/driver/nvidia/version 

Hier im Beispiel der Ausgabe ist es der nvidia-driver 470.74, der verwendet wird:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  470.74  Mon Sep 13 23:09:15 UTC 2021
GCC version:  gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1) 

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

Proprietären nvidia-driver entfernen

Im Terminal ausführen:

sudo apt-get purge \*nvidia\* 

Alte Treiberreste entfernen, alle Pakete aktualisieren und aufräumen und proprietären nvidia-driver frisch reinstalliern, initrd neubauen, GRUB aktuallsieren und dann rebooten, alles in einem Rutsch

sudo apt-get purge \*nvidia\* ; sudo apt-get update && sudo apt-get -y dist-upgrade --allow-downgrades && sudo apt-get autoremove -y --purge && sudo apt-get autoclean && sudo apt-get install nvidia-driver-XXX nvidia-settings && sleep 10 && sudo dkms autoinstall && sleep 30 && sudo update-initramfs -c -k all && sudo update-grub && sleep 30 && systemctl reboot 

nvidia-driver-XXX ← Das XXX in der Befehlsfolge muss mit jeweils der gewünschten und zur Hardware passenden Hauptversionsnummer ersetzt werden. Siehe oben, also erst raussuchen was der richtige Treiber zur eignen Nvidia-Grafik ist, und dann die passende Hauptversionsnummer anstelle vom XXX einsetzen.

Intern

Extern

Diese Revision wurde am 26. Mai 2023 12:30 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, unfreie Software, Nvidia