terramaster f2-423 + proxmox / N5095 igpu passthrough issue

aixz

Member
Mar 28, 2022
11
1
8
Hello, i've read many threads about passthrough issues with these iGPU's, what's disturbing is despite most of people fail at passthrough, some succeed :) After trying many guides, I think my system is a bit overloaded with non useful config files / parameters. Could someone who was successful with this CPU family help me with cleaning and finding the right config ? My ultimate goal is passthrough a windows 11 VM, but if it's not possible, a Ubuntu 22.10 would be ok :) Last usecase, if none of these 2 is possible, passthrough the iGPU to a Jellyfin container :)

for the time being, I have a no signal / black screen when i passthrough a VM (win11 or ubuntu)

PS: sorry for the LONG post. Thanks in advance !

####### CONFIGURATION: ########

Kernel Version
Linux 6.1.10-1-pve #1 SMP PREEMPT_DYNAMIC PVE 6.1.10-1 (2023-02-07T00:00Z)
pve-manager/7.3-6/723bb6ec

/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

files inside /etc/modprobe.d:

blacklist.conf:

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
blacklist nouveau
blacklist nvidia
(yes, nvidia is not needed as i've only a iGPU)

kvm.conf:
options kvm ignore_msrs=1 report_ignored_msrs=0

pve-blacklist.conf:
# This file contains a list of modules which are not supported by Proxmox VE

# nidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

vfio.conf:
options vfio-pci ids=, disable_vga=1

iommu_unsafe_interrupts.conf:
options vfio_iommu_type1 allow_unsafe_interrupts=1

######## COMMANDS ##########

dmesg | grep -i iommu:
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.1.10-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt
[ 0.058360] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.1.10-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt
[ 0.058418] DMAR: IOMMU enabled
[ 0.134247] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
[ 0.369199] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
[ 0.403035] iommu: Default domain type: Passthrough (set via kernel command line)
[ 0.452539] DMAR: IOMMU feature fl1gp_support inconsistent
[ 0.452540] DMAR: IOMMU feature pgsel_inv inconsistent
[ 0.452541] DMAR: IOMMU feature nwfs inconsistent
[ 0.452542] DMAR: IOMMU feature pds inconsistent
[ 0.452543] DMAR: IOMMU feature eafs inconsistent
[ 0.452543] DMAR: IOMMU feature prs inconsistent
[ 0.452544] DMAR: IOMMU feature nest inconsistent
[ 0.452545] DMAR: IOMMU feature mts inconsistent
[ 0.452545] DMAR: IOMMU feature sc_support inconsistent
[ 0.452546] DMAR: IOMMU feature dev_iotlb_support inconsistent
[ 0.452734] pci 0000:00:02.0: Adding to iommu group 0
[ 0.452781] pci 0000:00:00.0: Adding to iommu group 1
[ 0.452789] pci 0000:00:04.0: Adding to iommu group 2
[ 0.452798] pci 0000:00:08.0: Adding to iommu group 3
[ 0.452824] pci 0000:00:14.0: Adding to iommu group 4
[ 0.452832] pci 0000:00:14.2: Adding to iommu group 4
[ 0.452839] pci 0000:00:14.5: Adding to iommu group 4
[ 0.452850] pci 0000:00:16.0: Adding to iommu group 5
[ 0.452858] pci 0000:00:17.0: Adding to iommu group 6
[ 0.452888] pci 0000:00:1c.0: Adding to iommu group 7
[ 0.452917] pci 0000:00:1c.1: Adding to iommu group 8
[ 0.452945] pci 0000:00:1c.4: Adding to iommu group 9
[ 0.452973] pci 0000:00:1c.5: Adding to iommu group 10
[ 0.452992] pci 0000:00:1f.0: Adding to iommu group 11
[ 0.453000] pci 0000:00:1f.3: Adding to iommu group 11
[ 0.453008] pci 0000:00:1f.4: Adding to iommu group 11
[ 0.453016] pci 0000:00:1f.5: Adding to iommu group 11
[ 0.453044] pci 0000:01:00.0: Adding to iommu group 12
[ 0.453073] pci 0000:02:00.0: Adding to iommu group 13
[ 0.453101] pci 0000:03:00.0: Adding to iommu group 14
[ 0.453130] pci 0000:04:00.0: Adding to iommu group 15

lspci -nnkv -s 00:02

00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:4e55] (rev 01) (prog-if 00 [VGA controller])
DeviceName: Onboard - Video
Subsystem: Intel Corporation Device [8086:2212]
Flags: fast devsel, IRQ 16, IOMMU group 0
Memory at 6000000000 (64-bit, non-prefetchable) [size=16M]
Memory at 4000000000 (64-bit, prefetchable) [size=256M]
I/O ports at 3000
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Kernel driver in use: vfio-pci
Kernel modules: i915


for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
IOMMU group 0 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:4e55] (rev 01)
IOMMU group 10 00:1c.5 PCI bridge [0604]: Intel Corporation Device [8086:4dbd] (rev 01)
IOMMU group 11 00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:4d87] (rev 01)
IOMMU group 11 00:1f.3 Audio device [0403]: Intel Corporation Device [8086:4dc8] (rev 01)
IOMMU group 11 00:1f.4 SMBus [0c05]: Intel Corporation Device [8086:4da3] (rev 01)
IOMMU group 11 00:1f.5 Serial bus controller [0c80]: Intel Corporation Device [8086:4da4] (rev 01)
IOMMU group 12 01:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
IOMMU group 13 02:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
IOMMU group 14 03:00.0 Non-Volatile memory controller [0108]: Micron/Crucial Technology Device [c0a9:540a] (rev 01)
IOMMU group 15 04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 [144d:a808]
IOMMU group 1 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4e24]
IOMMU group 2 00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:4e03]
IOMMU group 3 00:08.0 System peripheral [0880]: Intel Corporation Device [8086:4e11]
IOMMU group 4 00:14.0 USB controller [0c03]: Intel Corporation Device [8086:4ded] (rev 01)
IOMMU group 4 00:14.2 RAM memory [0500]: Intel Corporation Device [8086:4def] (rev 01)
IOMMU group 4 00:14.5 SD Host controller [0805]: Intel Corporation Device [8086:4df8] (rev 01)
IOMMU group 5 00:16.0 Communication controller [0780]: Intel Corporation Device [8086:4de0] (rev 01)
IOMMU group 6 00:17.0 SATA controller [0106]: Intel Corporation Device [8086:4dd3] (rev 01)
IOMMU group 7 00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:4db8] (rev 01)
IOMMU group 8 00:1c.1 PCI bridge [0604]: Intel Corporation Device [8086:4db9] (rev 01)
IOMMU group 9 00:1c.4 PCI bridge [0604]: Intel Corporation Device [8086:4dbc] (rev 01)
 
Last edited:
I am using this.

Install opt-In Kernel 6.1 for Proxmox

/etc/default/grub
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init intel_iommu=on iommu=pt"
/etc/modeprobe.d/i915.conf
Code:
options i915 enable_guc=3
/etc/modules
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Code:
update-grub
reboot

If you want to passthrough to LXC
/etc/pve/lxc
add to the LXC conf file
Code:
# Allow cgroup access
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm

# Pass through device files
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file

Boot up the container (I use Debian)
/etc/apt/sources.list
add non-free
Code:
deb http://ftp.debian.org/debian bullseye main contrib non-free
deb http://ftp.debian.org/debian bullseye-updates main contrib non-free
deb http://security.debian.org bullseye-security main contrib non-free
then
Code:
apt-update
apt install intel-media-va-driver-non-free

You should have hardware encoding enabled, just install Jellyfin / Plex / Emby / tdarr and enjoy...
Hopefully.
 
Last edited:
thanks!
I managed to passthrough the iGPU with a jellyfin LXC. Now i'm wondering if passing through a VM is possible on the same node, because if I blacklist i915 from proxmox, it won't be available for jellyfin ? anyway I couldn't manage to pass iGPU for a VM yet ....

I am using this.

/etc/default/grub


Code:

GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init intel_iommu=on iommu=pt"

what's the purpose of this ? :
quiet initcall_blacklist=sysfb_init
 
Last edited:
Code:
initcall_blacklist=sysfb_init
replaces
Code:
video=vesafb:off video=efifb:off
parameters

I believe this also allows you to passthru to VM, but I am not sure, as I have not tried.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!