Zum Inhalt springen

Nvidia: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(44 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{veraltet}}
{{hinweis|Dieser Artikel behandelt den proprietären Nvidia-Treiber. Für den Open-Source-Treiber siehe [[Nouveau]], für Laptops mit kombiniertem Intel/Nvidia-Chipsatz siehe [[:en:NVIDIA_Optimus|NVIDIA Optimus]].}}
{{unvollständig}}
[[Bild:nVidia-display-driver_01.png|thumb|320px|''Nvidia X Server Settings'' zeigt unter [[X]] die X-Server-Informationen an.]]


'''Dieser Installationstutorial ist so nicht mehr lauffähig, siehe auch die Information vom 1.3.2017 https://bbs.archlinux.de/viewtopic.php?pid=353393''' <br>
Für Nvidia-Grafikkarten wird ein proprietärer Teiber bereitgestellt, mit dem es möglich ist, auch unter Linux die volle Leistungsfähigkeit und den kompletten Funktionssatz von Nvidia-Grafikkarten zu verwenden.
'''Ein neuer Artikel ist unter https://wiki.archlinux.de/title/Optimus_Nvidia einzusehen.''' <br>'''


Für Nvidia Grafikkarten gibt es die Möglichkeit einen proprietären Treibers (nvidia) oder einen freien Treiber (nouveau) zu installieren. Als weiteren freien Treiber gab es ''xf86-video-nv'', der nur rudimentäre Funktionen bereitstellt und nicht mehr weiterentwickelt wird. Für ältere Karten kann er dennoch bei Problemen als Alternative verwendet werden.
== Installation ==
==Opensource Treiber nouveau==
Je nachdem, wie das System konfiguriert ist, und welche Hardware verbaut ist, werden unterschiedliche Treiberpakete benötigt.
=== Installation ===
pacman -S xf86-video-nouveau
Der Treiber unterstützt KMS daher kann man den Treiber schon im kernel initramfs einbauen lassen.<br>
Das geht mit Eintrag in der /etc/mkinitcpio.conf
MODULES="... nouveau ..."
anschließend mit
mkinitcpio -g /boot/initramfs-linux.img
den Treiber einbauen.<br>
Nur falls xorg den nouveau Treiber nicht übernimmt, ist noch eine Datei /etc/X11/xorg.conf.d/20-nouveau.conf zu machen.
Section "Device"
    Identifier "Nvidia card"
    Driver "nouveau"
EndSection
Rechner neu booten.


=== mehrere Bildschirme ===
Sofern man sich unsicher ist, welche Grafikkarte genau verbaut ist, kann dies relativ einfach herausfinden. Im Beispiel ist eine GTX 1080 verbaut.


Damit die Bildschirme bereits beim laden des X Servers die korrekte Auflösung haben, muss die Datei /etc/X11/xorg.conf.d/20-nouveau.conf erstellt und konfiguriert werden.
{{hc|1=lspci -k {{!}} grep VGA|2=01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)}}
Um mögliche Auflösungen sowie genutzte Anschlussnamen anzuzeigen folgenden Befehl nutzen
xrandr
Typische Anschlussnamen sind LVDS-1 (Laptop Bildschirm), VGA-1, DVI-1 oder HDMI-1.
Mögliche Auflösungen werden unter dem Anschlussnamen ausgegeben.
Beispielhafte Konfiguration:


Section "Monitor" #Laptop Bildschirm
Anhand der Ausgabe kann man nun das passende Treiberpaket auswählen:
  Identifier  "Laptop"
  Option      "Primary"        "True" # Auf dem primären Display wird bspw. der Login-Manager angezeigt
  Option      "PreferredMode"  "1280x800" # korrekte Auflösung eintragen
EndSection
Section "Monitor" #externer Bildschirm
  Identifier  "Extern"
  Option      "LeftOf"        "Laptop" # Auch "RightOf" möglich
  Option      "Primary"        "False"
  Option      "PreferredMode"  "1280x1024" # korrekte Auflösung eintragen
EndSection
Section "Device"
  Identifier  "Card0"
  Driver      "nouveau"
  Option      "Monitor-LVDS-1" "Laptop" # Schema "Monitor-ANSCHLUSSNAME"
  Option      "Monitor-VGA-1"  "Extern"
EndSection
Section "Screen"
  Identifier  "Screen0"
  Device      "Card0"
  DefaultDepth 24
  SubSection  "Display"
    Depth      24
    Virtual    2560 1024 # Höhe und Breite des erzeugten "Screens" (1280 + 1280 = 2560)
  EndSubSection
EndSection
Section        "ServerLayout"
  Identifier  "Layout0"
  Screen      "Screen0"
EndSection


==Proprietärer Treiber==
* Für GPUs der '''Maxwell-Serie (NV110)''', sowie neuere Grafikkarten wie '''GeForce 930~, 10-20, Quadro/Tesla/Tegra''' wird das Paket {{paket|nvidia}} benötigt. Bei Verwendung der LTS-Kernels entsprechend {{Paket|nvidia-lts}}. Falls diese Pakete nicht funktionieren sollten, kann auch die Verwendung von {{AUR|nvidia-beta}} helfen. Bei Verwendung von Multilib-Paketen (32-Bit) müssen die entsprechenden {{ic|lib32-…}}-Pakete (z.B {{ic|lib32-nvidia-utils}}) installiert werden.
[[Bild:nVidia-display-driver_01.png|thumb|320px|nVidia X Server Settings]]


===Installation===
* Für Grafikkarten der '''Kepler-Serie (NVE0)''' (dazu gehören diese GPUs: '''GeForce 630-920''' von ungefähr 2013 bis 2014) wir das Paket {{AUR|nvidia-470xx-dkms}} benötigt.
Der Treiber wird mittels
pacman -S nvidia
installiert.


* Für Grafikkarten der '''GeForce-Serien 400, 500, und 600''' von ungefähr 2010 bis 2011, muss {{AUR|nvidia-390xx-dkms}} installiert werden.


Für Karten GeForce FX Reihe:
* Für noch '''ältere Grafikkarten''' (von 2010 und früher), siehe [[#Nicht unterstützte Geräte|Nicht unterstützte Geräte]].
pacman -S nvidia-173xx
<!--
Für Karten der GeForce 4 bis zu einigen Karten der GeForce 2 Reihe:
pacman -S nvidia-96xx
-->
Welcher Treiber der geeignete ist, kann man auf der [http://www.nvidia.com/object/unix.html nVIDIA-Homepage] herausfinden.


Für ältere Hardware muss der Open Source Treiber nouveau verwendet werden. Siehe auch [http://download.nvidia.com/XFree86/Linux-x86/260.19.44/README/appendix-a.html README/appendix-a]
Nach der installation des Treibers sollte ein Neustart erfolgen, damit die entsprechenden Module ordnungsgemäß geladen werden können.


===Konfiguration===
== Nicht unterstützte Geräte ==
'''Eine weitere Konfiguration ist nicht nötig.''' Bei der Installation wird eine Konfigurationsdatei in ''/etc/X11/xorg.conf.d'' abgelegt.
Grafikkarten der GeForce-300-Serie oder ältere Karten von 2010 oder früher werden seitens Nvidia offiziell nicht mehr unterstützt.


Sollten dennoch Änderungen vorgenommen werden, kann dies entweder per Hand in der Konfigurationsdatei von X11 ''/etc/X11/xorg.conf'', oder über das grafische Programm ''nvidia-settings'' erledigt werden.
Hier könnte es helfen, [[Nouveau]] zu verwenden, da dieser ältere Karten noch unterstützt. Auch existieren Legacy-Treiber, die eine bessere Leistung erbringen könnten.


Die Treiberpakete enthalten ein Tool, mit dem bei Bedarf eine ''/etc/X11/xorg.conf'' angelegt bzw. automatisch angepasst werden kann.
* Für Grafikkarten der Serien '''Geforce 8 und 9, ION, und die 100-300-Serien''', kann man {{AUR|nvidia-340xx-dkms}} installieren
nvidia-xconfig
* GPUs aus der '''GeForce-7-Ära''' (ca. 2005 bis 2007), und '''noch ältere Serien''' werden von keinem der aktuell verfügbaren Treiber mehr unterstützt.


====Konfiguration mit nvidia-settings====
== Eigener Kernel ==
Mit
Sollte man einen eigenen Kernel benutzen, so kann man mittels [[:en:Dynamic Kernel Module Support|DKMS]]. das Treiberupdate automatisieren.
nvidia-settings
ist es möglich weitere Einstellungen vorzunehmen. Dabei wird die Datei ''~/.nvidia-settings-rc'' erstellt.


Um die Einstellungen zu laden, muss
Hierzu wird das Paket {{paket|nvidia-dkms}} benötigt. Das Nvidia-Modul wird nach jedem Nvidia- oder Kernel-Update automatisch mittels entsprechendem [[Pacman]]-Hook neu erstellt.
nvidia-settings --load-config-only
ausgeführt werden.


{{hinweis|In seltenen Fällen kann es sein, dass ''~/.nvidia-settings-rc'' fehlerhaft verändert wird. Falls dies eintritt, kann es sein, dass der X-Server abstürzt und die Datei deswegen gelöscht werden muss.}}
== Hardwarebeschleunigte Video-Decodierung ==
Beschleunigte Video-Decodierung mit VDPAU wird von Karten der GeForce 8 Serie und neueren Karten unterstützt. Beschleunigte Video-Decodierung mit NVDEC wird von Fermi-GPUs (400er-Serie) und neueren unterstützt. Der englische Wiki-Artikel [[:en:Hardware video acceleration|Hardware video acceleration]] stellt weitere Informationen bereit.


=== Optimus unter X ===
== Weblinks ==
Seit der Version 319.12 unterstützt der proprietäre Nvidia-Treiber auch die Optimus-Technologie unter Linux. Dazu muss sowohl der Intel-Treiber als auch der Nvidia-Treiber installiert werden.
* [https://forums.developer.nvidia.com/c/gpu-graphics/linux/148 Nvidia-Entwicklerforum rund um die Linux-Treiber] {{sprache|en}}
pacman -S intel-dri
pacman -Rdd mesa-libgl
pacman -S nvidia


Die nun als Beispiel angegebene Konfigurationsdatei ist selbsterklärend:
Section "ServerLayout"
  Identifier "layout"
  Screen 0 "nvidia"
  Inactive "intel"
EndSection
Section "Device"
  Identifier "nvidia"
  Driver "nvidia"
  BusID "PCI:01:00:0"
EndSection
Section "Screen"
  Identifier "nvidia"
  Device "nvidia"
  # Uncomment this line if your computer has no display devices connected to
  # the NVIDIA GPU.  Leave it commented if you have display devices
  # connected to the NVIDIA GPU that you would like to use.
  Option "UseDisplayDevice" "none"
EndSection
Section "Device"
  Identifier "intel"
  Driver "intel"
EndSection
Section "Screen"
  Identifier "intel"
  Device "intel"
EndSection
Folgende Zeilen sollten nun in die .xinitrc im Homeverzeichnis.
xrandr --setprovideroutputsource Intel NVIDIA-0
xrandr --auto
Für nähere Infos sei das [http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html Nvidia-Handbuch] empfohlen
== Pure Video HD ==
Es wird mindestens eine Grafikkarte mit der zweiten Generation von PureVideo HD(VP2) [http://en.wikipedia.org/wiki/Nvidia_PureVideo#Table_of_PureVideo_.28HD.29_GPUs] vorausgesetzt. Nvidia-Grafikkarten benötigen den proprietären Treiber um die Video-Decoding-Funktion per VDPAU bereitzustellen. Um die VA-API-Schnitstelle bereitzustellen benötigt man {{paket|libva-vdpau-driver}}
Zuerst muss die VA-API-Kompatibilität geprüft werden.
vainfo
Um die Hardware decoding funktion der Grafikkarte zu benutzen benötigt man einen mediaplayer mit VDPAU oder VA-API-Unterstüzung.
Um Hardwarebeschleunigung im [[MPlayer]] zu aktivieren muss die Konfigurationsdatei Ergänzt werden
{{hc|1=~/.mplayer/config|2=
vo=vdpau
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau}}
Um Hardwarebeschleunigung in [[VLC]] zu nutzen aktiviert man unter „Extras → Einstellungen → Input & Codecs“ die Option „Nutze die GPU-beschleunigte Dekodierung“.
Um Hardwarebeschleunigung in [[smplayer]] zu nutzen, stellt man unter „Optionen → Einstellungen → Allgemein → Video“, den Ausgabetreiber auf {{ic|vdpau}}.
Um Hardwarebeschleunigung im [[gnome-mplayer]] stellt man unter „Bearbeiten → Einstellungen“ die Videoausgabe auf {{ic|vdpau}} um.
== Tips und Tricks ==
Wer häufiger zwischen beiden Treibern wechselt kann ein einfaches Skript benutzen.
Es ist teilweise dem englischen Wiki entnommen.
#!/bin/bash
# nouveau to/from nvidia                                                             
set -e
# check if root
if [ $EUID -ne 0 ]; then
    echo "You must be root to run this script. Aborting...";
    exit 1;
fi
# nouveau to nvidia
nvidia(){
    sed -i 's/MODULES="nouveau"/#MODULES="nouveau"/' /etc/mkinitcpio.conf
    pacman -Rdds --noconfirm nouveau-dri xf86-video-nouveau mesa-libgl lib32-nouveau-dri lib32-mesa-libgl
    pacman -S --noconfirm nvidia lib32-nvidia-libgl nvidia-libgl nvidia-utils
    mkinitcpio -p linux
    mkinitcpio -p linux-ck
}
# nvidia to nouveau
nouveau() {
    sed -i 's/#*MODULES="nouveau"/MODULES="nouveau"/' /etc/mkinitcpio.conf
    pacman -Rdds --noconfirm nvidia lib32-nvidia-libgl nvidia-libgl nvidia-utils
    pacman -S --noconfirm nouveau-dri xf86-video-nouveau lib32-nouveau-dri mesa-libgl lib32-mesa-libgl
    mkinitcpio -p linux
    mkinitcpio -p linux-ck
}
# help message
help() {
    echo -e "USAGE: \t -h\t:print this info"
    echo -e "\t -no\t:nvidia to nouveau"
    echo -e "\t -ni\t:nouveau to nvidia"
}
if [ $1 == '-h' ]; then
    help
    exit 0;
fi
# check direction
if [ $1 == '-ni' ]; then
    nvidia
    exit 0;
fi
if [ $1 == '-no' ]; then
    nouveau
    exit 0;
else
    help
    exit 1;
fi
## editor:emacs indent:4
Danach wird noch ein Neustart benötigt um den Wechsel zu vervollständigen.
Das Skript muss natürlich an die eigenen Bedürfnisse angepasst werden.
==Siehe auch==
* [[KMS|Kernel Mode Setting]]
* [[XRandR]]
* [[X]]
==Weblinks==
* [http://nouveau.freedesktop.org/wiki/ Offizielle Seite von ''nouveau''] {{sprache|en}}
[[Kategorie: Hardware]]
[[Kategorie: Grafikkarten]]
[[en:NVIDIA]]
[[en:NVIDIA]]

Aktuelle Version vom 4. Dezember 2025, 20:24 Uhr

Hinweis: Dieser Artikel behandelt den proprietären Nvidia-Treiber. Für den Open-Source-Treiber siehe Nouveau, für Laptops mit kombiniertem Intel/Nvidia-Chipsatz siehe NVIDIA Optimus.

Nvidia X Server Settings zeigt unter X die X-Server-Informationen an.

Für Nvidia-Grafikkarten wird ein proprietärer Teiber bereitgestellt, mit dem es möglich ist, auch unter Linux die volle Leistungsfähigkeit und den kompletten Funktionssatz von Nvidia-Grafikkarten zu verwenden.

Installation

Je nachdem, wie das System konfiguriert ist, und welche Hardware verbaut ist, werden unterschiedliche Treiberpakete benötigt.

Sofern man sich unsicher ist, welche Grafikkarte genau verbaut ist, kann dies relativ einfach herausfinden. Im Beispiel ist eine GTX 1080 verbaut.

lspci -k | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)

Anhand der Ausgabe kann man nun das passende Treiberpaket auswählen:

  • Für GPUs der Maxwell-Serie (NV110), sowie neuere Grafikkarten wie GeForce 930~, 10-20, Quadro/Tesla/Tegra wird das Paket nvidia benötigt. Bei Verwendung der LTS-Kernels entsprechend nvidia-lts. Falls diese Pakete nicht funktionieren sollten, kann auch die Verwendung von nvidia-betaAUR helfen. Bei Verwendung von Multilib-Paketen (32-Bit) müssen die entsprechenden lib32-…-Pakete (z.B lib32-nvidia-utils) installiert werden.
  • Für Grafikkarten der Kepler-Serie (NVE0) (dazu gehören diese GPUs: GeForce 630-920 von ungefähr 2013 bis 2014) wir das Paket nvidia-470xx-dkmsAUR benötigt.
  • Für Grafikkarten der GeForce-Serien 400, 500, und 600 von ungefähr 2010 bis 2011, muss nvidia-390xx-dkmsAUR installiert werden.

Nach der installation des Treibers sollte ein Neustart erfolgen, damit die entsprechenden Module ordnungsgemäß geladen werden können.

Nicht unterstützte Geräte

Grafikkarten der GeForce-300-Serie oder ältere Karten von 2010 oder früher werden seitens Nvidia offiziell nicht mehr unterstützt.

Hier könnte es helfen, Nouveau zu verwenden, da dieser ältere Karten noch unterstützt. Auch existieren Legacy-Treiber, die eine bessere Leistung erbringen könnten.

  • Für Grafikkarten der Serien Geforce 8 und 9, ION, und die 100-300-Serien, kann man nvidia-340xx-dkmsAUR installieren
  • GPUs aus der GeForce-7-Ära (ca. 2005 bis 2007), und noch ältere Serien werden von keinem der aktuell verfügbaren Treiber mehr unterstützt.

Eigener Kernel

Sollte man einen eigenen Kernel benutzen, so kann man mittels DKMS. das Treiberupdate automatisieren.

Hierzu wird das Paket nvidia-dkms benötigt. Das Nvidia-Modul wird nach jedem Nvidia- oder Kernel-Update automatisch mittels entsprechendem Pacman-Hook neu erstellt.

Hardwarebeschleunigte Video-Decodierung

Beschleunigte Video-Decodierung mit VDPAU wird von Karten der GeForce 8 Serie und neueren Karten unterstützt. Beschleunigte Video-Decodierung mit NVDEC wird von Fermi-GPUs (400er-Serie) und neueren unterstützt. Der englische Wiki-Artikel Hardware video acceleration stellt weitere Informationen bereit.