Proxmox passes through Intel iGPU to Ubuntu Server 22.04 VM, but no kernel drivers are used or available

zaxolotl

New Member
Jun 29, 2023
1
0
1
I'm relatively new to Proxmox, so I may be missing something here, but I'm hoping someone might have some insight into what is going on. I have an HP Mini I run Proxmox on that hosts an Ubuntu Server 22.04 VM. I'd like to pass the integrated Intel HD 530 graphics card to this VM, to use QuickSync for transcoding in the VM. So far, I have updated my host's grub:

Bash:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt nox2apic"
GRUB_CMDLINE_LINUX=""

as well as added the vfio modules to /etc/modules:

Bash:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

From here, I've added the GPU as a PCI device to the VM in the PVE GUI, selecting 'All functions', 'ROM-Bar', and 'PCI Express'.

After rebooting the host, it does seem that it uses vfio for the card:

Bash:
# On host:
> lspci -v

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06) (prog-if 00 [VGA controller])
    DeviceName: Onboard IGD
    Subsystem: Hewlett-Packard Company HD Graphics 530
    Flags: fast devsel, IRQ 16, IOMMU group 1
    Memory at d0000000 (64-bit, non-prefetchable) [size=16M]
    Memory at c0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 4000 [size=64]
    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

And the card does appear in the VM now as well, however, it seems to have no kernel drivers available or loaded:

Bash:
# On VM:
> lspci -v

01:00.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06) (prog-if 00 [VGA controller])
    Subsystem: Hewlett-Packard Company HD Graphics 530
    Physical Slot: 0
    Flags: fast devsel, IRQ 10
    Memory at fb000000 (64-bit, non-prefetchable) [size=16M]
    Memory at e0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 5000 [size=64]
    Expansion ROM at fc000000 [disabled] [size=128K]
    Capabilities: [40] Vendor Specific Information: Len=0c <?>
    Capabilities: [70] Express Endpoint, MSI 00
    Capabilities: [ac] MSI: Enable- Count=1/1 Maskable- 64bit-
    Capabilities: [d0] Power Management version 2
    Capabilities: [100] Null
    Capabilities: [200] Address Translation Service (ATS)
    Capabilities: [300] Page Request Interface (PRI)

Trying to load the driver with modprobe results in an error that it is not found:

Bash:
> sudo modprobe i915

modprobe: FATAL: Module i915 not found in directory /lib/modules/5.15.0-76-generic

At this point, I wonder if it may be something specific to the VM, as the hardware seems to be being found, but the drivers are not, though they are supposed to be included in the Linux kernel from my understanding. Before passthrough, the graphics card would load the driver properly on the Proxmox host, though it is using a different kernel version (5.15.108-1 on the host vs. 5.15.0-76 on the VM). Would anyone have any suggestions as to where to go from here?
 
Last edited:
I've just hit the same point as you. I'm on pve8. Both Nic and igpu passthrough successfully but can't get the ketnel driver going in the vm for the igpu

This is what lspci -nnk shows me

Code:
06:08.0 Communication controller [0780]: Red Hat, Inc. Virtio console [1af4:1003]
        Subsystem: Red Hat, Inc. Virtio console [1af4:0003]
        Kernel driver in use: virtio-pci
06:10.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92]
        Subsystem: Gigabyte Technology Co., Ltd CometLake-S GT2 [UHD Graphics 630] [1458:d000]
06:12.0 Ethernet controller [0200]: Red Hat, Inc. Virtio network device [1af4:1000]
        Subsystem: Red Hat, Inc. Virtio network device [1af4:0001]
        Kernel driver in use: virtio-pci
 
Last edited:
Ok so upon further faffing, I realised the issue could be the cloudimg I was using. The ubuntu cloud image I was using is built for virtual environments and does not have the i915 kernel module built in. I did a sudo apt install linux-generic ... and on the next reboot ... it has loaded the kernel driver.
 
  • Like
Reactions: kriegster
I see this
Ok so upon further faffing, I realised the issue could be the cloudimg I was using. The ubuntu cloud image I was using is built for virtual environments and does not have the i915 kernel module built in. I did a sudo apt install linux-generic ... and on the next reboot ... it has loaded the kernel driver.
hi is it still working? I have a similar UHD30 GPU but can't seem to load it's drivers...
 

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!