Dienstag, 15. November 2022

Nvidia, Optimus und Linux

Bald ist es lange her als Nvidia noch der 'good guy' in der Linuxszene war und im Alleingang vernünftige Treiber für ihre Hardware all den Pinguinreiter*chen bereitstellte. Das sich das mittlerweile geändert hat und AMD durch ihre opensource Strategie deutlich besser unter Linux abschneidet, ist kein Geheimnis. Zwar werden nach wie vor Nvidia Treiber bereitgestellt, aber der Funktionsumfang und vor allem Komfortfunktionen bleiben nahezu aus. 

 

Auf diesen Umstand bin ich nun hart reingefallen, denn mein neuer Laptop kam mit einer Nvidia Optimus Karte. Das ist eine super spezielle Spezialkarte für Laptops die sich das berechnen hübscher Bilder mit dem onboard Chip irgendwie teilt um besonders Energieeffizient zu sein oder so.
Was mit den Treibern von Windows ganz toll funktioniert, ist unter Linuxoiden Systemen ein abenteuerliches Unterfangen und es hat mich viel Lebenszeit gekostet um überhaupt zu verstehen was eigentlich los war. Und falls jemand von euch, ebenfalls aus versehen eine Optimus Karte mit Linux betreiben will, hier seid ihr richtig. 

Im wesentlichen gibt es genau drei vier Wege um Optimus mit Linux zu befrieden. 

 

1. Optimus abschalten

Der erste führt durch das Bios und deaktiviert dort die Optimusfunktion. Das _kann_ klappen, kann aber auch dafür sorgen dass der Laptopinterne Monitor einfach aus bleibt, obwohl das System dahinter normal arbeitet. Ist halt kacke wenn man nichts sehen kann. Hängt wohl damit zusammen dass der interne Grafikanschluss direkt an den Intelchip gelötet ist, und der HDMI Ausgang am Laptop irgendwie nicht... oder andersrum oder so ähnlich. Jedenfalls muss das Bild so oder so durch die interne Hardware getunnelt werden damit am Ende ein Bild dabei raus kommt. 

 

2. Primerun / Bumblebee

Hier muss man neben dem offiziellen Nvidia Treiber noch Bumblebee installieren und dann, jedesmal wenn man ein Programm startet was die Nvidia GPU verwenden soll, ein 'primerun' voran schicken.

$ primerun steam

Erst so verwendet Steam den NVIDIA Chip. Das läuft ganz okay, kann etwas nerven und in meinem Fall war es so, dass der Intelchip, oooder der Treiber dafür, deart unperformant war, dass selbst der Mauszeiger auf dem Schirm eine deart mieserable Framerate an den Tag legte dass er schlichtweg verloren ging.

3. Nvidia GPU für immer

Dritter Weg, mein Favorit, dem X Server mitteilen dass für alles, immer, ab Systemstart die Nvidia GPU verwendet werden soll und sonst nix. Opensuse bietet hier prime-select an. Damit kann man ganz bequem zwischen Intel- und Nvidia-GPU hin und her schalten und auch gleich festlegen welche GPU beim Systemstart standartmäßig verwendet werden soll. 

Will man hier Nvidia verwenden und Intel ignorieren einfach und einmalig:

# prime-select boot NVIDIA

Bei anderen Distributionen muss man das von Hand machen, das ist ein wenig umständlicher aber zu schaffen. Unter Void sieht das beispielsweise so aus:

Zuerst den nvidia Treiber installieren:

# xbps-install nvidia

Dann die Nvidia outputclass.conf kopieren, evtl muss man vorher noch den Order xorg.conf.d anlegen - deswegen ist es hier mit drin:

# mkdir /etc/X11/xorg.conf.d

# cp /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf /etc/X11/xorg.conf.d/nvidia.conf

Dann die kopierte Datei mit root Rechten öffnen und bei OutputClass section folgende Zeile einfügen:

Option "PrimaryGPU" "yes

Das sieht dann am Ende ungefähr so aus: https://pastebin.com/Ux8U3w9d

Speichern, neu starten und fertig ist die Laube. Bei anderen Distributionen könnte die "10-nvidia-drm..."-Datei etwas anders heißen, das Prozedere ist aber das gleiche. 

 

4. Drauf geschissen

Es gibt noch eine vierte Möglichkeit um optimus einigermaßen richtig zu verwenden. Und das ist der Einsatz vom Nouveau-opensource Treiber. Dann ist halt nix mit zocken, aber dafür kann man dann auch mit Wayland arbeiten.

 

Ausblick

Nvidia arbeitet denkt jüngsten Berichten zufolge an eine verbesserte Optimus Unterstützung für Linux, ob und wann das was wird bleibt allerdings offen. Sollte ich für meinen Teil nochmal an neue Hardwareanschaffungen denken wird es definitiv AMD werden.

https://www.golem.de/news/optimus-nvidia-moechte-linux-hybridgrafik-verbessern-2211-169651.html


Nun denn ich hoffe dem einen oder andern hilfts. 

Wisster bescheid.


Keine Kommentare: