Foutcode 43 in een virtuele machine: specifieke instellingen voor hardware.

Portret van Willem de Vries, IT-specialist in foutcode 43 oplossen
Willem de Vries
IT-specialist in hardware problemen
Geavanceerde oplossingen en preventie · 2026-02-15 · 7 min leestijd

Wat is foutcode 43 eigenlijk?

Stel je voor: je hebt eindelijk die tweedehands Nvidia RTX 3060 voor €250 gekocht en hem via PCIe-passthrough in je Linux VM gestopt. Je start de VM op, installeert de drivers en dan... bam. Foutcode 43. Je GPU weigert dienst.

Die melding voelt als een klap in je gezicht, vooral als je net uren bezig bent geweest met configuratie. Maar rustig aan.

Dit is geen kapotte hardware. Het is een slimme blokkade van Nvidia zelf.

De Nvidia-driver detecteert dat de kaart in een virtuele machine draait. Omdat Nvidia professionele Quadro-kaarten wil verkopen, blokkeert de driver consumenten-GPU's in VM's. Vroeger was dit streng, maar sinds driverversie 465 is er wat beweging in gekomen.

Desondanks kun je nog steeds tegen deze fout aanlopen, zeker met oudere drivers of specifieke hypervisors.

Laten we kijken hoe we dit oplossen zonder je hoofd te breken.

Veelgemaakte fouten bij het oplossen van foutcode 43

Ik zie constant dezelfde fouten terugkomen bij mensen die GPU-passthrough proberen te fixen. Hier zijn de meest voorkomende scenario's, waarom het misgaat en hoe je het direct oplost. Je start je VM op en de GPU ziet direct dat er een hypervisor draait.

Fout 1: De KVM-hypervisor niet verbergen

De driver zegt: "Helaas, ik werk niet in een VM" en gooit foutcode 43.

Dit gebeurt omdat de standaard QEMU-configuratie zichzelf te makkelijk identificeert. De Nvidia-driver scant naar specifieke registers die aangeven dat de hardware virtueel is.

De oplossing: Voeg de KVM-hidden flag toe aan je VM-configuratie. In je XML-bestand (meestal in /etc/libvirt/qemu/) zoek je de <features>-sectie en voeg je dit toe: Dit vertelt de hypervisor zichzelf minder zichtbaar te maken.

<kvm>
  <hidden state='on'/>
</kvm>

Het is een simpele tweak die vaak direct werkt. Als je de hidden flag al hebt ingesteld maar nog steeds foutcode 43 krijgt, is de vendor_id waarschijnlijk niet correct geconfigureerd.

Fout 2: Een verkeerde vendor_id instellen

De driver herkent nu wel de hypervisor, maar checkt ook de vendor-ID van de moederbord-emulatie. Een typische fout is het gebruiken van een te korte of te herkenbare waarde. Nvidia herkent standaard "KVMKVMKVM" of vergelijkbare patronen direct. De oplossing: Voor QEMU 3.0 en nieuwer gebruik je een willekeurige 12-karakter waarde.

Voeg dit toe in de <hypervisor>-sectie van je XML: Verander 'random123456' in iets willekeurigs.

Dit breekt de herkenning door de driver. Je hebt je VM perfect ingesteld, maar je gebruikt nog driverversie 452 uit 2020.

<hyperv>
  <vendor_id state='on' value='random123456'/>
</hyperv>

Die oude drivers hebben nog de harde blokkade voor consumentenkaarten in VM's. Veel mensen denken dat hun configuratie kapot is, terwijl het gewoon een kwestie is van verouderde software. De oplossing: Update je Nvidia-driver naar versie 465 of nieuwer.

Fout 3: Te oude Nvidia-driver gebruiken

Nvidia heeft sindsdien officiële ondersteuning toegevoegd voor consumer GPU's in virtuele omgevingen. Download de nieuwste driver van de Nvidia-website en installeer deze binnen je VM. Let op: zorg dat je de VM eerst volledig afsluit voordat je de driver update, anders kunnen restanten van de oude driver problemen blijven geven.

Je GPU lijkt te werken na een herstart, maar na een paar keer opnieuw opstarten van de VM krijg je alsnog foutcode 43 bij GPU passthrough.

Dit komt door PCIe-reset-problemen. De GPU blijft in een rare staat hangen na een VM-shutdown.

Als je de VM opnieuw start, ziet de driver een GPU die niet "schoon" is en blokkeert deze. De oplossing: Voeg de optie 'x-vga=on' toe aan je GPU-passthrough configuratie. Daarnaast kun je overwegen om de GPU te resetten met de vendor-reset tool, vooral bij AMD-kaarten, maar Nvidia heeft hier ook baat bij.

Fout 4: PCIe-reset problemen negeren

Een praktische workaround: voeg een script toe dat de GPU reset voordat de VM start.

Gebruik hiervoor de commando's in je host-systeem: Vervang het pad met het juiste PCI-adres van je GPU. Je hebt de hidden flag en vendor_id correct ingesteld, maar je VM start niet meer of crasht met een XML-fout. Dit gebeurt als je per ongeluk een komma mist of een tag verkeerd sluit.

XML is streng; één foutje en Libvirt weigert dienst. Je voelt je dan snel gefrustreerd omdat de GPU-passthrough configuratie zo complex lijkt.

De oplossing: Gebruik een XML-validator voordat je de VM opstart. In de terminal kun je dit testen met:

echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
echo 1 > /sys/bus/pci/rescan

Als er een syntaxfout is, geeft Libvirt direct aan waar het misgaat. Gebruik een editor met syntax-highlighting, zoals VS Code of Vim met de juiste plugin, om fouten te voorkomen. Check ook dubbel of alle tags gesloten zijn en geen typefouten bevatten.

Fout 5: Verkeerde XML-syntax in Libvirt

Je hebt je VM geconfigureerd, maar je vergeet dat je moederbord in de BIOS nog VT-d of IOMMU niet hebt ingeschakeld. De GPU wordt dan niet correct doorgegeven aan de VM, wat resulteert in foutcode 43 bij virtualisatie. Dit is een klassieke beginnerfout.

Je VM draait, maar de hardware is niet volledig beschikbaar. De oplossing: Restart je computer en ga naar de BIOS/UEFI.

Zoek naar opties als "VT-d", "Intel Virtualization Technology" of "AMD-Vi" en schakel deze in. Sla de instellingen op en start opnieuw op.

virsh define /etc/libvirt/qemu/jouw-vm.xml

Controleer ook of je moederbord IOMMU-groepen correct ondersteunt. Gebruik in Linux de commando's: Zie je geen output?

Fout 6: BIOS/UEFI-instellingen vergeten

Dan is IOMMU niet actief. Dit moet aan staan voor passthrough.

Je probeert je GPU door te geven, maar de VM crasht of geeft foutcode 43 omdat de GPU in dezelfde IOMMU-groep zit als andere essentiële hardware, zoals je netwerkkaart of USB-controller. Dit gebeurt vaak op consumer-moederborden waar de IOMMU-groepen niet optimaal zijn verdeeld. De oplossing: Controleer je IOMMU-groepen met: Als je GPU in een groep zit met andere devices, moet je ofwel de groep opdelen (moeilijk) ofwel al die devices doorgeven aan de VM. Gebruik een moederbord met betere IOMMU-groepen als je vaak VM's gebruikt, zoals de MSI B550 Tomahawk (rond €150).

dmesg | grep -e DMAR -e IOMMU

Fout 7: Te veel devices in één IOMMU-groep

for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspci -nns "${d##*/}"; done

Veelgestelde vragen over foutcode 43

Ik krijg veel vragen over dit onderwerp. Hier zijn de meest gestelde vragen met directe antwoorden.

Waarom krijg ik foutcode 43 bij een Nvidia GPU in een VM?

De Nvidia-driver detecteert dat de GPU in een virtuele machine draait en blokkeert de werking om professionele kaarten te beschermen.

Hoe verberg ik de hypervisor voor de GPU?

Dit is een bewuste keuze van Nvidia om de markt voor Quadro-kaarten te beschermen. Door in de XML-configuratie van de VM de 'hidden' flag in de KVM-sectie in te schakelen. Voeg <kvm><hidden state='on'/></kvm> toe aan je features sectie.

Is foutcode 43 altijd een hardwaredefect?

Nee, in een virtuele machine is het vaak een softwarematige blokkade door de driver. Je GPU is meestal gewoon in orde.

Welke hypervisors ondersteunen GPU passthrough?

KVM/QEMU is de meest gebruikte hypervisor voor GPU passthrough met ondersteuning voor het verbergen van de hypervisor-status. Proxmox en Unraid gebruiken ook KVM onder de motorkap. Sinds Nvidia driver v465 is dit voor veel consumentenkaarten niet meer strikt noodzakelijk. Maar het verbergen van de hypervisor blijft een veilige optie voor stabiele werking.

Moet ik nog steeds de XML aanpassen voor moderne Nvidia drivers?

Preventieve checklist voor foutcode 43

Om toekomstige problemen te voorkomen, volg je deze stappen voordat je een VM met GPU-passthrough opzet:

  1. Update je BIOS/UEFI: Zorg voor de nieuwste firmware voor je moederbord, zoals de MSI B550 Tomahawk of ASUS ROG Strix B550-F.
  2. Schakel VT-d/AMD-Vi in: Activeer deze opties in je BIOS voor IOMMU-ondersteuning.
  3. Gebruik Nvidia-driver 465 of nieuwer: Download de nieuwste versie van de Nvidia-website.
  4. Configureer je XML correct: Voeg de hidden flag en vendor_id toe, en valideer de syntax.
  5. Test je IOMMU-groepen: Zorg dat je GPU in een schone groep zit of geef alle devices in de groep door.
  6. Reset je GPU regelmatig: Gebruik scripts om de PCIe-verbinding te resetten na elke VM-shutdown.
  7. Monitor je logs: Check dmesg en journalctl voor fouten tijdens het opstarten van de VM.

Met deze checklist loop je minder risico op foutcode 3 en geniet je soepel van je VM met GPU-passthrough. Het is even werk, maar de voldoening van een werkende setup is het waard.

Portret van Willem de Vries, IT-specialist in foutcode 43 oplossen
Over Willem de Vries

Willem is gespecialiseerd in het diagnosticeren en oplossen van complexe hardwarefouten, zoals code 43.

Volgende stap
Bekijk alle artikelen over Geavanceerde oplossingen en preventie
Ga naar overzicht →