PCIe ACS erzwingen: IOMMU Gruppen lassen sich nicht trennen/auflösen


Nebrius

Recommended Posts

Hallo,

 

ich versuche zurzeit meine erste VM zu erstellen und möchte dazu gerne IOMMU-Gruppen über "PCIe ACS erzwingen" trennen, um einzelne Geräte (z.B. Sound, USB, IGPU) an die VM durchzureichen. Den Ansatz habe ich aus einem Video von Spaceinvader One. Leider funktioniert das bei mir nicht. Muss ich vielleicht noch irgendetwas im BIOS verändern oder kann es gar sein, dass das bei meinem Board technisch nicht geht?

Das Board ist ein Asus ROG STRIX B460-H Gaming.

 

 

PCIe ACS erzwingen: Deaktiviert:PCIe_ACS_erzwingen_Deaktiviert.thumb.jpg.e6589c1d4d8bf3f98b03e8a42e9d20fa.jpg

 

PCIe ACS erzwingen: Downstream:

PCIe_ACS_erzwingen_Downstream.thumb.jpg.2271480133e23708306a82c0a88df504.jpg

 

PCIe ACS erzwingen: Multi-Funktion:

PCIe_ACS_erzwingen_Multi-Funktion.thumb.jpg.86a6d88bbb1a059ab6e6b0e2ee04a411.jpg

 

PCIe ACS erzwingen: BeidePCIe_ACS_erzwingen_Beide.thumb.jpg.5106d3c76cbafc5e2d238d740ef956c2.jpg:

 

Vielen Dank!

 

Nebrius

 

 

 

 

Link to comment

Zb den USB Controller kannst du nicht an VFIO binden, weil dann ja der Unraid USB Stick nicht mehr vorhanden wäre. Entweder bindest du also einzelne USB Geräte an die VM, also ohne den Controller selbst an VFIO zu binden, oder du besorgst dir einen zusätzlichen USB Controller in Form einer USB PCie Karte. Ähnliches gilt für LAN. Was wolltest du noch durchschleifen?

Link to comment

Uuups,

ich hatte eigentlich vor, Unraid so einzurichten, dass ich unmittelbar an dem Gerät, ähnlich einem PC, arbeiten kann. Da ist USB schon wichtig, allein für Tastatur/Maus/Stick/Headset/Kamera...

Unter IOMMU group 6 steht doch noch ein weiterer USB-Controler, kann ich den nicht nehmen?

Wenn nicht, muss der zusätzliche USB Controller in Form einer USB PCie Karte bestimmte Anforderungen erfüllen, bzw. gibt es da eine Empfehlung?

 

Quote

Entweder bindest du also einzelne USB Geräte an die VM, also ohne den Controller selbst an VFIO zu binden...

Wie würde das gehen, bitte?

 

Im Bios kann man SR-IOV-Unterstützung aktivieren und damit theoretisch Hardware teilen. Wird dieses Feature von Unraid unterstützt und ist das vielleicht ein Weg?

 

Die Soundkarte wäre mir noch wichtig. Mit dem oben angedachten Einsatzzweck möchte ich schon sehr gerne auch eine Soundausgabe an dem Rechner haben.

 

Vielen Dank und beste Grüße!

Link to comment
11 hours ago, Nebrius said:

Wie würde das gehen, bitte?

Sobald du ein USB Gerät anstöpselst, siehst du es auch bei den VM Einstellungen als durchschleifbares Gerät. Am einfachsten ist es aber einen USB Hub (oder besagte USB Karte( durchzuschleifen. Dann kann man zwischendurch auch was anderes abstöpseln und muss nicht immer die VM stoppen.

 

11 hours ago, Nebrius said:

Wenn nicht, muss der zusätzliche USB Controller in Form einer USB PCie Karte bestimmte Anforderungen erfüllen, bzw. gibt es da eine Empfehlung?

Ich bin da bei deinem Board echt unsicher, denn normalerweise kann man auch die PCIe Slots durchschleifen und bei dir sind auch die alle grau.

 

@ich777 Weißt du warum bei ihm manche Geräte ausgegraut sind und nicht an VFIO gebunden werden können?

Link to comment
1 minute ago, mgutt said:

@ich777 Weißt du warum bei ihm manche Geräte ausgegraut sind und nicht an VFIO gebunden werden können?

Nein leider kann ich auch nicht sagen...

 

Ist im BIOS die option aktiviert um die IOMMU gruppen aufzuteilen, ich musste das bei meinem Z490 board machen sonst sah es gleich aus.

Kann natürlich auch sein das dieses Board das nicht unterstützt.

 

Mein Problem zB ist das ich keinen USB controller durchreichen kann da ich nur einen habe und dieser in einer IOMMU Gruppe ist und ich eine PCIe zu USB Karte brauchen würde um dies zu erreichen.

Link to comment
8 minutes ago, mgutt said:

Bei ihm zeigt Unraid IOMMU als aktiviert an oder heißt das nichts?

Ich hab 2 optionen im BIOS einmal IOMMU aktivieren und dann noch das die IOMMU gruppen aufgeteilt werden, wie gesagt wenn ich die 2. Option nicht aktiviere siehts ähnlich aus wie bei dem Screenshot oben.

 

Hab mir nicht den ganzen Thread durchgelesen aber hat er denn schon eine PCIe zu USB Karte drin?

Auf dem Block diagram für B460 sieht man auch das er nur einen USB controller hat und den kannst natürlich nicht aufteilen (wenn es denn hier um USB geht):

grafik.png.aab14e58ba342386761af75c0171231f.png

Link to comment
16 minutes ago, mgutt said:

Wie es bei dir steht

Sehr eigenartig, ich hab leider noch nicht probiert bei mir einen PCIe zu USB controller einzubauen und mal zu versuchen den durchzureichen, müsste mal nachsehen ob ich einen rumfliegen hab.

Hab auch leider nur einen USB controller bei mir am Board verbaut somit kann ich das auch nicht weiter testen.

Link to comment

Hallo,

vielen Dank, allerdings hatte ich die genannte Option bereits aktiviert.

Das BIOS/UEFI ist auf aktuellem Stand (Vers. 1602).

Im BIOS/UEFI habe ich folgende Einstellungen gesetzt:

  • Intel (VMX) Virtualisierungstechnologie --> Aktiviert
  • VT-d --> Enabled
  • IOMMU Pre-Boot-Verhalten steuern -->IOMMU während des Startvorgangs ohne Ausnahmeliste aktivieren
  • SR-IOV --> Aktiviert

Unraid zeigt mir ja auch HVM und IOMMU als aktiviert an (siehe Screenshot oben).

Bei "PCIe ACS erzwingen" habe ich alle Möglichkeiten durchprobiert und konnte keine Veränderungen feststellen.

Nach einigen Videos von Spaceinvader habe ich "pcie_acs_override=id:...." mit mehreren Hardwarekennungen (z.B. 8086:a3e9) durchprobiert und konnte keine Veränderungen feststellen.

Weiter habe ich versucht die PCIe-Einstellungen von Auto auf explizite Einstellungen zu setzen, da sich nach Dokumentation des Motherboards einige Slots Bandbreite teilen und konnte keine Veränderungen feststellen.

 

Mich irritiert auch, dass vor den meisten IOMMU-Gruppen ein Kästchen zur Anwahl dargestellt wird, aber ausgegraut. Wenn ich darüber gehe (Tooltip), erscheint "Wird von Unraid benutzt" und kann dann eben nicht ausgewählt werden.

 

Eine weitere Baustelle ist das Durchreichen der iGPU an die Unraid-GUI . Das gelingt mir auch nicht im UEFI-Boot-Modus, mit CSM (Compatibility Support Modus) schon. Daher hatte ich schon vermutet, dass da im BIOS/UEFI noch etwas krumm steht??? Ich bekomme die VMs auch nicht über die iGPU ausgegeben, nur über VNC.

 

Gibt es noch irgendwelche Stellschrauben an denen ich drehen könnte?

 

Lässt sich grundsätzlich prüfen, ob mein Board überhaupt in der Lage ist IOMMU-Gruppen zu splitten?

 

Vielen lieben Dank euch!

 

Nebrius

Edited by Nebrius
Link to comment
1 hour ago, Nebrius said:

Eine weitere Baustelle ist das Durchreichen der iGPU an die Unraid-GUI . Das gelingt mir auch nicht im UEFI-Boot-Modus, mit CSM (Compatibility Support Modus) schon. Daher hatte ich schon vermutet, dass da im BIOS/UEFI noch etwas krumm steht??? Ich bekomme die VMs auch nicht über die iGPU ausgegeben, nur über VNC.

 

Das geht von Haus aus auch nicht bzw ob man überhaupt eine VM auf dem Monitor sehen kann, weiß ich nicht mal. Ich weiß nur, dass es ein Plugin gibt, womit man die iGPU zur Beschleunigung einer VM nutzen kann:

https://forums.unraid.net/topic/108650-plugin-intel-gvt-g/

 

 

Da ist aber keineswegs Standard. Normalerweise braucht man für jede VM eine separate GPU. Mehrfachnutzung ist schon was Besonderes. Daher aufmerksam die Anleitung vom Plugin lesen.

 

2 hours ago, Nebrius said:

Eine weitere Baustelle ist das Durchreichen der iGPU an die Unraid-GUI

Verstehe ich nicht. Was meinst du damit? Wenn die iGPU deine primäre GPU ist, dann wird Unraid diese auch verwenden. Ich mein wenn du den Server hochfährst und einen Monitor dran hast, dann siehst du doch den Unraid Boot-Vorgang oder nicht? 

Link to comment
Quote

Das geht von Haus aus auch nicht bzw ob man überhaupt eine VM auf dem Monitor sehen kann, weiß ich nicht mal. Ich weiß nur, dass es ein Plugin gibt, womit man die iGPU zur Beschleunigung einer VM nutzen kann

Oh, dann habe ich etwas nicht richtig verstanden? Meine Vorstellung ist bis jetzt, dass ich Unraid nicht (nur) als Medien-Server verwende, sondern vor allem um unmittelbar an dem Gerät zu arbeiten. Die Vorstellung Linux, mehrerer Windows (Office, Gaming, CAD), Mac und andere parallel zu betreiben und ohne Runterfahr/Wiederhochfahr-Umstände "on-the-fly" benutzen zu können ist zu verlockend. Ich dachte, ich hätte so etwas schon mit nur einer GPU für alle gesehen...

 

Quote

Verstehe ich nicht. Was meinst du damit? Wenn die iGPU deine primäre GPU ist, dann wird Unraid diese auch verwenden. Ich mein wenn du den Server hochfährst und einen Monitor dran hast, dann siehst du doch den Unraid Boot-Vorgang oder nicht? 

 

Sorry, dass ich mich missverständlich ausgedrückt habe.

Im Grunde ja. Meine iGPU ist die primäre. Eine weitere Grafikkarte fehlt noch. Wenn ich den Rechner boote, erscheint ein blaues Rechteck mit den Unraid-Boot-Optionen. Wähle ich  "Unraid OS" erscheint an dem angeschlossenen Monitor ein Shell-Login. Mit "Unraid OS mit GUI" sehe ich lediglich irgendwelche kryptischen Meldungen ohne Eingabemöglichkeit. Ich bearbeite Unraid zurzeit (noch) ausschließlich mit einem anderen PC über die Weboberfläche.  

 

Link to comment
6 hours ago, Nebrius said:

Im Grunde ja. Meine iGPU ist die primäre. Eine weitere Grafikkarte fehlt noch. Wenn ich den Rechner boote, erscheint ein blaues Rechteck mit den Unraid-Boot-Optionen. Wähle ich  "Unraid OS" erscheint an dem angeschlossenen Monitor ein Shell-Login.

OK, normal....

6 hours ago, Nebrius said:

Mit "Unraid OS mit GUI" sehe ich lediglich irgendwelche kryptischen Meldungen ohne Eingabemöglichkeit.

....nicht normal. Am Ende sollte da ein Desktop mit einem Firefox-Browser zu sehen sein, mit dem man dann auf das Web-UI gelangen kann (und alles Andere, was man im Browser so kann).

 

6 hours ago, Nebrius said:

Ich bearbeite Unraid zurzeit (noch) ausschließlich mit einem anderen PC über die Weboberfläche.  

So sollte es auch sein....der GUI Mode und Terminal direkt am unraid Host ist für Notfälle (Tastatur vorausgesetzt...für GUI Mode auch eine Kabelratte).

 

Linux stellt normalerweise hinter jedem "Fx"-Key auf der Tastatur ein Terminal bereit.

Du kannst versuchen mit "ALT-Fx" zwischen den Terminals umzuschalten.

 

Evtl. verbirgt sich das GUI dann auch unter einem weiter hinten...probier mal "ALT-F7"

Link to comment
8 hours ago, Nebrius said:

Oh, dann habe ich etwas nicht richtig verstanden? Meine Vorstellung ist bis jetzt, dass ich Unraid nicht (nur) als Medien-Server verwende, sondern vor allem um unmittelbar an dem Gerät zu arbeiten. Die Vorstellung Linux, mehrerer Windows (Office, Gaming, CAD), Mac und andere parallel zu betreiben und ohne Runterfahr/Wiederhochfahr-Umstände "on-the-fly" benutzen zu können ist zu verlockend. Ich dachte, ich hätte so etwas schon mit nur einer GPU für alle gesehen...

Das wäre unter Umständen mit dem GVT-g Plugin möglich, jedoch musst du bedenken das du je nach Hardwarekombination ein Limit an gleichzeitig laufenden vGPUs vorliegt.

 

Wenn du eine Display Ausgabe willst ist das bedingt mit dem GVT-g Plugin und vGPUs auch möglich jedoch musst du dir zB einen USB DisplayLink Adapter besorgen, diesen an die VM weiterreichen, Treiber installieren und dann die Ausgabe von deiner vGPU auf den DisplayLink adapter spiegeln, somit hättest du auch ein Bild (natürlich mit HW Beschleunigung) mit nur einer richtigen GPU (Intel iGPU).

Jedoch kann ich dir nicht sagen ob es reicht nur den DisplayLink Adapter durchzureichen oder ob du einen ganzen USB controller durchreichen musst an dem der DisplayLink Adapter hängt.

Link to comment
8 hours ago, Nebrius said:

Mit "Unraid OS mit GUI" sehe ich lediglich irgendwelche kryptischen Meldungen ohne Eingabemöglichkeit

Hast du die iGPU evtl an VFIO gebunden? Normal ist das jedenfalls nicht. In deinem Szenario könnte der GUI Modus Sinn machen, aber ich weiß wie gesagt nicht ob man mit GVT-G zwischen GUI Modus und einer VM beim Monitorausgang wechselt oder ob dann einfach nur die VM grafisch beschleunigt wird und trotzdem weiterhin der GUI Modus zu sehen wäre. EDIT: Ok, @ich777 hat es erklärt. Es geht nur über Umwege.

 

Wenn deine VMs keine sonderliche Leistung erfordern, würde ich an deiner Stelle eine kleine GPU installieren wie zB eine GTX 1050 (Ti). Dann nutzt du die iGPU für die Unraid GUI und die GPU für die VMs im Wechsel. Allerdings wirklich nur im Wechsel. Dh erst nutzt die eine VM die GPU, dann fährt man die runter und dann kann die nächste die selbe GPU wieder verwenden. Parallel geht nicht.

Link to comment
8 hours ago, Nebrius said:

Mit "Unraid OS mit GUI" sehe ich lediglich irgendwelche kryptischen Meldungen ohne Eingabemöglichkeit. Ich bearbeite Unraid zurzeit (noch) ausschließlich mit einem anderen PC über die Weboberfläche.  

 

Hast du denn den iGPU-Treiber in Unraid installiert/geladen?

Das Problem hatte ich nämlich anfangs mit meinem Ryzen auch. Erst nachdem die Treiber installiert waren, funktionierte auch der GUI-Modus (ich Nachhinein ja auch irgendwo logisch)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.