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.