Proxmox NVIDIA Quadro GPU Passthrough

So richtest du NVIDIA Quadro GPU Passthrough in Proxmox ein

1. Voraussetzungen

  • Stelle sicher, dass dein Server-BIOS/UEFI IOMMU unterstützt.
  • Aktiviere VT-d (Intel) oder AMD-Vi (AMD) im BIOS/UEFI.
  • Eine funktionierende Proxmox VE-Installation.

2. IOMMU aktivieren

  1. Bearbeite die GRUB-Konfiguration:
    nano /etc/default/grub
  2. Füge die passenden Parameter hinzu:
    • Für Intel:
      GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
    • Für AMD:
      GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
  3. Aktualisiere GRUB und starte neu:
    update-grub reboot

3. NVIDIA-Treiber installieren

  1. Aktiviere non-free Repositories:
    echo "deb http://deb.debian.org/debian bookworm main contrib non-free-firmware" >> /etc/apt/sources.list
    echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
    apt update
  2. Installiere die NVIDIA-Treiber:
    apt install glx-alternative-nvidia

4. GPU an VFIO binden

  1. Identifiziere die GPU- und Audiogeräte-IDs:
    lspci -nnv | grep -i nvidia
  2. Erstelle eine VFIO-Konfiguration:
    echo "options vfio-pci ids=10de:1bbb,10de:10f0" > /etc/modprobe.d/vfio.conf
    Ersetze 10de:1bbb und 10de:10f0 mit den IDs deiner GPU und deines Audio-Geräts.
  3. Deaktiviere den nouveau-Treiber:
    echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.conf
    update-initramfs -u reboot

5. VM konfigurieren

  1. Bearbeite die Konfigurationsdatei der VM:
    nano /etc/pve/qemu-server/<VMID>.conf
  2. Füge die folgenden Zeilen hinzu:
    hostpci0: 01:00.0,pcie=1,x-vga=1
    hostpci1: 01:00.1,pcie=1 args: -device vfio-pci,host=01:00.0,multifunction=on,x-vga=on,rombar=0
    hidden=1
  3. Stelle sicher, dass vga entfernt oder auf none gesetzt ist.

6. Setup testen

  1. Starte die VM:
    qm start <VMID>
  2. Installiere NVIDIA-Treiber in der VM (falls Windows verwendet wird).
  3. Überprüfe die GPU-Funktionalität mit nvidia-smi.

7. Fehlerbehebung

  • Prüfe die Logs der VM auf Fehler:
    cat /var/log/pve/qemu-server/<VMID>.log
  • Überprüfe die VFIO-Bindung:
    lspci -nnk | grep -A 3 -i nvidia
  • Stelle sicher, dass der Pfad zur ROM-Datei korrekt ist, falls erforderlich.

8. Hinweise

  • Nutze find /sys/kernel/iommu_groups/ -type l, um die IOMMU-Gruppen zu überprüfen.
  • Für Windows-VMs füge -cpu host,kvm=off hinzu, um die Virtualisierung zu verbergen.