[Erfahrungsbericht] Virtualisierung mit PCI-Passthrough auf Manjaro Linux

SV3N

Redakteur
Teammitglied
Dabei seit
Juni 2007
Beiträge
15.586
Notiz zum Leserartikel ist online.

@Ichthys dazu kann ich im Augenblick noch wenig sagen, da sehr viel zu tun ist.

Liebe Grüße
Sven
 

Ichthys

Lt. Commander
Dabei seit
März 2008
Beiträge
1.098
@SV3N Wann ist denn mal wenig zu tun? ;)
Aber gut, das driftet ab. Danke für den Leseratikel!
 

Beelzebot

Cadet 4th Year
Dabei seit
Aug. 2017
Beiträge
113
Eine Windows VW mit GPU-Passthrough stand auch mal auf meiner To-Do Liste. Allerdings habe ich mit Proton und Lutris noch nicht ein Spiel in meiner Bib finden können was nicht läuft. Insofern ist das in der Priorität weit nach hinten gerückt, denn ich brauche Windows einfach nicht mehr.
Dennoch, Hut ab für den Artikel und eventuell gibt mir das neue Impsule mich auch nochmal damit auseinanderzusetzen.
 

lokon

Lt. Commander
Dabei seit
Aug. 2013
Beiträge
1.224
Schöne Zusammenstellung @Arjab

Ich fände noch interessant wie die Aufteilung der IOMMU Gruppen bei dir (bzw. dem verwendetem Mainboard) ist und welche BIOS Version du verwendest.
Beides ist bei vielen Beiträgen oder Tests oft nicht vorhanden
siehe script im ARCH Wiki

Manchmal können diese IOMMU Gruppen wohl durch das BIOS verändert werden und außerdem spielen die IOMMU Gruppen eine Rolle ob der ACS override patch eingesetz werden soll, der potentiell zu Problemen führt (neben der Aktivierung von IOMMU allgemein).

Dazu muss man die XML-Datei (am einfachsten mit nano) editieren
Eigentlich sollte doch jeder Teil der XML in virt-manager in dem XML Tab auch direkt editiert werden können (wenn die VM ausgeschaltet ist) - Anzeigen der Details der VM -> XML Tab jeweils pro Sektion (USB, CPU, Speicher ...) verfügbar. Du nutzt an anderer Stelle schon die grafische Oberfläche und nicht die Kommandozeile (oder qemu direkt)
 

Byce

Cadet 2nd Year
Dabei seit
Apr. 2012
Beiträge
29
Bei so vielen Problemen wäre mir schon etwas die Geduld ausgegangen. Ist Dualboot keine Möglichkeit für dich? Ich selbst nutze als Virtualisierungslösung Proxmox auf meinem Odroid H2 und reiche Sound und GPU an eine VM mit Solus OS durch. Dies ging problemloser einzustellen. Eine VM mit W10 und GPU Passthrough und HDMI output funktionierte da selbst auch nicht und endete nur in ein schwarzen Bildschirm.
 

donativo

Lieutenant
Dabei seit
März 2008
Beiträge
768
Schöner Artikel, aber wenn man es einfacher haben will und mit einer recht einfachen GUI dann kann man dafür einfach Unraid nehmen. Kostet auch nicht die Welt. Glaube 60 USD oder so.
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Wow, danke für's melden, @konkretor und @Ichthys und danke dir, @SV3N für die Notiz!
Das spricht dafür, dass es wohl nie richtig behoben wird.
Das kann gut sein.. Der Entwickler vom Kernel Patch hat zwar an AMD appelliert und wurde auch gehört, aber AMD scheint das Problem doch relativ egal zu sein. Und ich kann unter Windows die Grafikkarte tatsächlich über den Tray auswerfen, aber dann stürzt auch alles ab. Und ich wüsste nicht, dass AMD sich dazu geäußert hat.l
Könntest Du Dir vorstellen, diesem RX 5700-Problem nachzugehen?
Ich könnte auch nochmal ausführlicher recherchieren und etwas dazu schreiben, wenn die Redaktion gerade sehr viel zu tun hat. Was interessiert dich denn besonders?
Allerdings habe ich mit Proton und Lutris noch nicht ein Spiel in meiner Bib finden können was nicht läuft.
Mir ging es auch vor allem um GTA Online, aber auch das kann man wohl unter Linux spielen. Und mehr als das hatte und hab' ich Spaß am Basteln, Recherchieren und neue Dinge ausprobieren/lernen. :)
Schöne Zusammenstellung @Arjab
Ich fände noch interessant wie die Aufteilung der IOMMU Gruppen bei dir (bzw. dem verwendetem Mainboard) ist und welche BIOS Version du verwendest.
Danke, die IOMMU-Gruppen und meine BIOS-Version kann ich gerne gleich noch ergänzen.
Eigentlich sollte doch jeder Teil der XML in virt-manager in dem XML Tab auch direkt editiert werden können (wenn die VM ausgeschaltet ist) - Anzeigen der Details der VM -> XML Tab jeweils pro Sektion (USB, CPU, Speicher ...) verfügbar.
Dem ist tatsächlich nicht so. Ich glaube der virt-manager kann nicht für alle möglichen XML-Variablen entsprechende GUI-Objekte zur Verfügung stellen. Die im Bericht editierten Zeilen tauchen im XML-Tab des Übersicht-Reiters im virt-manager auf, sind also nicht mal einem spezifischem Gerät zugeordnet. Deshalb der Wechsel zwischen GUI und XML.
Bei so vielen Problemen wäre mir schon etwas die Geduld ausgegangen. Ist Dualboot keine Möglichkeit für dich?
Das ist ja der Spaß an der Sache, andere machen Kreuzworträtsel, ich kompiliere Kernel. ;) Und Dual Boot kommt nicht in Frage, weil ich - wie ich auch im Bericht erwähnt habe - keine Windows-Installation direkt auf meiner Hardware haben möchte, sondern nur noch in der geschützten Umgebung einer virtuellen Maschine.
Schöner Artikel, aber wenn man es einfacher haben will und mit einer recht einfachen GUI dann kann man dafür einfach Unraid nehmen.
Danke schön, aber einfach wäre ja langweilig! :)
Ergänzung ()

30. Mai 2020: Update #10 - Danke für die Blumen
 
Zuletzt bearbeitet:

Big Ed

Lieutenant
Dabei seit
Apr. 2008
Beiträge
689
Hi Glückwunsch zur Gaming VM, kenne die "Fummelei" nur zu gut das Ergebnis ist aber sehr Gut.
Ich persönlich nutze das Windows als "Konsole -> Gaming Machine" alles andere verlagere ich immer mehr aufs Linux. Da nun meine Hardware etwas betagter ist und ich auch bei Spielen mittlerweile die CPU auch schon über 80% auslaste habe ich mich für einen Dualismus entschieden. Rein Hardware-instensive Spiel fahre ich die Native Installation hoch ansonsten boote ich mein Linux und starte dann bei Bedarf die Gaming-VM.

Am wichtigsten ist aber der Spaßfaktor hinter dem ganzen-> und wenn es dann rockt umso besser.
Schöner Post
Ride On
 

Ichthys

Lt. Commander
Dabei seit
März 2008
Beiträge
1.098
Ich könnte auch nochmal ausführlicher recherchieren und etwas dazu schreiben, wenn die Redaktion gerade sehr viel zu tun hat. Was interessiert dich denn besonders?
Nun, das hängt von Deiner Zeit ab, aber vielen Dank fürs Angebot! Mich würde beispielsweise interessieren, ob bei einer nicht virtualisierten Windows-Installation auch ein Absturz zu erzwingen ist. Du meintest ja, dass man die Grafikkarte "auswerfen" kann. Kann man das nur virtualisiert oder geht es auch bei einer direkten Installation?
Die Technik GPU-Passthrough finde ich sehr interessant. Mir ist dadurch bewusst geworden, dass der Grafikkarte via Treiber während des Herunterfahrens mitgeteilt wird, dass sie sich abschalten soll. Ich nehme mal an, dass AMD es nicht für nötig hält, ein anschließendes Aktivieren via Treiber zu realisieren, man will ja mit der professionellen Lösung Geld verdienen. Allerdings sprichtst Du immer von einem RX 5700-Problem. Heißt dass, das eine andere AMD-Karte das Problem nicht zeigt?
Im Prinzip könnte man da mal einen richtig technischen (und auch anpsruchsvollen) Artikel schreiben, wie man ihn bei CB eher selten sieht. :-)
 

ChrisM

Commander
Dabei seit
Feb. 2006
Beiträge
2.204
Sehr spannendes Thema, das war auch mal meine Idee. Leider kenne ich mich bisher zu wenig in Linux aus, um alle Probleme (oder auch das eigene kompilieren von Programmen/Kernels) selber lösen zu können.

Dazu warte ich auf eine möglichst stromsparende zweite GPU. Gerade eine Frage zur GPU: Geht das Durchreichen an die VM mit allen Kombinationen aus Intel, AMD und Nvidia? Bei mir wäre es derzeit Ryzen CPU und Nvidia Grafikkarte. Ich meine gelesen zu haben, dass Nvidia das aktiv im Treiber blockiert.
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Am wichtigsten ist aber der Spaßfaktor hinter dem ganzen-> und wenn es dann rockt umso besser.
Schöner Post
Da geb' ich dir recht, danke dir! :)
Mich würde beispielsweise interessieren, ob bei einer nicht virtualisierten Windows-Installation auch ein Absturz zu erzwingen ist.
Also technisch ist es bestimmt möglich eine Grafikkarte unter Windows 10 "auszuwerfen". Die Frage wäre nur, ob und wie das im laufenden System zu handhaben ist. Aber ich denke, da wird das System ebenfalls abstürzen.
Heißt dass, das eine andere AMD-Karte das Problem nicht zeigt?
Doch, soweit ich es gerade nachvollziehen konnte, haben Grafikkarten bis zurück zum Codenamen Polaris den Reset Bug. Also nicht bloß die aktuelle Generation RX 5000, sondern auch Radeon VII, RX Vega und wahrscheinlich auch RX 500.
Geht das Durchreichen an die VM mit allen Kombinationen aus Intel, AMD und Nvidia?
Ja, das ist vollkommen egal, du kannst ja schließlich auch jede Grafikkarte zusammen mit jedem Prozessor verwenden, das ist bei PCI-Passthrough nicht anders. Die Fallstricke liegen dann woanders, also bei IOMMU-Gruppen bzw. IDs oder eben so spaßigen Geschichten, wie dem Reset Bug.
 

ChrisM

Commander
Dabei seit
Feb. 2006
Beiträge
2.204
Na gut, bei mir wäre es aktuell eine 1080ti, die ich da gerne in der VM hätte. Leider hat mein 3700X keine interne GPU verbaut, so dass ich hier leider noch auf eine ganz billige GT230 o.ä. angewiesen wäre, was mir bei geplanter Wasserkühlung eigentlich so gar nicht passt. :)
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Ich würde da eher zu sowas wie einer passiven GT 710 greifen, dann hast du auch vernünftige Ausgänge. Ansonsten kann man mit etwas Bastelei auch eine Grafikkarte für Host-System und virtuelle Maschine verwenden.

EDIT: Bzw. die Anleitung klingt vielversprechend, weil man die dedizierte Grafikkarte unter dem Host-System nutzen kann und wahlweise die VM starten kann, die dann die Grafikkarte für sich beansprucht und auf die zweite Grafikkarte zurückgreift.

EDIT #2:
Ich meine gelesen zu haben, dass Nvidia das aktiv im Treiber blockiert.
Das hab' ich völlig überlesen. Da hast du recht, aber das lässt sich sehr leicht umgehen.
 
Zuletzt bearbeitet:

rolandm1

Commander
Dabei seit
Mai 2007
Beiträge
2.453
Sehr schöner Artikel Beitrag.

Da ich mich 8mmer wieder mit VM beschäftige, wurde der Spieltrieb erneut geweckt.

War das Zufall, dass du Manjaro verwendest.
Ich werde das mal bei mit mit Kubuntu 20 anpacken. Brauche nur noch eine 2te GRAKA.
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Sehr schöner Artikel Beitrag.

War das Zufall, dass du Manjaro verwendest.
Ich werde das mal bei mit mit Kubuntu 20 anpacken. Brauche nur noch eine 2te GRAKA.
Danke! Dass ich Manjaro Linux verwendet habe war einerseits insofern Zufall, als dass mir das ein Freund vor wenigen Jahren empfohlen hat, als ich noch nicht so tief in der Materie steckte und Linux Mint verwendet hab. Andererseits hab' ich die Entscheidung dann später und mit mehr Hintergrundwissen über Linux Distributionen immer noch als gut und richtig empfunden. Da Manjaro auf Arch Linux basiert, genießt man die Vorteile eines Rolling Release, eine wunderbare, mehrsprachige Wiki und eine große Community. Ich nutze auf meinem Laptop auch Arch Linux, aber angesichts des großen Vorhabens des PCI-Passthroughs wollte ich mir nicht noch zusätzlich die Installation von Arch Linux "antun". Da war mir eine simple grafische Installation einfach komfortabler. Ubuntu hab' ich glaube ich nie benutzt, aber jedes mal, wenn ich Freund:innen bei ihren Ubuntu-Systemen geholfen habe, fand' ich das ständige hinzufügen von irgendwelchen PPAs wahnsinnig nervig und bin im Vergleich dazu mehr als froh über pacman und das AUR.
 

rolandm1

Commander
Dabei seit
Mai 2007
Beiträge
2.453
@Arjab

danke für die Rückmeldung.

Ich bin mittlerweile bei Kubuntu (KDE) hängen geblieben. Das Paket passt mir am besten.
Wobei Manjaro KDE quasi nur einen anderen Unterbau hat. Das werde ich mir auch nochmal anschauen.

Da ja aber das Thema VM mit KVM/qemu keine Distri spezifische Angelegenheit ist, bleibt man ja flexibel.
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Wobei Manjaro KDE quasi nur einen anderen Unterbau hat.
"Nur" ist gut, der "Unterbau" ist entscheidender, als man vielleicht annimmt. Alles, was quasi "zwischen" Linux Kernel und Desktop-Umgebung ist, also die komplette Sofware, macht teilweise die großen Unterschiede zwischen den Distributionen aus. Aber das geht wieder zu tief in die jeweilige Philosophie der Distributionen und unterschiedliche Lizensierungen.
 

peterge

Newbie
Dabei seit
Juni 2020
Beiträge
1

Mapman

Newbie
Dabei seit
Juni 2020
Beiträge
6
Hey,
ich versuche mich schon auch etwas länger an GPU Passthrough und verwende folgende Hardware dafür:
R5 1600, B350 Gaming Pro Carbon, Vega 56 (1. Slot), GT 710 (2. Slot), 32GiB RAM
Habe es nun schon mehrmals in verschiedenen Distros probiert, aber durfte leider immer am selben Problem scheitern. Auch wenn meine Grafikkarte ordnungsgemäß an vfio übergeben wurde, erhalte ich nach dem Start der VM auf meinem zweiten Monitor lediglich einen Blackscreen bzw. bleibt dieser erhalten zwecks Übergabe. Per Spice Terminal habe ich allerdings ein Bild und auch keine allzu großen Probleme. CSM habe ich deaktiviert, die Boot Parameter "video=efifb:off" auch angegeben und sonst scheint auch alles richtig eingestellt sein. Daher die Frage, wie du es geschafft hast, die Grafikkarte im ersten Slot als Guest zu nutzen. So langsam gehen mir nämlich die Ideen aus. Schon mal danke im Vorraus ^^
 

Arjab

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2013
Beiträge
422
Durch deinen Post bin ich zum Glück nochmal das Problem mit dem Booten von der 2. GPU angegangen und habs endlich hinbekommen^^
Für Sound und Video nutze ich übrigens Looking Glass und Scream, das funktioniert auch echt super!
Hey, freut mich, dass dir mein Beitrag geholfen hat! Ich bin mit der Lösung mit PulseAudio noch sehr zufrieden, aber Looking Glass muss ich mir glaube ich auch nochmal ansehen.


Daher die Frage, wie du es geschafft hast, die Grafikkarte im ersten Slot als Guest zu nutzen.
Mh, schwierige Frage, ich denke es liegt weniger am deaktivierten CSM und dem video-Parameter. Wenn du von der GPU im zweiten Slot dein Host-System booten kannst, scheint der Teil ja zu funktionieren, oder? Dann liegt es doch eher an dem Passthrough der GPU im ersten Slot. Wenn du die VM mit Spice startest, wird dann im System (Windows?) die Grafikkarte überhaupt erkannt? Vielleicht fehlen im Gast-System einfach die nötigen Treiber? Oder geht es dir um den Fehlercode 43?
 
Top