Intel vGPU Passthrough not working

rknall

New Member
Oct 9, 2024
5
0
1
This drives me crazy. It has been posted a bunch of times but apparently I found the 99th time that is not working. What I did so far is check the following:

First I've checked if my CPU and System can support it (according to https://www.thomas-krenn.com/de/wiki/Virtualisierungsfunktion_Intel_VT-x_aktivieren):

  • Does the CPU support VT-d? Yes, it is a Skylake and vmx is present
  • Has the BIOS enabled VT-d? Yes, rdmsr -c 0x3a delivers 5, which means the flags are set
Now I've checked for IOMMU according to the Proxmox help

Bash:
dmesg | grep -e DMAR -e IOMMU

delivers

Bash:
root@pve3:~# dmesg | grep -e DMAR -e IOMMU
[    0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[    0.055017] DMAR: IOMMU enabled

Now it is getting interesting, no IOMMU groups have been created

Code:
root@pve3:~# ls -l /sys/kernel/iommu_groups/
total 0

x2apic was an issue (IRQ remapping)

Code:
root@pve3:~# dmesg | grep 'remapping'
[    0.156253] x2apic: IRQ remapping doesn't support X2APIC mode

That's when I added nox2apic as a kernel boot parameter and additionally ensured, that i915 is blacklisted by the kernel.

Now after booting I get no message on remapping, but it is still not working, and there are still no iommu groups.

I have no more ideas. I am sure I am missing something, but no idea what it could be.

any help would be appreciated
cheers, Roland
 
Please share the exact model of your CPU and mainboard as well as cat /proc/cmdline. Why check with a command? Look in the UEFI itself if IOMMU is enabled.
 
Last edited:
Please share the exact model of your CPU and mainboard as well as cat /proc/cmdline.

This is the exact boot string

Code:
BOOT_IMAGE=/boot/vmlinuz-6.8.12-13-pve root=/dev/mapper/pve-root ro quiet nox2apic intel_iommu=on i915.enable_gvt=1 iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesa:off vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,i915

The system is a Lenovo ThinkCentre M700 - 10GR005HGE running

Code:
     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
          vendor: Intel Corp.

and the mainboard is

Code:
  *-core
       description: Motherboard
       product: 30D9
       vendor: LENOVO
       physical id: 0
       version: SDK0J40705 WIN 3425069577341
       slot: Default string
     *-firmware
          description: BIOS
          vendor: LENOVO
          physical id: 0
          version: M05KT95A
          date: 11/09/2022
          size: 64KiB
          capacity: 6MiB
          capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification uefi

fwupdmgr does not find any new firmware:

Code:
root@pve3:~# fwupdmgr get-updates
Devices with no available firmware updates:
 • System Firmware
 • UEFI Device Firmware
 • UEFI dbx
No updatable devices

and as I set, the flags from the bios seem to be set correctly.
 
Why did you just create a completely new thread, for the exactly same topic? Do you think, that creating just thread after thread will magically solve your problem?
 
I found others having similar issues.
- https://www.reddit.com/r/Lenovo/s/CDPAS3peIx
- https://forums.lenovo.com/t5/ThinkC...options-different-between/td-p/4290079?page=1

Does VT-d show up in your UEFI or not?
From what I can tell the command only checks for VT-x, not VT-d. That's a lot of kernel arguments, by the way. What do you want to do with the iGPU? Maybe you can use a CT instead? I generally recommend that, especially for iGPU only systems, anyways unless you have special requirements.
 
Last edited:
Why did you just create a completely new thread, for the exactly same topic? Do you think, that creating just thread after thread will magically solve your problem?
You mean with the same topic? I definitely did not do it on purpose. As for the general topic, I've searched for an hour through the forum and did not find a solution that fitted and most topics where closed for some time.
 
I found others having similar issues.
- https://www.reddit.com/r/Lenovo/s/CDPAS3peIx
- https://forums.lenovo.com/t5/ThinkC...options-different-between/td-p/4290079?page=1

Does VT-d show up in your UEFI or not?
From what I can tell the command only checks for VT-x, not VT-d. That's a lot of kernel arguments, by the way. What do you want to do with the iGPU? Maybe you can use a CT instead? I generally recommend that, especially for iGPU only systems, anyways unless you have special requirements.
I'Ve just put the ones in from the original guide a while ago.

I switched to an VM (it worked in a CT btw) because I've tried multiple USB drive passthroughs to the CT and none worked as they should for the utility inside the CT. So back to this. On my second system I mostly use the same with CTs and am happy with that. Is another manufacturer and generation though.

Thanks for the pointers, I did not find those initially, but will give it a try.
 
What kind of USB device is it?

I've tried with three different external USB DVD drives. None of them wanted to pass through. I've got a bunch of other USB devices successfully passed through, but the software I need to use in the container requires a level of access that seems to be an issue in such cases (it is a proprietary software, company intern only). They are trying to figure it out for the software, but in the meantime this is where I am at.
 
Same here, my Windows VM's are on a Pi4 and I need to be able to copy DVD's (Files only, not media) to the network drive. Managed to get a SATA internal DVD working (on Proxmox8) but files were corrupt and would not copy. Also tried an external USB C Type on the proxmox server but when I tried to add it as a USB device notting wouls show up, even in shell lsusb notting. I'm going to try add the external USB to the Pi4 probably work tht way but be slow.
Ideally what I want is a DVD like on a NAS box with an RJ45 network port that can be picked up by the Virtual Windows.