Ich habe ein Surface Book 2 mit einer GTX 1050 GPU und möchte diese Grafikkarte verwenden, während ich meine virtuelle macOS-Maschine ausführe. Ich habe lange gesucht, aber keine zufriedenstellende Antwort gefunden. Ich möchte die Kontrolle über die GPU nicht an meine VM abgeben, ich möchte sie nur auf die gleiche Weise verwenden, wie die Intel-GPU verwendet wird. Ich habe versucht, VirtualBox in der Nvidia-Systemsteuerung einzurichten, aber es ist das einzige Programm, das nicht angezeigt wird. Das hat mich dazu gebracht, mich zu fragen, ob ich eine API brauche.
Vielen Dank für Ihre Hilfe!
Antwort1
Dies brachte mich zu der Frage, ob ich eine API benötige.
Als Endbenutzer von VirtualBox benötigen Sie keine API.
Ich möchte die Grafikkarte verwenden, während ich meine virtuelle macOS-Maschine ausführe.
Die für Ihr Vorhaben erforderliche PCI-Passthrough-Unterstützung von VirtualBox ist sehr eingeschränkt und mit bestimmten Hardwareanforderungen verbunden.
Das PCI-Passthrough-Modul wird als VirtualBox-Erweiterungspaket geliefert, das separat installiert werden muss. SieheAbschnitt 1.5, „VirtualBox und Erweiterungspakete installieren“für mehr Informationen.
Im Wesentlichen ermöglicht diese Funktion dem Gast die direkte Nutzung physischer PCI-Geräte auf dem Host, selbst wenn der Host keine Treiber für dieses bestimmte Gerät hat. Sowohl normale PCI- als auch einige PCI-Express-Karten werden unterstützt. AGP und bestimmte PCI-Express-Karten werden derzeit nicht unterstützt, wenn sie für die Texturverwaltung auf GART-Unit-Programmierung (Graphics Address Remapping Table) angewiesen sind, da diese eher nicht-triviale Operationen mit Seitenneuzuordnung durchführt, die IOMMU beeinträchtigen. Diese Einschränkung wird möglicherweise in zukünftigen Versionen aufgehoben.
Um voll funktionsfähig zu sein, hängt die PCI-Passthrough-Unterstützung in VirtualBox von einer IOMMU-Hardwareeinheit ab, die noch nicht allzu weit verbreitet ist. Wenn das Gerät Bus-Mastering verwendet (d. h. es führt selbst DMA zum Betriebssystemspeicher aus), ist eine IOMMU erforderlich. Andernfalls können solche DMA-Transaktionen an die falsche physische Speicheradresse schreiben, da die DMA-Engine des Geräts mit einem gerätespezifischen Protokoll programmiert ist, um Speichertransaktionen durchzuführen. Die IOMMU fungiert als Übersetzungseinheit, die physische Speicherzugriffsanforderungen vom Gerät abbildet, indem sie die Kenntnis der physischen Adresse des Gasts den Übersetzungsregeln für physische Adressen des Hosts zuordnet.
Intels Lösung für IOMMU wird als „Intel Virtualization Technology for Directed I/O“ (VT-d) vermarktet, und AMDs Lösung heißt AMD-Vi. Prüfen Sie also, ob das Datenblatt Ihres Motherboards die entsprechende Technologie enthält. Auch wenn Ihre Hardware keine IOMMU hat, funktionieren möglicherweise bestimmte PCI-Karten (z. B. serielle PCI-Adapter), aber der Gast zeigt beim Booten eine Warnung an und die VM-Ausführung wird beendet, wenn der Gasttreiber versucht, Card Bus Mastering zu aktivieren.
Ich möchte die Kontrolle über die GPU nicht an meine VM abgeben, ich möchte sie nur auf die gleiche Weise verwenden, wie die Intel-GPU verwendet wird.
Um zu erreichen, was Sie wollen, müssen Sie die Kontrolle aufgeben, das ist einfach eine Tatsache.