Nvidia
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
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 Wechsel zu vervollständigen.
Das Skript muss natürlich an die eigenen Bedürfnisse angepasst werden.