[ Skip to main content ]
1 3 3 7 4 2 0 6 6 6 1 3 3 7 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 6 6 4 2 0 1 3 3 7 6 9 6 6 6 4 2 0 1 3 3 7 6 9 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 6 9 1 3 3 7 4 2 0 6 6 6 6 9 1 3 3 7 4 2 0 6 6 6 6 9 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6
TUTORIALS / VIRTUALIZATION

GPU PASSTHROUGH VM

DIFFICULTY: EXTREME UPDATED: DECEMBER 2025
GPU Passthrough VM

EINFÜHRUNG

Eine virtuelle Maschine zu betreiben bedeutet normalerweise, Grafikleistung zu opfern. GPU Passthrough (VFIO) löst dieses Problem, indem es der VM direkten Zugriff auf eine physische GPU gibt – für nahezu native Leistung. Das ist der heilige Gral für Linux-Nutzer, die Windows-Spiele oder Adobe-Software ohne Dual-Boot nutzen wollen.

Mit richtiger Konfiguration erreichst du 95-99% der Bare-Metal-Leistung, kannst Anti-Cheat-Spiele spielen und behältst deine sichere Linux-Host-Umgebung.

VFIO GPU Passthrough Architektur

Linux Host
QEMU/KVM
VFIO Treiber
IOMMU
DMA Remapping
Isolierung
Windows VM
GPU Treiber
Direkter Zugriff
Host-GPU bleibt für Linux verfügbar, durchgereichte GPU erreicht nahe-native Leistung in VM

VORAUSSETZUNGEN

  • CPU mit VT-d (Intel) oder AMD-Vi (AMD) - Prüfe deine Prozessor-Specs
  • Motherboard mit IOMMU-Support - Jedes moderne Board unterstützt das
  • Zwei GPUs ODER Single-GPU Passthrough - Dual-GPU ist einfacher für Anfänger
  • Linux Host - Arch Linux empfohlen (beste Dokumentation), Ubuntu/Fedora funktionieren auch
  • Mindestens 16GB RAM - Du musst 8GB+ der VM zuweisen

⚠️ WARNUNG

Falsche BIOS-Modifikationen können dein Motherboard bricken. Habe immer einen Backup-Plan und lies den kompletten Guide, bevor du anfängst.

SCHRITT-FÜR-SCHRITT ANLEITUNG

Schritt 1: IOMMU im BIOS/UEFI aktivieren

Starte ins BIOS (meist DEL oder F2 beim Booten). Navigiere zum Advanced- oder CPU-Konfigurationsbereich.

Suche und aktiviere:

  • Intel VT-d (Intel CPUs) oder AMD-Vi / IOMMU (AMD CPUs)
  • Intel Virtualization Technology / SVM Mode
  • Deaktiviere CSM/Legacy Boot (nur UEFI verwenden)

Schritt 2: IOMMU in Kernel-Parametern aktivieren

Bearbeite deine Bootloader-Config um IOMMU auf Kernel-Ebene zu aktivieren. Für GRUB, bearbeite /etc/default/grub:

# Für Intel CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

# Für AMD CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Dann GRUB aktualisieren und neustarten:

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

Schritt 3: IOMMU-Gruppen verifizieren

Nach dem Neustart, prüfe deine IOMMU-Gruppen um sicherzustellen, dass Geräte richtig isoliert sind:

#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
        echo -e "\t$(lspci -nns ${d##*/})"
    done;
done;

Schritt 4: GPU mit VFIO isolieren

Finde die PCI-IDs deiner GPU mit lspci -nnk. Erstelle /etc/modprobe.d/vfio.conf:

# Ersetze mit den vendor:device IDs deiner GPU
options vfio-pci ids=10de:1b80,10de:10f0

# Lade vfio-pci vor Grafiktreibern
softdep nvidia pre: vfio-pci
softdep amdgpu pre: vfio-pci

Initramfs aktualisieren und neustarten:

sudo mkinitcpio -P # Arch Linux
sudo update-initramfs -u # Ubuntu/Debian

Schritt 5: Virtualisierungssoftware installieren

# Arch Linux
sudo pacman -S qemu libvirt virt-manager ovmf

# Ubuntu/Debian
sudo apt install qemu-kvm libvirt-daemon-system virt-manager ovmf

Libvirt aktivieren und starten:

sudo systemctl enable --now libvirtd
sudo usermod -aG libvirt $USER

Schritt 6: VM in Virt-Manager erstellen

  1. Virt-Manager öffnen und "Neue virtuelle Maschine erstellen" klicken
  2. "Lokales Installationsmedium" wählen und Windows-ISO auswählen
  3. Mindestens 8GB RAM und 4 CPU-Kerne zuweisen
  4. Wichtig: "Konfiguration vor Installation anpassen" auswählen
  5. In Übersicht, Firmware auf "UEFI x86_64: /usr/share/OVMF/OVMF_CODE.fd" setzen
  6. Bei CPUs "Host-CPU-Konfiguration kopieren" ankreuzen
  7. Standard-Videoadapter entfernen (Spice/QXL)
  8. "Hardware hinzufügen" → "PCI-Host-Gerät" → Deine GPU auswählen
  9. Erneut Hardware hinzufügen und GPU-Audio-Controller auswählen

FAZIT & TROUBLESHOOTING

Wenn erfolgreich, hast du jetzt eine Windows-VM, die 95-99% der Bare-Metal-Leistung erreicht. Du kannst die meisten Spiele mit Anti-Cheat spielen und CUDA-Beschleunigung nutzen.

Häufige Probleme:

  • Code 43 Error: vendor_id hinzufügen um VM vor Nvidia-Treibern zu verstecken
  • Schwarzer Bildschirm: Andere OVMF-Firmware-Versionen probieren oder video=efifb:off zu Kernel-Params hinzufügen
  • VM startet nicht: IOMMU-Gruppen prüfen und sicherstellen, dass GPU nicht vom Host genutzt wird

FAQ / PROBLEMLÖSUNG

⚠️ Detaillierte Antworten zu den häufigsten Problemen

❌ Code 43 Fehler im Windows-Geräte-Manager für die durchgereichte GPU

Nvidia und AMD blockieren Treiber, wenn sie eine VM erkennen. Fix: füge <vendor_id state="on" value="1234567890ab"/> in der <features/>-Sektion der VM hinzu. Für Nvidia brauchst du außerdem <hyperv_relaxed state="on"/>, <vendor_id state="on"/> und hidden state="on" in den Hyper-V-Features.

❌ Meine GPU ist mit dem USB-Controller in einer IOMMU-Gruppe

Häufig bei älteren AMD-Boards. Du brauchst einen ACS-Override-Patch im Kernel, oder du nutzt vfio-pci.ids= um die ganze Gruppe auf einmal zu binden. Langfristig: neueres Motherboard mit besserer IOMMU-Segmentierung.

❌ Audio über HDMI/DP der durchgereichten GPU funktioniert nicht

Du musst beide durchreichen: den VGA-Controller und den Audio-Controller (meist 01:00.1). In Windows dann HDMI-Audio als Standard-Wiedergabegerät setzen.

❌ Performance nur 80% statt 95-99% von Bare-Metal

Prüfe folgendes:

  • hv_vendor_id=whatever in der Kernel-Cmdline
  • cpu host-passthrough in der VM-XML (nicht host-model)
  • CPU-Cores mit <vcpupin> an die VM pinnen
  • Hugepages nutzen: echo 1024 > /proc/sys/vm/nr_hugepages
  • Disk-Driver auf virtio (single-driver) und Cache auf writeback
❌ Geht Single-GPU-Passthrough (ohne zweite GPU)?

Ja, aber komplexer. Der Host muss die GPU vor dem VM-Start freigeben, und du brauchst eine vfio-pci.ids-Zeile im Bootloader, um sie vor dem Displaytreiber zu binden. Siehe die Single-GPU-Passthrough-Anleitung für das volle Verfahren.

❌ Anti-Cheat erkennt meine VM — was nun?

EAC und BattlEye unterstützen Linux/Wine/Proton offiziell — nutze Heroic / ProtonDB stattdessen. Vanguard (Valorant) und manche Kernel-Level-Anti-Cheats erkennen VM-Umgebungen. Es gibt keinen zuverlässigen Workaround jenseits der obigen Techniken.

❌ Mein CPU hat kein VT-d / AMD-Vi

GPU-Passthrough ist dann nicht möglich. Das IOMMU-Hardware-Feature ist zwingend erforderlich. Intel-Consumer-CPUs vor Haswell (4. Gen) und AMD vor Ryzen unterstützen es nicht. Siehe die CPU-Virtualisierungs-Liste.

❓ Brauchst du Hilfe?

Arch Wiki: PCI passthrough via OVMF ist die kanonische Referenz. Das r/VFIO Subreddit ist extrem hilfreich.