Für wen sich GPU Passthrough überhaupt lohnt
GPU Passthrough gibt einer einzelnen VM exklusiven, nahezu nativen Zugriff auf eine physische Grafikkarte – kein Sharing, keine Emulation. Sinnvoll für VMs mit KI/ML-Workloads (CUDA), Gaming-VMs oder GPU-beschleunigtes Transcoding (Jellyfin, Plex). Wer die GPU-Leistung auf mehrere VMs gleichzeitig verteilen will, braucht dagegen vGPU-fähige Hardware (bestimmte NVIDIA-Profikarten mit vGPU-Lizenz) – normales Passthrough gibt die Karte immer nur an eine VM zur Zeit.
IOMMU aktivieren
IOMMU ist die Grundvoraussetzung – ohne sie kann der Host PCIe-Geräte nicht sicher isoliert an eine VM durchreichen.
# /etc/default/grub anpassen:
# Intel: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
# AMD: GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
update-grub && reboot
dmesg | grep -e DMAR -e IOMMU
Zeigt dmesg hier nichts Sinnvolles, lohnt sich der Blick ins BIOS/UEFI: VT-d (Intel) bzw. AMD-Vi muss dort zusätzlich aktiviert sein – das GRUB-Flag allein reicht nicht, wenn die Firmware IOMMU nicht anbietet.
GPU identifizieren und IOMMU-Gruppe prüfen
lspci -nn | grep -iE "NVIDIA|AMD"
# Beispiel: 01:00.0 [10de:2684] NVIDIA RTX 4090
(Wichtig: grep -iE mit großem -E, nicht nur -i – ohne Extended-Regex wird das | als literales Zeichen gesucht statt als Oder-Verknüpfung, und der Befehl findet dann gar nichts.)
Vor dem nächsten Schritt lohnt sich ein Blick auf die IOMMU-Gruppe der Karte – manche Mainboards packen GPU und andere Geräte (z.B. USB-Controller) in dieselbe Gruppe, was Passthrough ohne zusätzliche ACS-Override-Patches verhindert:
for d in /sys/kernel/iommu_groups/*/devices/*; do
n=${d#*/iommu_groups/*}; n=${n%%/*}
echo "Gruppe $n: $(lspci -nns ${d##*/})"
done | grep -i nvidia
VFIO-Treiber binden
echo "options vfio-pci ids=10de:2684,10de:22ba" >> /etc/modprobe.d/vfio.conf
echo "vfio-pci" >> /etc/modules
echo "softdep nvidia pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
update-initramfs -u -k all && reboot
# Prüfen
lspci -nnk | grep -A3 "01:00"
# Soll zeigen: Kernel driver in use: vfio-pci
Die zweite ID (10de:22ba im Beispiel) ist üblicherweise der Audio-Teil derselben Karte (HDMI-Audio) – beide IDs müssen an vfio-pci gebunden werden, sonst hängt der Host weiter am Audio-Device fest und Passthrough der GPU allein schlägt fehl.
Proxmox VM konfigurieren
qm create 200 --name gpu-vm --memory 32768 --cores 8 \
--machine q35 --bios ovmf --efidisk0 local-lvm:1 \
--net0 virtio,bridge=vmbr0
qm set 200 --hostpci0 01:00.0,allFunctions=1,pcie=1,x-vga=1
qm set 200 --cpu host,hidden=1 # verhindert NVIDIA Error 43
qm start 200
--machine q35 und --bios ovmf (UEFI statt SeaBIOS) sind für GPU Passthrough praktisch Pflicht, nicht optional – mit dem alten i440fx-Maschinentyp und SeaBIOS gibt es regelmäßig Probleme beim Erkennen der durchgereichten Karte.
NVIDIA Error 43 – die häufigste Fehlermeldung
NVIDIA-Consumer-Treiber (GeForce, nicht Quadro/Tesla) erkennen aktiv, ob sie in einer virtualisierten Umgebung laufen, und verweigern dann den Dienst mit Code 43 im Windows-Geräte-Manager. Der --cpu host,hidden=1-Flag versteckt die Virtualisierungs-Signatur vor dem Gast-Treiber und umgeht die Erkennung. Wichtig: Das ist keine Garantie – NVIDIA ändert die Erkennungsmethode gelegentlich mit neuen Treiberversionen, und was heute funktioniert, kann nach einem Treiber-Update erneut Error 43 werfen.
AMD-Besonderheit: Reset-Bug
Manche AMD-Consumer-GPUs (insbesondere ältere RDNA/RDNA2-Generationen) lassen sich nach dem Herunterfahren der VM nicht sauber zurücksetzen ("AMD Reset Bug") – ein VM-Neustart mit Passthrough funktioniert dann erst nach einem kompletten Host-Reboot. Der vendor-reset-Kernel-Patch behebt das für die meisten betroffenen Karten, ist aber kein offizieller Proxmox-Bestandteil und muss manuell nachgerüstet werden.
Fazit
GPU Passthrough bringt fast native Grafikleistung in eine VM – die Einrichtung hat aber mehrere Stellen, an denen es ohne ersichtlichen Grund scheitert (falsche IOMMU-Gruppe, vergessenes Audio-Device, fehlendes q35/OVMF, NVIDIA-Erkennung). Wer die Fehlerquellen kennt, spart sich Stunden im Trial-and-Error.
SeeColors IT plant und implementiert Proxmox-Virtualisierung für KMU in Heidelberg und der Rhein-Neckar-Region. Anfragen.