Instrukcja włączania IOMMU w Proxmox VE 9

Ta instrukcja przedstawia kompletny proces włączania IOMMU (Intel VT-d / AMD-Vi) w Proxmox VE 9 dla potrzeb PCI passthrough.

Krok 1: Włączenie IOMMU w BIOS/UEFI

Przed konfiguracją systemu operacyjnego należy włączyć obsługę IOMMU na poziomie sprzętowym:pve.proxmox+1

Dla procesorów Intel:

  • Znajdź opcję VT-d lub Intel Virtualization Technology for Directed I/O

  • Włącz VT-x (Intel Virtualization Technology)

  • Opcjonalnie włącz ACS (Access Control Services) dla lepszej izolacji urządzeń

Dla procesorów AMD:

  • Włącz SVM Mode lub AMD-Vi

  • Opcjonalnie włącz IOMMU bezpośrednio jeśli dostępna

Zapisz ustawienia i uruchom ponownie system.

Krok 2: Określenie typu bootloadera

Proxmox VE może używać GRUB lub systemd-boot. Sprawdź aktualny bootloader:vinchin+1

bash
efibootmgr -v

Jeśli w wyniku widać systemd-boot, używasz systemd-boot. W przeciwnym przypadku używasz GRUB.

Krok 3: Konfiguracja parametrów jądra

Dla systemów z GRUB (najczęściej używane):

Edytuj plik konfiguracyjny GRUB:reddit+1

bash
nano /etc/default/grub

Dla procesorów Intel zmodyfikuj linię GRUB_CMDLINE_LINUX_DEFAULT:

bash
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

Dla procesorów AMD użyj:

bash
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Uwaga: W jądrze 6.8 i nowszych (używane w Proxmox VE 9) parametr intel_iommu=on jest włączony domyślnie dla procesorów Intel, ale dodanie go jawnie zapewnia kompatybilność.proxmox+1

Zapisz plik i wykonaj:

bash
update-grub

Dla systemów z systemd-boot:

Edytuj plik parametrów jądra:gist.github+1

bash
nano /etc/kernel/cmdline

Dodaj parametry IOMMU do istniejącej linii. Przykład dla Intel:

bash
root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on iommu=pt

Dla AMD:

bash
root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet iommu=pt

Odśwież konfigurację bootloadera:

bash
proxmox-boot-tool refresh

Krok 4: Konfiguracja modułów VFIO

Dodaj wymagane moduły VFIO do automatycznego ładowania przy starcie systemu:virtualizationhowto+1

bash
nano /etc/modules

Dodaj następujące linie na końcu pliku:

bash
vfio vfio_iommu_type1 vfio_pci vfio_virqfd

Krok 5: Konfiguracja dodatkowych opcji VFIO (opcjonalne)

Dla lepszej kompatybilności można dodać dodatkowe opcje:kovaskyyoutube

bash
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf

Krok 6: Odbudowa initramfs i restart

Odbuduj initramfs aby załadować zmiany w modułach:matthewdeporter+1

bash
update-initramfs -u

Uruchom ponownie serwer Proxmox:

bash
reboot

Krok 7: Weryfikacja konfiguracji

Po ponownym uruchomieniu zweryfikuj poprawność konfiguracji:pve.proxmox+1

Sprawdzenie czy IOMMU jest włączone:

bash
dmesg | grep -e DMAR -e IOMMU

Powinieneś zobaczyć komunikat podobny do:

  • Dla Intel: DMAR: IOMMU enabled

  • Dla AMD: AMD-Vi: IOMMU enabled

Sprawdzenie remapowania przerwań:

bash
dmesg | grep 'remapping'

Powinieneś zobaczyć:

  • AMD-Vi: Interrupt remapping enabled (AMD)

  • DMAR-IR: Enabled IRQ remapping in x2apic mode (Intel)

Sprawdzenie modułów VFIO:

bash
lsmod | grep vfio

Sprawdzenie grup IOMMU:

bash
find /sys/kernel/iommu_groups/ -type l | sort -V | while read link; do group=$(echo $link | cut -d'/' -f5) device=$(basename $link) echo "IOMMU Group $group: $(lspci -nns $device)" done

Rozwiązywanie problemów

Problem: „No IOMMU detected”

  1. Sprawdź czy VT-d/AMD-Vi jest włączone w BIOSlevel1techs+1

  2. Zweryfikuj poprawność parametrów jądra

  3. Upewnij się, że wykonałeś update-grub lub proxmox-boot-tool refresh

Problem: Urządzenia w tej samej grupie IOMMU

Jeśli urządzenia nie są odpowiednio izolowane, można spróbować:pve.proxmox

  1. Przenieś kartę do innego slotu PCIe

  2. Włącz ACS w BIOS

  3. Jako ostateczność użyj parametru pcie_acs_override=downstream,multifunction

Problem z jądrem 6.14 w Proxmox VE 9

W przypadku problemów z najnowszym jądrem 6.14, można tymczasowo użyć starszego jądra 6.8:pve.proxmox+1

bash
proxmox-boot-tool kernel pin 6.8.12-13-pve

Po zakończeniu konfiguracji IOMMU będziesz mógł przypisywać urządzenia PCIe do maszyn wirtualnych poprzez interfejs webowy Proxmox lub wiersz poleceń.

  1. https://pve.proxmox.com/wiki/PCI(e)_Passthrough
  2. https://www.vinchin.com/vm-tips/pci-passthrough-proxmox.html
  3. https://gist.github.com/vadimstasiev/fee3decb3d397ab806f46e9c6c6da82c
  4. https://www.reddit.com/r/Proxmox/comments/1brl7vw/guide_how_to_enable_iommu_for_pci_passthrough/
  5. https://forum.proxmox.com/threads/problems-with-iommu-being-detected.152368/
  6. https://matthewdeporter.com/proxmox/proxmox-pci-passthrough/
  7. https://www.virtualizationhowto.com/2023/10/proxmox-gpu-passthrough-step-by-step-guide/
  8. https://kovasky.me/blogs/rtx_5000_passthrough/
  9. https://www.youtube.com/watch?v=IE0ew8WwxLM
  10. https://pve.proxmox.com/wiki/PCI_Passthrough
  11. https://forum.level1techs.com/t/proxmox-no-iommu-detected-please-activate-it/179947
  12. https://forum.proxmox.com/threads/no-iommu-detected-please-activate-it.121788/
  13. https://pve.proxmox.com/wiki/Upgrade_from_8_to_9
  14. https://www.reddit.com/r/Proxmox/comments/1myltfx/kernel_panic_after_upgrading_pve_from_8_to_9/
  15. https://www.youtube.com/watch?v=cl8kH2LNEaI
  16. https://forum.proxmox.com/threads/iommu-grub-config-not-working.125325/
  17. https://forum.proxmox.com/threads/enable-iommu.125560/
  18. https://www.reddit.com/r/Proxmox/comments/1mjer1r/solved_proxmox_84_90_gpu_passthrough_host_freeze/
  19. https://forum.proxmox.com/tags/iommu/
  20. https://forum.proxmox.com/tags/grub/
  21. https://forum.proxmox.com/threads/proxmox-9-gpu-pass-through.169151/
  22. https://www.youtube.com/watch?v=_hOBAGKLQkI
  23. https://pve.proxmox.com/wiki/NVIDIA_vGPU_on_Proxmox_VE
  24. https://www.reddit.com/r/Proxmox/comments/18jx465/trouble_with_enabling_iommu_pcie_passthrough_81/
  25. https://www.reddit.com/r/VFIO/comments/1bw7t5a/troubleshooting_vfio_passthrough_setup_on_proxmox/
  26. https://forum.proxmox.com/threads/proxmox-ve-9-0-beta-released.168619/page-2
  27. https://getcyber.me/posts/nvidia-gpu-passthrough-to-debian-vm-on-proxmox/
  28. https://forum.proxmox.com/threads/kernel-apt-problems-6-8-12-8-pve-to-6-8-12-9-pve.164109/
  29. https://forum.proxmox.com/threads/out-of-memory-on-boot-with-kernel-6-8.152306/
  30. https://pve.proxmox.com/pve-docs/pve-admin-guide.html
  31. https://forum.proxmox.com/threads/upgrade-to-kernel-6-8-4-2-failed.145931/
  32. https://www.reddit.com/r/Proxmox/comments/10iqf3s/gpu_passthrough_cant_even_get_iommu_enabled/
  33. https://pve.proxmox.com/wiki/Roadmap
  34. https://www.reddit.com/r/Proxmox/comments/1mktavb/proxmox_9_upgrade_failed_to_boot/