[Help] Intel Integrated graphic passthrough

alexgoaga

Member
Mar 19, 2021
9
0
6
31
Hello,
I have an issue managing the iGPU passthrough feature on my tiny thinkcenter M73 (CPU : Intel(R) Core(TM) i3-4150T CPU , having an Intel® HD Graphics 4400 )

Currently im running

Code:
proxmox-ve: 7.3-1 (running kernel: 5.15.74-1-pve)
pve-manager: 7.3-3 (running version: 7.3-3/c3928077)
pve-kernel-5.15: 7.2-14
pve-kernel-helper: 7.2-14
pve-kernel-5.13: 7.1-9
pve-kernel-5.15.74-1-pve: 5.15.74-1
pve-kernel-5.13.19-6-pve: 5.13.19-15
pve-kernel-5.13.19-2-pve: 5.13.19-4
ceph-fuse: 15.2.15-pve1
corosync: 3.1.7-pve1
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown2: 3.1.0-1+pmx3
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.24-pve2
libproxmox-acme-perl: 1.4.2
libproxmox-backup-qemu0: 1.3.1-1
libpve-access-control: 7.2-5
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.3-1
libpve-guest-common-perl: 4.2-3
libpve-http-server-perl: 4.1-5
libpve-storage-perl: 7.3-1
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 5.0.0-3
lxcfs: 4.0.12-pve1
novnc-pve: 1.3.0-3
proxmox-backup-client: 2.3.1-1
proxmox-backup-file-restore: 2.3.1-1
proxmox-mini-journalreader: 1.3-1
proxmox-offline-mirror-helper: 0.5.0-1
proxmox-widget-toolkit: 3.5.3
pve-cluster: 7.3-1
pve-container: 4.4-2
pve-docs: 7.3-1
pve-edk2-firmware: 3.20220526-1
pve-firewall: 4.2-7
pve-firmware: 3.5-6
pve-ha-manager: 3.5.1
pve-i18n: 2.8-1
pve-qemu-kvm: 7.1.0-4
pve-xtermjs: 4.16.0-1
qemu-server: 7.3-1
smartmontools: 7.2-pve3
spiceterm: 3.2-2
swtpm: 0.8.0~bpo11+2
vncterm: 1.7-1
zfsutils-linux: 2.1.6-pve1

Currently i've used this
Code:
--SSH into Proxmox--

--Enable IOMMU--

nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
    - OR -
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

update-grub


--Enable VFIO--

nano /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd


--Blacklist Linux Host Drivers--


echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf

update-initramfs -u

--REBOOT Proxmox--

On a forum i've found and extra step do to :

Code:
# if your processor >= sandy then, (legacy mode)
machine:pc-i440fx-2.2
args: -device vfio-pci,host=00:02.0,addr=0x02
vga: none

Unfortunately after adding the PCI device from the list even if in the command "dmesg | grep -e DMAR -e IOMMU" the meesage is "DMAR: IOMMU enabled" on the web GUI i cannot star the VM due to message "TASK ERROR: cannot prepare PCI pass-through, IOMMU not present" . I've tried a few things found on google but none succeed.

I managed to find another error on my trials that kinda looks like the other one.
Code:
kvm: -device vfio-pci,host=00:02.0,addr=0x02: vfio 0000:00:02.0: no iommu_group found: No such file or directory
TASK ERROR: start failed: QEMU exited with code 1

What can i do / that would be the idea to tackle with this issue ? Im trying to passthrough to a W10 X64 VM

Other info :

Code:
VM config:
qm config 701

agent: 1
balloon: 0
boot: order=scsi0
cores: 2
cpulimit: 2
description: args%3A -device vfio-pci,host=00%3A02.0,addr=0x02%0Avga%3A none
machine: pc-i440fx-7.1
memory: 4096
meta: creation-qemu=7.1.0,ctime=1671793623
name: ThePathVM
net0: e1000=0E:91:65:A2:95:60,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsi0: local-lvm:vm-701-disk-0,cache=writeback,size=128G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=78976ea0-1714-438d-9b97-623b7284de3a
sockets: 1
startup: up=60,down=60
tablet: 1
vmgenid: d8425a7e-e7a2-436e-b678-0a56298502f3


lspci -v command returns :
Code:
00:02.0 VGA compatible controller: Intel Corporation 4th Generation Core Processor Family Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
        DeviceName:  Onboard IGD
        Subsystem: Lenovo 4th Generation Core Processor Family Integrated Graphics Controller
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at f000 [size=64]
        Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
        Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Capabilities: [a4] PCI Advanced Features
        Kernel modules: i915



Thank you for your time,
Alex
 
Last edited:
Unfortunately after adding the PCI device from the list even if in the command "dmesg | grep -e DMAR -e IOMMU" the meesage is "DMAR: IOMMU enabled" on the web GUI i cannot star the VM due to message "TASK ERROR: cannot prepare PCI pass-through, IOMMU not present" . I've tried a few things found on google but none succeed.
What is the output of cat /proc/cmdline? Is intel_iommu=on missing?
Otherwise, what is the output of for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done ? If there is only one group (numbered *) then VT-d is not enabled in the BIOS or intel_iommu=on is missing.
 
  • Like
Reactions: alexgoaga
What is the output of cat /proc/cmdline? Is intel_iommu=on missing?
Otherwise, what is the output of for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done ? If there is only one group (numbered *) then VT-d is not enabled in the BIOS or intel_iommu=on is missing.

the output of the cat /proc/cmdline


Code:
BOOT_IMAGE=/boot/vmlinuz-5.15.74-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on video=efifb:off



and the output for tthat super command :


Code:
IOMMU group * 00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM Controller [8086:0c00] (rev 06)
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Generation Core Processor Family Integrated Graphics Controller [8086:041e] (rev 06)
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 04)
00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I217-V [8086:153b] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 04)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d4)
00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 [8086:8c16] (rev d4)
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 [8086:8c26] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation H81 Express LPC Controller [8086:8c5c] (rev 04)
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [8086:8c02] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 04)
02:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b2] (rev 73)


I am almost certain sure that i've activated VT-d in bios but in 1:30h hours i will be back home from work and re-confirm if something was gone rogue
 
Last edited:
the output of the cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.15.74-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on video=efifb:off
It should be enabled in Proxmox, if it is enabled in the motherboard BIOS. Note that video=efifb:off does nothing since kernel 5.15.
and the output for tthat super command :
IOMMU group * ...
I am almost certain sure that i've activated VT-d in bios but in 1:30h hours i will be back home from work and re-confirm if something was gone rogue
Since intel_iommu=on is present, VT-d is most likely not fully enabled in BIOS. Make sure VT-x is also enabled. I don't know your motherboard so I can't lookup the manual to help find the sometimes hard to find settings.
 
  • Like
Reactions: alexgoaga
So there are some missing features in my bios and out on lenovo forums this info :
Code:
I took a look at the BIOS of a M73 SFF with an i5-4570.   It has a BIOS setting for VT-x, and when that it enabled, another setting for VT-d.   The SFF and Tower use a different BIOS than the Tiny, which appears not to support VT.

Seems to me that i hit another brick in the wall
 
Hi,
i'm in you identical situation with my lenovo x220 :
- Intel ® Core ™ i5-2520M
- Intel HD graphics 3000

Did you resolved?
 

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!