ubuntuusers.de

ubuntuusers.deWikiHybrid-GrafikkartenPRIME

PRIME

Achtung!

Für Ubuntu 12.04.0 muss zuerst ein LTS Enablement Stack installiert werden. Ubuntu 12.04.4 bringt weitere kleine Annehmlichkeiten mit, wenn man den proprietären Nvidia-Treiber nutzen möchte.

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

Dave Airlies "PRIME" bezeichnet die in RandR 1.4, Kernel und X-Stack eingeflossenen Erweiterungen, die es auf Systemen mit mehreren GPUs erlauben auszuwählen, welche GPU die Grafik berechnet und welche GPU die Grafik darstellt. Hierbei schreibt bei Bedarf (grafikintensive Anwendungen auf der leistungsstärkeren GPU) die berechnende GPU in den Bildspeicher der darstellenden GPU. Somit lässt sich bei Notebooks mit Hybridgrafikkarten auch eine GPU nutzen, die nicht direkt mit einem Bildschirm "verdrahtet" ist. Auf Desktopsystemen mit einer in die CPU integrierten GPU und einer zusätzlichen Grafikkarte lassen sich beide GPUs und deren Treiber parallel an einem XServer nutzen.

Aufgrund lizenzrechtlicher Probleme mit der Kernelschnittstelle ließ sich PRIME anfänglich nur mit den freien Grafiktreibern (nouveau, radeon, Intel) nutzen, bis Nvidia eine eigene Schnittstelle in den Kernel implementierte: nvidia-prime. Diese wird genutzt, um ein Zusammenspiel des proprietären Nvidia-Treibers mit dem Intel-Treiber zu ermöglichen.

PRIME unter Verwendung der freien Grafiktreiber

Anwendungen auf der Nvidia-/AMD-GPU können durch das Prefix DRI_PRIME=1 gestartet werden. So lautet z.B. der Befehl [1] für das Spiel OpenArena:

DRI_PRIME=1 openarena 

Als weiteres Beispiel glxinfo:

DRI_PRIME=1 glxinfo | grep OpenGL 

was den freien Treiber zeigen sollte. Beispielausgabe (hier nouveau auf der Nvidia-GPU NVC1):

OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on NVC1
OpenGL version string: 3.0 Mesa 9.0
OpenGL shading language version string: 1.30

Zum Vergleich den Intel-Treiber auf der integrierten GPU (hier Ironlake M):

glxinfo | grep OpenGL 
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
OpenGL version string: 2.1 Mesa 9.0
OpenGL shading language version string: 1.20

Voraussetzungen

  • Bumblebee mit proprietärem Nvidia-Treiber darf nicht installiert sein.

  • Sollte eine 3D-Anwendung mit nouveau oder radeon als Provider nur ein schwarzes oder gestörtes Fenster anzeigen, kann es helfen, das Fenster zu vergrößern oder zu verkleinern oder die Anwendung zuerst auf der Intel GPU zu starten, um eine andere Auflösung oder Vollbild zu wählen und diese zu speichern.

PRIME und der proprietäre Nvidia-Treiber – nvidia-prime

./nvidia-prime-profiles-1.jpg

Zur Zeit ist es nicht wie mit den freien Treibern möglich, den Desktop von der stromsparenden integrierten GPU berechnen zu lassen und nur bei Bedarf anwendungsgesteuert die leistungsstärkere dedizierten GPU zu starten. Allerdings kann man den gesamten Desktop von der dedizierten GPU berechnen lassen, die dann die integrierte zur Darstellung nutzt. Hierbei hat man die bestmögliche Grafikleistung, allerdings sinkt die Akkulaufzeit dementsprechend. Als Einschränkung ist ein Tearing zu erwähnen, was z.B. beim Scrollen, Verschieben von Fenstern und schnellen Ego-Shootern auffallen kann.

Ab Ubuntu 12.04.4 ist sowohl die Nutzung von LightDM als auch von KDM oder GDM möglich. Voreingestellt ist bei Ubuntu (Unity) lediglich LightDM. Architekturbedingt muss beim Einsatz von KDM/GDM im Anmeldebildschirm der Neustart vom X-Server getätigt werden, damit die Umschaltfunktion greift.

Installation

Hinweis:

Das Paket nvidia-prime wird auf Nvidia_Optimus Laptops ab Ubuntu 12.04.3 automatisch installiert, wenn man im restricted-driver-manager einen Nvidia-Treiber auswählt und installiert.

Unter Ubuntu 13.10 funktioniert dies z.Z. nicht automatisch. Die Installationskandidaten sind [1]

  • nvidia-prime

  • nvidia-319-updates

  • mesa-utils

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install nvidia-prime  nvidia-319-updates mesa-utils 

sudo aptitude install nvidia-prime  nvidia-319-updates mesa-utils 

Kubuntu 12.04.3

nvidia-prime installiert als Abhängigkeit LightDM, welcher manuell anstelle von KDM ausgewählt werden muss mittels:

sudo dpkg-reconfigure lightdm 

Außerdem muss noch das folgende Paket installiert werden:

sudo apt-get install lightdm-kde-greeter 

und die Datei /etc/lightdm/lightdm.conf mit einem Editor [3] und Root-Rechten [4] wie folgt angepasst werden:

[SeatDefaults]
greeter-session=lightdm-kde-greeter
user-session=kde-plasma
display-setup-script=/sbin/hybrid-power

Neustart

Nach eine Systemneustart greift die Änderung. Der gesamte Desktop wird dann von der Nvidia-GPU gerendert, was der Befehl

glxinfo | grep renderer 

zeigt.

Umschalten zwischen den Grafikchips

Hinweis:

Der früher erforderliche Einsatz von bbswitch {en}, um zwischen der integrierten Grafiklösung von Intel und dem dedizierten Nvidia-Chip umzuschalten, ist ab Ubuntu 12.04.4 bzw. Kernel 3.11 nicht mehr erforderlich. Besitzt man eine ältere Version von 12.04, kann diese Funktion durch Installieren des HWE-Stacks 12.04.4 nachgerüstet werden.

Allerdings sollte man beachten, dass die Installation eines HWE-Stacks einen tiefen Eingriff in das System bedeutet, bei dem der Kernel und andere zentrale Komponenten ausgetauscht werden. Unter Umständen kann eine frische Installation von Ubuntu 14.04 der einfachere Weg sein.

Das Paket nvidia-prime bringt einen Umschaltbefehl mit, der auch über einen Eintrag in Nvidia-Settings zu finden ist (siehe Abbildung oben) oder im Terminal Verwendung finden kann. Nach dem Wechsel ist es erforderlich, sich neu anzumelden. Der einfachste Befehl ist:

prime-select query 

Dieser gibt aus, welche Grafiklösung zur Zeit aktiv ist. Das Umschalten funktioniert ähnlich:

sudo prime-select intel 

beziehungsweise

sudo prime-select nvidia 

Damit lässt sich das Umschalten inklusive Abmelden in ein Script verpacken, welches einfach vom Desktop per Doppelklick ausgeführt werden kann. Zuerst ist etwas Vorarbeit nötig. Um kein Passwort eingeben zu müssen, legt man eine Konfigurationsdatei /etc/sudoers.d/50-prime-select mit folgendem Inhalt an:

%sudo ALL= NOPASSWD: /usr/bin/prime-select

Damit können Benutzer in der Gruppe sudo zwischen den Grafikchips wechseln, ohne ein Passwort eingeben zu müssen. Es ist natürlich möglich, auch eine andere Gruppe dafür zu erstellen, zum Beispiel um Kindern diese Möglichkeit zu bieten, ohne gleich komplette Administratorrechte zu verteilen. Mehr Hintergrundinformationen gibt es im Artikel zu sudo.

Nun kann man sich 2 simple Skripte anlegen, beispielsweise /usr/bin/enable-intel:

#!/bin/bash

sudo prime-select intel

#Logout Ubuntu/Unity, Gnome Shell & Gnome Classic:
#DISPLAY=:0.0 gnome-session-quit

#Logout Xubuntu/XFCE:
#DISPLAY=:0.0 xfce4-session-logout

#Logout Kubuntu/KDE:
#DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 0 0

#Logout Lubuntu/LXDE:
#DISPLAY=:0.0 lxsession-logout

#Logout Mate:
#DISPLAY=:0.0 mate-session-save --logout-dialog

und /usr/bin/enable-nvidia:

#!/bin/bash

sudo prime-select nvidia

#Logout Ubuntu/Unity, Gnome Shell & Gnome Classic:
#DISPLAY=:0.0 gnome-session-quit

#Logout Xubuntu/XFCE:
#DISPLAY=:0.0 xfce4-session-logout

#Logout Kubuntu/KDE:
#DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 0 0

#Logout Lubuntu/LXDE:
#DISPLAY=:0.0 lxsession-logout

#Logout Mate:
#DISPLAY=:0.0 mate-session-save --logout-dialog

Je nach Desktop-Oberfläche muss bei der jeweiligen Zeile die Raute entfernt werden, damit diese nicht mehr als Kommentar angesehen und ignoriert wird. Für KDE müssen außerdem die Pakete qt5-default und qdbus-qt5 installiert werden, die erst ab Ubuntu 13.04/13.10 zur Verfügung stehen. Außerdem müssen die Scripts noch ausführbar gemacht werden:

sudo chmod +x /usr/bin/enable-intel
sudo chmod +x /usr/bin/enable-nvidia 

Danach kann man auf dem Desktop Verknüpfungen anlegen. Mehr Details finden sich im Artikel [.desktop-Dateien:].

Diese Revision wurde am 18. Juli 2014 18:52 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Übersicht, Energieverwaltung, Hardware, Grafikkarten, System