Nvidia: Unterschied zwischen den Versionen
Boenki (Diskussion | Beiträge) |
Skript zum einfachen austausch des Treibers hinzugefügt. |
||
| Zeile 164: | Zeile 164: | ||
Um Hardwarebeschleunigung im [[gnome-mplayer]] stellt man unter „Bearbeiten → Einstellungen“ die Videoausgabe auf {{ic|vdpau}} um. | 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 Wechseln zu vervollständigen. | |||
Das Skript muss natürlich an die eigenen Bedürfnisse angepasst werden. | |||
==Siehe auch== | ==Siehe auch== | ||
* [[KMS|Kernel Mode Setting]] | * [[KMS|Kernel Mode Setting]] | ||
* [[XRandR]] | * [[XRandR]] | ||
Version vom 27. Oktober 2013, 17:33 Uhr
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.
Opensource Treiber nouveau
Installation
pacman -S xf86-video-nouveau nouveau-dri
Der Treiber unterstützt KMS daher kann man den Treiber schon im kernel initramfs einbauen lassen.
Das geht mit Eintrag in der /etc/mkinitcpio.conf
MODULES="... nouveau ..."
anschließend mit
mkinitcpio -g /boot/initramfs-linux.img
den Treiber einbauen.
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
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. 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
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

Installation
Der Treiber wird mittels
pacman -S nvidia
installiert.
Für Karten GeForce FX Reihe:
pacman -S nvidia-173xx
Welcher Treiber der geeignete ist, kann man auf der nVIDIA-Homepage herausfinden.
Für ältere Hardware muss der Open Source Treiber nouveau verwendet werden. Siehe auch README/appendix-a
Konfiguration
Eine weitere Konfiguration ist nicht nötig. Bei der Installation wird eine Konfigurationsdatei in /etc/X11/xorg.conf.d abgelegt.
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.
Die Treiberpakete enthalten ein Tool, mit dem bei Bedarf eine /etc/X11/xorg.conf angelegt bzw. automatisch angepasst werden kann.
nvidia-xconfig
Konfiguration mit nvidia-settings
Mit
nvidia-settings
ist es möglich weitere Einstellungen vorzunehmen. Dabei wird die Datei ~/.nvidia-settings-rc erstellt.
Um die Einstellungen zu laden, muss
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.
Optimus unter X
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.
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 Nvidia-Handbuch empfohlen
Pure Video HD
Es wird mindestens eine Grafikkarte mit der zweiten Generation von PureVideo HD(VP2) [1] 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 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
~/.mplayer/config
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 vdpau.
Um Hardwarebeschleunigung im gnome-mplayer stellt man unter „Bearbeiten → Einstellungen“ die Videoausgabe auf 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 Wechseln zu vervollständigen.
Das Skript muss natürlich an die eigenen Bedürfnisse angepasst werden.