Toon posts:

[VirtualBox] PCI-passthrough van Fedora host naar CentOS VM

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het lukt me niet om mijn GPU beschikbaar te maken in mijn virtual machine via PCI-passthrough. Ik heb al een hoop geprobeerd, maar elke keer als ik de virtual machine wil starten dan crashed deze direct en loopt zelfs heel VirtualBox vast (waardoor er volgens mij zelfs geen nuttige error informatie wordt geschreven in het log).

Mijn setup is als volgt:

Intel i3-6100
Asus Z170 Pro Gaming
Nvidia GeForce GTX 1060
Host OS: Fedora 27
VM OS: CentOS 7
VirtualBox 5.2.2

Ik heb tot nu toe het volgende geprobeerd:

1) Als eerste heb ik de VirtualBox extensions geïnstalleerd, dit is nodig om in VirtualBox PCI-passthrough beschikbaar te maken.

2) Vervolgens heb ik in de BIOS gecontroleerd of VT-d aanstond, dit was het geval.

3) Ik heb de chipset van de virtual machine gewijzigd van PIIX3 naar ICH9. VirtualBox kwam zelf met de melding dat dit noodzakelijk was voor PCI-passthrough.

4) Ik heb de volgende parameters toegevoegd aan GRUB_CMDLINE_LINUX in /etc/default/grub: iommu=1 intel_iommu=on. Vervolgens de config opgeslagen.

5) Via lspci heb ik de PCI poort(en) gevonden van de GPU en deze via het volgende commando gekoppeld aan de virtual machine: VBoxManage modifyvm "CUDA9" --pciattach 01:00.0@01:05.0 (ik heb geprobeerd met beide PCI poorten en ook zonder de audio device).

Zodra ik de virutal machine probeer te starten loopt VirtualBox compleet vast (https://ibb.co/kAPNCw). Ik krijg dus geen foutmelding waar ik iets mee kan. Hopelijk heeft iemand hier ervaring mee en ziet misschien wat ik verkeerd doe. Voor de zekerheid, ik gebruik de GPU niet in de host. Ik heb geen driver geïnstalleerd en de monitor is aangesloten rechtstreeks op het moederbord.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Je hebt dus https://www.virtualbox.org/manual/ch09.html#pcipassthrough al gevolgd? Lijkt er iig wel deels op, maar heb je die kernel zaken ook bekeken (config_dmar, config_pci_stub)?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hero of Time schreef op dinsdag 5 december 2017 @ 20:59:
Je hebt dus https://www.virtualbox.org/manual/ch09.html#pcipassthrough al gevolgd? Lijkt er iig wel deels op, maar heb je die kernel zaken ook bekeken (config_dmar, config_pci_stub)?
Ik heb inderdaad die documentatie gebruikt als basis, maar je hebt me denk ik wel in de juiste richting gestuurd. Ik heb het vermoeden dat ik die stappen wellicht niet goed heb uitgevoerd.

Als ik virt-host-validate uitvoer dan krijg ik op 1 punt een warning en precies op het punt waar DMA remapping wordt getest.

code:
1
QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)


Ik moet dat dus nog even goed nakijken, want dat zou wel eens de oorzaak kunnen zijn.

Edit:

Als ik 'dmesg | grep -e IOMMU -e DMAR' uitvoer dan krijg ik het volgende resultaat:

code:
1
2
3
4
5
[    0.000000] DMAR: IOMMU enabled
[    6.741039] vboxpci: IOMMU not found (not registered)
[  957.005959] vboxpci 0000:01:00.1: cannot attach to IOMMU, no domain
[ 1024.810684] vboxpci 0000:01:00.1: cannot detach from IOMMU, no domain
[ 1025.000817] vboxpci 0000:01:00.1: cannot detach from IOMMU, no domain


De eerste regel lijkt me goed, maar vervolgens zie ik een aantal "errors" van vboxpci, dat zal dus te maken hebben met de inrichting van VirtualBox, maar ik heb even geen idee wat er precies fout zou kunnen zijn...

[ Voor 26% gewijzigd door Verwijderd op 05-12-2017 21:52 ]


Acties:
  • 0 Henk 'm!

  • janwillemCA
  • Registratie: Mei 2014
  • Laatst online: 26-09 09:41
Het lijkt erop dat je Nvidia kaart niet is geisoleerd van je systeem.

Als je GPU Passthrough wil doen met KVM, kun je dit doen door je vfio.conf aan te passen.
Hoe dit precies werkt met Virtualbox durf ik niet te zeggen, wellicht op dezelfde manier?

Hier een link die ik gebruikt heb:

https://dominicm.com/gpu-passthrough-qemu-arch-linux/

Unix is simple. It just takes a genius to understand its simplicity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
janwillemCA schreef op woensdag 6 december 2017 @ 14:50:
Het lijkt erop dat je Nvidia kaart niet is geisoleerd van je systeem.

Als je GPU Passthrough wil doen met KVM, kun je dit doen door je vfio.conf aan te passen.
Hoe dit precies werkt met Virtualbox durf ik niet te zeggen, wellicht op dezelfde manier?

Hier een link die ik gebruikt heb:

https://dominicm.com/gpu-passthrough-qemu-arch-linux/
Bedankt voor de link, dat is een zeer uitgebreide uitleg waar ik zeker wat aan heb. Ik zit overigens sowieso te denken om VirualBox te vervangen voor KVM, dus dan zou deze link helemaal top zijn!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eureka! Ik heb gevonden wat het probleem was. In mijn Asus bios was een instelling om Intel Virtualization aan te zetten. Dit had ik gedaan o.b.v. een tutorial die ik online had gevonden. Echter blijkt dat VT-d een losse instelling is in dit bios ergens diep verstopt. Nadat ik die ook aan had gezet werkte het ineens als een zonnetje.

Gelukkig is het internet anoniem anders zou ik nooit zo'n domme fout durven toegeven :).

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Tja, er was ook geen enkele reden om te vragen of dat aan stond, want in je OP zegt je dit:
2) Vervolgens heb ik in de BIOS gecontroleerd of VT-d aanstond, dit was het geval.
Waarom zouden we dan navragen of VT-d wel aan staat en of je 't niet met VT-x hebt verwart? ;)

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tja, mea culpa. Ik dacht echt dat het aanstond, omdat ik in een andere tutorial waarbij ze screenshots hadden van de exact dezelfde bios hadden aangegeven dat ik alleen Intel Virtualization aan hoefde te zetten. Vervolgens ging ik er dan vanuit dat dat iig goed was. Les geleerd in ieder geval. En nog bedankt voor het helpen!
Pagina: 1