Proxmox NAB6 IOMMU Intel Graka an VM durchreichen

Moin Jakob,

Ich weiß nicht ob es für dich noch relevant ist ich kann ja trotzdem mein Vorgehen schildern falls es jemandem hilft:

Wie schon erwähnt habe ich mich an dem Guide von 3os.org langgehangelt. Hilfreich war außerdem der folgende Redditthread, da dieser User genau das macht was ich vorhabe (nur funktioniert es bei mir noch nicht so ganz :sweat_smile: - bin hier auch noch für Hilfe offen :wink: ).

Zunächst ist es wichtig das VT-d bzw. Virtualisierung durch eure CPU unterstützt und im BIOS aktiviert ist. (checkt das lieber zweimal :wink: )

Ich habe dann angefangen und die Datei /etc/default/grub mit dem folgenden ergänzt:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off disable_vga=1 vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915"
GRUB_CMDLINE_LINUX=""

Soweit ich das verstanden habe aktiviert die Zeile IOMMU für den Passthrough und sperrt für Proxmox jegliche Zugriffe auf die Treiber der iGPU aka sorgt dafür das Proxmox die iGPU nicht selbst verwendet.

Edit: Ich habe hierdurch noch keinerlei Nebenwirkungen auf mein restliches System und die anderen VM und LXC gespürt.

Ich weiß leider nicht genau wie das in der /etc/kernel/cmdline aussieht für Systeme die diese Verwenden. Ein User hat bei Reddit seine Konfig gepostet die kann ich aber nicht verifizieren:

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

Dann einmal update-grub ausführen (für den cmdline Weg müsste es dann wohl proxmox-boot-tool refresh sein wie gesagt durch mich nicht getestet).
Als nächstes habe ich die vfio modules in der Datei /etc/modules hinzugefügt:

vfio
vfio_pci
vfio_virqfd
vfio_iommu_type1

Dann musst du diese Config einmal mit update-initramfs -u -k all updaten und dann einmal neustarten.
Dann kann man mit dem Befehl dmesg | grep -e DMAR -e IOMMU testen ob IOMMU aktiv ist.
Es sollte da sowas stehen wie:

[    0.066683] DMAR: IOMMU enabled
[    0.160312] DMAR-IR: Enabled IRQ remapping in x2apic mode

Ich habe dann ganz normal meine VM Configuriert und die Grafikkarte als PCIE Device durchgereicht:




Wichtig dabei war das Display auf „none“ steht.
!!!Ihr könnt dann das VNC Feature von Proxmox nicht mehr verwenden und kommt nur noch via SSH an die VM rann. SSH sollte also vorher konfiguriert sein.

Dann die VM starten und mit cd /dev/dri && ls -l testen ob die Grafikkarte erkannt wurde. Der Output sollte ca so aussehen:

crw-rw---- 1 root render 226, 128 17. Mai 20:31 renderD128

Das Funktioniert auch mit lspci -nnv | grep VGA dann ist der Output:

01:00.0 VG`A compatible controller [0300]: Intel Corporation Alder Lake-P GT1 [UHD Graphics]

Ich habe für mein Vorhaben dann noch den Inteltreiber für das Encodieren installiert:

apt install intel-media-va-driver-non-free

Dann habe ich mir wie oben beschrieben die Doku von Jellyfin selbst angeschaut und jetzt stehe ich da wo ich stehe. :joy:

Ich hoffe das hilft dir.

LG Steven