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
bashefibootmgr -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
bashnano /etc/default/grub
Dla procesorów Intel zmodyfikuj linię GRUB_CMDLINE_LINUX_DEFAULT:
bashGRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
Dla procesorów AMD użyj:
bashGRUB_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:
bashupdate-grub
Dla systemów z systemd-boot:
Edytuj plik parametrów jądra:gist.github+1
bashnano /etc/kernel/cmdline
Dodaj parametry IOMMU do istniejącej linii. Przykład dla Intel:
bashroot=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on iommu=pt
Dla AMD:
bashroot=ZFS=rpool/ROOT/pve-1 boot=zfs quiet iommu=pt
Odśwież konfigurację bootloadera:
bashproxmox-boot-tool refresh
Krok 4: Konfiguracja modułów VFIO
Dodaj wymagane moduły VFIO do automatycznego ładowania przy starcie systemu:virtualizationhowto+1
bashnano /etc/modules
Dodaj następujące linie na końcu pliku:
bashvfio vfio_iommu_type1 vfio_pci vfio_virqfd
Krok 5: Konfiguracja dodatkowych opcji VFIO (opcjonalne)
Dla lepszej kompatybilności można dodać dodatkowe opcje:kovaskyyoutube
bashecho "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
bashupdate-initramfs -u
Uruchom ponownie serwer Proxmox:
bashreboot
Krok 7: Weryfikacja konfiguracji
Po ponownym uruchomieniu zweryfikuj poprawność konfiguracji:pve.proxmox+1
Sprawdzenie czy IOMMU jest włączone:
bashdmesg | grep -e DMAR -e IOMMU
Powinieneś zobaczyć komunikat podobny do:
-
Dla Intel:
DMAR: IOMMU enabled -
Dla AMD:
AMD-Vi: IOMMU enabled
Sprawdzenie remapowania przerwań:
bashdmesg | grep 'remapping'
Powinieneś zobaczyć:
-
AMD-Vi: Interrupt remapping enabled(AMD) -
DMAR-IR: Enabled IRQ remapping in x2apic mode(Intel)
Sprawdzenie modułów VFIO:
bashlsmod | grep vfio
Sprawdzenie grup IOMMU:
bashfind /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”
-
Sprawdź czy VT-d/AMD-Vi jest włączone w BIOSlevel1techs+1
-
Zweryfikuj poprawność parametrów jądra
-
Upewnij się, że wykonałeś
update-grublubproxmox-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
-
Przenieś kartę do innego slotu PCIe
-
Włącz ACS w BIOS
-
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
bashproxmox-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ń.
- https://pve.proxmox.com/wiki/PCI(e)_Passthrough
- https://www.vinchin.com/vm-tips/pci-passthrough-proxmox.html
- https://gist.github.com/vadimstasiev/fee3decb3d397ab806f46e9c6c6da82c
- https://www.reddit.com/r/Proxmox/comments/1brl7vw/guide_how_to_enable_iommu_for_pci_passthrough/
- https://forum.proxmox.com/threads/problems-with-iommu-being-detected.152368/
- https://matthewdeporter.com/proxmox/proxmox-pci-passthrough/
- https://www.virtualizationhowto.com/2023/10/proxmox-gpu-passthrough-step-by-step-guide/
- https://kovasky.me/blogs/rtx_5000_passthrough/
- https://www.youtube.com/watch?v=IE0ew8WwxLM
- https://pve.proxmox.com/wiki/PCI_Passthrough
- https://forum.level1techs.com/t/proxmox-no-iommu-detected-please-activate-it/179947
- https://forum.proxmox.com/threads/no-iommu-detected-please-activate-it.121788/
- https://pve.proxmox.com/wiki/Upgrade_from_8_to_9
- https://www.reddit.com/r/Proxmox/comments/1myltfx/kernel_panic_after_upgrading_pve_from_8_to_9/
- https://www.youtube.com/watch?v=cl8kH2LNEaI
- https://forum.proxmox.com/threads/iommu-grub-config-not-working.125325/
- https://forum.proxmox.com/threads/enable-iommu.125560/
- https://www.reddit.com/r/Proxmox/comments/1mjer1r/solved_proxmox_84_90_gpu_passthrough_host_freeze/
- https://forum.proxmox.com/tags/iommu/
- https://forum.proxmox.com/tags/grub/
- https://forum.proxmox.com/threads/proxmox-9-gpu-pass-through.169151/
- https://www.youtube.com/watch?v=_hOBAGKLQkI
- https://pve.proxmox.com/wiki/NVIDIA_vGPU_on_Proxmox_VE
- https://www.reddit.com/r/Proxmox/comments/18jx465/trouble_with_enabling_iommu_pcie_passthrough_81/
- https://www.reddit.com/r/VFIO/comments/1bw7t5a/troubleshooting_vfio_passthrough_setup_on_proxmox/
- https://forum.proxmox.com/threads/proxmox-ve-9-0-beta-released.168619/page-2
- https://getcyber.me/posts/nvidia-gpu-passthrough-to-debian-vm-on-proxmox/
- https://forum.proxmox.com/threads/kernel-apt-problems-6-8-12-8-pve-to-6-8-12-9-pve.164109/
- https://forum.proxmox.com/threads/out-of-memory-on-boot-with-kernel-6-8.152306/
- https://pve.proxmox.com/pve-docs/pve-admin-guide.html
- https://forum.proxmox.com/threads/upgrade-to-kernel-6-8-4-2-failed.145931/
- https://www.reddit.com/r/Proxmox/comments/10iqf3s/gpu_passthrough_cant_even_get_iommu_enabled/
- https://pve.proxmox.com/wiki/Roadmap
- https://www.reddit.com/r/Proxmox/comments/1mktavb/proxmox_9_upgrade_failed_to_boot/






Leave a Reply