Skip to content

Instantly share code, notes, and snippets.

@scyto
Last active September 20, 2024 13:55
Show Gist options
  • Save scyto/e4e3de35ee23fdb4ae5d5a3b85c16ed3 to your computer and use it in GitHub Desktop.
Save scyto/e4e3de35ee23fdb4ae5d5a3b85c16ed3 to your computer and use it in GitHub Desktop.

Enable & Using vGPU Passthrough

This gist is almost entirely not unlike Derek Seaman's awesome blog:

Proxmox VE 8: Windows 11 vGPU (VT-d) Passthrough with Intel Alder Lake

As such please refer to that for pictures, here i will capture the command lines I used as i sequence the commands a little differently so it makes more logic to me.

This gists assumes you are not running ZFS and are not passing any other PCIE devices (as both of these can require addtional steps - see Derek's blog for more info)

This gist assumes you are not running proxmox in UEFI Secure boot - if you are please refer entirely to dereks blog.

ALSO pleas refere to the comments section as folks have found workarounds and probably corrections (if the mistakes remain in my write up it is because i have't yet tested the corrections)

Note:i made no changes to the BIOS defaults on the Intel Nuc 13th Gen. This just worked as-is.

this gist is part of this series

Preparation

Install Build Requirements

apt update && apt install pve-headers-$(uname -r)
apt install git sysfsutils dkms build-* unzip -y

Install Other Drivers / Tools

This allow you to run vainfo, intel_gpu_top for testing and non-free versions of the encoding driver - without this you will not AFAIK be able to encoding with this GPU. This was missed in EVERY guide i saw for this vGPU, so not sure, but i had terrible issues until i did this.

edits the sources list with nano /etc/apt/sources.list

add the following lines:

#non-free firmwares
deb http://deb.debian.org/debian bookworm non-free-firmware

#non-free drivers and components
deb http://deb.debian.org/debian bookworm non-free

and save the file

apt update && apt install intel-media-va-driver-non-free intel-gpu-tools vainfo

This next step copies a driver missing on proxmox installs and will remove the -2 error for this file in dmesg.

wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/adlp_dmc.bin

cp adlp_dmc.bin /lib/firmware/i915/

Compile and Install the new driver

Clone github project

cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git

modify dkms.conf

cd i915-sriov-dkms
nano dkms.conf

change these two lines as follows:

PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.5"

save the file

Compile and Install the Driver

cd ~
mv i915-sriov-dkms/ /usr/src/i915-sriov-dkms-6.5
dkms install --force -m i915-sriov-dkms -v 6.5

and use dkms status to verify the module is now installed

Modify grub

edit the grub fle with nano /etc/default/grub

change this line in the file

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7"

note: if you have already made modifications to this line in your grub file for other purposes you should also still keep those items

finally run

update-grub
update-initramfs -u

Find PCIe Bus and update sysfs.conf

use lspci | grep VGA t find the bus number

you should see something like this:

root@pve2:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)

take the number on the far left and add to the sysfs.conf as follows - note all the proceeding zeros on the bus path are needed

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf

REBOOT

Testing On Host

check devices

check devices with dmesg | grep i915

the last two lines should read as follows:

[    7.591662] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    7.591818] i915 0000:00:02.0: Enabled 7 VFs

if they don't then check all steps carefully

Validate with VAInfo

validate with vainfo you should see no errors (note this needs the drivers and tool i said to install at the top) and vainfo --display drm --device /dev/dri/cardN where N is a number from 0 to 7 - this will show you the acceleration endpoints for each VF

Check you can monitor the VFs - if not you have issues

monitor any VF renderer in real time with intel_gpu_top -d drm:/dev/dri/renderD128 there is one per VF - to see them all use ls -l /dev/dri

Configure vGPU Pool in Proxmox

  1. navigate to Datacenter > Resource Mappings
  2. click add in PCI devices
  3. name the pool something like vGPU-Pool
  4. map all 7 VFs for pve 1 but NOT the root device i.e 0000:00:02.x not 0000:00:02
  5. click create
  6. on the created pool lcikc the plus button next to vGPU-Pool
  7. select mapping on node = pve 2, ad all devices and click create
  8. repeat for pve3

The pool should now look like this:

image

Note: machines with PCI pass through devices cannot be live migrated, they must be shutdown, migrated offline to the new node and then started.

EVERYTIME THE KERNEL IS UPDATED IN PROXMOX YOU SHOULD DO THE FOLLOWING

update the kernel using proxox ui
dkms install -m i915-sriov-dkms -v 6.5 --force
reboot

How to get working in a privileged container

wow this one is hard.... you can avoid the id mapping stuff by not using a privileged container...

Assumptions:

  1. you have a debian 12 container, you added the non-free deb and have installed the non-free drivers as per the host instructions
  2. you have run cat /etc/groups in the container and noted down the GID for render (lets call that CTRGID) and gid for video (lets call that CTVGID).
  3. you have run cat /etc/groups in the container and noted down the GID for render (lets call that HSTRGID) and gid for video (lets call that HSTVGID). 5 that you have va info fully working

Create Container

  1. create container privileged, with debian 12, starts it
  2. apt update, apt upgrade, install non free drivers, vainfo and intel_gpu_top tools
  3. add root to user and video groups (this will mean when we get to ID mapping you don't need to tart about with user mappings - only group ones)
usermod -a -G render root
usermod -a -G video root
  1. shutdown container

Edit container conf file

  1. These are stored in /etc/pve/lxc and have the VMID.conf anme
  2. nano /etc/pve/lxc/VMID.conf

Add lxc device mapping

Here you add a line for the card uyou want and the rendere. Note if you map a VF (card) to a container it means that is hard mapped, if you have that VF in a pool for VMs please remove it from the pool (this means also these containers cannot be HA)

In the example below i chose card6 - which is renderD134 These are mapped into the container as card0 and renderD128 Change your numbers as per your own VF / card mappings

lxc.cgroup2.devices.allow: c 226:6 rwm
lxc.mount.entry: /dev/dri/card6 dev/dri/card0 none bind,optional,create=file

lxc.cgroup2.devices.allow: c 226:134 rwm
lxc.mount.entry: /dev/dri/renderD134 dev/dri/renderD128 none bind,optional,create=file

Add ID mapping (only needed in unprivileged)

  1. add the following... and here it gets complex as it will vary based on the numbers you recorded earlier - let me try... the aim is to have a continguois block of mappings but the syntax is um difficult...
lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 CTVGID
lxc.idmap: g CTVGID HSTVGID 1
lxc.idmap: g CTVGID+1 1000{CTVGID+1} CTRGID-CTVGID-1
lxc.idmap: g CTRGID HSTVGID 1
lxc.idmap: g CTRGID+1 100{CTRGID+1} 65536-{CTRGID+1}

so as an example, these are my values:

        host > ct
video:    44 > 44
render:  104 > 106

this is what i added to my VMID.conf file (in my case /etc/pve/lxc/107.conf

lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 44
lxc.idmap: g 44 44 1
lxc.idmap: g 45 100045 61
lxc.idmap: g 106 104 1
lxc.idmap: g 107 100107 65429
  1. add your two CT values to nano /etc/subgid (only needed in unprivileged)

in my case:

root:106:1
root:44:1

after this you should be able to start up the container and run vainfo and perform transcoding.

check permissions with ls -la /dev/dri it should look like this:

root@vGPU-debian-test:~# ls -la /dev/dri
total 0
drwxr-xr-x 2 root   root         80 Oct  7 00:22 .
drwxr-xr-x 7 root   root        500 Oct  7 00:22 ..
crw-rw-rw- 1 nobody video  226,   0 Oct  4 21:42 card0
crw-rw-rw- 1 nobody render 226, 128 Oct  4 21:42 renderD128

if the group names do not say video and render then you did something wrong

**Note: YYMV **

For example plex HW transcoded just fine on my system.

Emby on the otherhand seems to interrogate the kernel driver directly and gets the wrong answers - this is IMHO an issue with their detection logic not supporting this scenario.

Another example is intel_gpu_top which doesn't seem to work in this mode either - this is because it only works with the PMUs not the VFs (so somoene said)

Or maybe i just have no clue what i am doing, lol.

---work in progress 2023.10.6---

add vGPU to a Windows 11 or Server 2022 VM

  1. create VM with CPU set to host DO NOT CHANGE THIS
  2. boot VM without vGPU and display set to default
  3. install windows 11
  4. install VirtIO drivers [as of 4.6.2024 do not install guest tools - this may cause repair loops]
  5. shutdown VM and change display to VirtIO-GPU
  6. Now add the vGPU pool as a PCI device
  7. when creating a VM add a PCI device and add the poool as follows:

image

  1. now boot into VM and install latest IrisXe drivers from intel
  2. you should now have graphics acceleration availble to apps wether you connect by webcolse VNC, SPICE or an RDP client

From @rinze24:

If you follow the guide successfully, in Device Manager you will see:

  • Microsoft Basic Display Adapter - If you use Display in VM Settings
  • Intel iGPU - passthrough

You have 2 options (or more) to use your iGPU. Because Windows 11 decide on its own which graphics to use.

  1. Setup Remote Desktop Connection in Windows 11 and set the display to none in VM Hardware settings.
  • Pro: No configuration per app, Responsive Connection.
  • Con: No proxmox console.
  1. Inside Windows Set which graphics preference to use per application in Display Settings -> Graphics Settings-
  • Pro: Have proxmox console.
  • Con: Need to configure per application / program.

If you hit automatic repair loop at any point shutdown the machine and edit its conf file in /etc/pve/qemu-server and add args: -cpu Cooperlake,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,+vmx

@tristan-k
Copy link

tristan-k commented Jul 17, 2024

Anybody knows if Meteor Lake (Intel Ultra 7 155) is supported or will be supported in the futures? Thanks!

Right now the dkms module doesnt work. I'm running a ASUS NUC 14 Intel Core Ultra 5 125H.

dmesg | grep i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
[    0.065275] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
[    3.919271] i915: module verification failed: signature and/or required key missing - tainting kernel
[    4.234742] i915 0000:00:02.0: Running in SR-IOV PF mode
[    4.234920] i915 0000:00:02.0: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.235952] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    4.236076] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.236096] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.254244] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.263106] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.21)
[    4.269770] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC firmware i915/mtl_guc_70.6.4.bin: fetch failed -ENOENT
[    4.269782] i915 0000:00:02.0: [drm] GT0: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.270951] i915 0000:00:02.0: [drm] *ERROR* GT1: GuC firmware i915/mtl_guc_70.6.4.bin: fetch failed -ENOENT
[    4.270956] i915 0000:00:02.0: [drm] GT1: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.271546] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.6.4.bin version 0.0.0
[    4.271622] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC initialization failed -ENOENT
[    4.271624] i915 0000:00:02.0: [drm] *ERROR* GT0: Enabling uc failed (-5)
[    4.271626] i915 0000:00:02.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged!
[    4.301561] i915 0000:00:02.0: [drm:add_taint_for_CI [i915]] CI tainted:0x9 by intel_gt_set_wedged_on_init+0x34/0x50 [i915]
[    4.924342] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    4.925809] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.925935] i915 0000:00:02.0: [drm] *ERROR* GT0: IOV: Initialization failed (-EIO) GT wedged
[    4.925940] i915 0000:00:02.0: [drm:i915_sriov_pf_confirm [i915]] PF aborted (-EIO) i915_driver_probe+0xc19/0xdb0 [i915]
[    4.926111] i915 0000:00:02.0: No VFs could be associated with this PF!
[    4.958845] fbcon: i915drmfb (fb0) is primary device
[    5.032935] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device

I had to follow some additional steps to install the missing firmware but it still doesnt provide virtual functions for the Meteor Lake Arc iGPU.

mkdir firmware
cd firmware
wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -c -k all

EDIT:

I was wrong. The vf devices are there after I copied the missing firmware with cp /lib/firmware/i915/mtl_guc_70.bin /lib/firmware/i915/mtl_guc_70.6.4.bin. I'm unable to find a firmware file for mtl_guc_70.6.4.bin.

dmesg | grep i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.force_probe=7d55 i915.enable_guc=3 i915.max_vfs=7
[    0.065241] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.force_probe=7d55 i915.enable_guc=3 i915.max_vfs=7
[    3.937005] i915: module verification failed: signature and/or required key missing - tainting kernel
[    4.206351] i915 0000:00:02.0: Running in SR-IOV PF mode
[    4.206664] i915 0000:00:02.0: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.207799] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    4.207956] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.207991] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.230246] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.239040] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.21)
[    4.260914] i915 0000:00:02.0: [drm] *ERROR* GT1: HuC firmware i915/mtl_huc_8.4.3_gsc.bin: fetch failed -ENOENT
[    4.260925] i915 0000:00:02.0: [drm] GT1: HuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.260952] i915 0000:00:02.0: [drm] *ERROR* GT1: GSC firmware i915/mtl_gsc_102.0.0.1511.bin: fetch failed -ENOENT
[    4.260956] i915 0000:00:02.0: [drm] GT1: GSC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.265872] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.6.4.bin version 70.20.0
[    4.277351] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[    4.277355] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[    4.277566] i915 0000:00:02.0: [drm] GuC RC: enabled
[    4.284815] i915 0000:00:02.0: [drm] GT1: GuC firmware i915/mtl_guc_70.6.4.bin version 70.20.0
[    4.297383] i915 0000:00:02.0: [drm] GT1: GUC: submission enabled
[    4.297386] i915 0000:00:02.0: [drm] GT1: GUC: SLPC enabled
[    4.297464] i915 0000:00:02.0: [drm] GuC RC: enabled
[    4.342115] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    4.343682] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.343815] i915 0000:00:02.0: 7 VFs could be associated with this PF
[    4.375252] fbcon: i915drmfb (fb0) is primary device
[    4.456476] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    4.926313] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    4.926384] i915 0000:00:02.1: enabling device (0000 -> 0002)
[    4.926408] i915 0000:00:02.1: Running in SR-IOV VF mode
[    4.926409] i915 0000:00:02.1: [drm] Beware, driver is using hardcoded IPVER values!
[    4.926551] i915 0000:00:02.1: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.927407] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.927542] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.929804] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.929875] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.930651] i915 0000:00:02.1: [drm] VT-d active for gfx access
[    4.930679] i915 0000:00:02.1: [drm] Using Transparent Hugepages
[    4.931344] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.931417] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.931925] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.931927] i915 0000:00:02.1: HuC firmware N/A
[    4.936969] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.937044] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.937323] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.937325] i915 0000:00:02.1: HuC firmware DISABLED
[    4.939705] i915 0000:00:02.1: [drm] PMU not supported for this GPU.
[    4.939931] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.1 on minor 1
[    4.940241] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.940244] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.940303] i915 0000:00:02.2: enabling device (0000 -> 0002)
[    4.940314] i915 0000:00:02.2: Running in SR-IOV VF mode
[    4.940315] i915 0000:00:02.2: [drm] Beware, driver is using hardcoded IPVER values!
[    4.940356] i915 0000:00:02.2: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.940728] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.940808] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.941469] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.941517] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.942390] i915 0000:00:02.2: [drm] VT-d active for gfx access
[    4.942408] i915 0000:00:02.2: [drm] Using Transparent Hugepages
[    4.943248] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.943321] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.943834] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.943836] i915 0000:00:02.2: HuC firmware N/A
[    4.946628] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.946701] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.946975] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.946977] i915 0000:00:02.2: HuC firmware DISABLED
[    4.948490] i915 0000:00:02.2: [drm] PMU not supported for this GPU.
[    4.948647] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.2 on minor 2
[    4.948930] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.948933] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.948936] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.948989] i915 0000:00:02.3: enabling device (0000 -> 0002)
[    4.948999] i915 0000:00:02.3: Running in SR-IOV VF mode
[    4.949000] i915 0000:00:02.3: [drm] Beware, driver is using hardcoded IPVER values!
[    4.949038] i915 0000:00:02.3: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.949161] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.949245] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.949822] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.949890] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.950464] i915 0000:00:02.3: [drm] VT-d active for gfx access
[    4.950481] i915 0000:00:02.3: [drm] Using Transparent Hugepages
[    4.950823] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.951193] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.951734] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.951735] i915 0000:00:02.3: HuC firmware N/A
[    4.953805] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.953876] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.954137] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.954138] i915 0000:00:02.3: HuC firmware DISABLED
[    4.955702] i915 0000:00:02.3: [drm] PMU not supported for this GPU.
[    4.955923] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.3 on minor 3
[    4.956163] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.956166] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.956169] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.956171] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.956215] i915 0000:00:02.4: enabling device (0000 -> 0002)
[    4.956225] i915 0000:00:02.4: Running in SR-IOV VF mode
[    4.956226] i915 0000:00:02.4: [drm] Beware, driver is using hardcoded IPVER values!
[    4.956325] i915 0000:00:02.4: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.956465] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.956547] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.957133] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.957209] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.957651] i915 0000:00:02.4: [drm] VT-d active for gfx access
[    4.957671] i915 0000:00:02.4: [drm] Using Transparent Hugepages
[    4.958022] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.958384] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.958792] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.958793] i915 0000:00:02.4: HuC firmware N/A
[    4.960626] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.960699] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.960964] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.960966] i915 0000:00:02.4: HuC firmware DISABLED
[    4.962396] i915 0000:00:02.4: [drm] PMU not supported for this GPU.
[    4.962629] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.4 on minor 4
[    4.962915] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.962919] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962922] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962925] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962928] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.962976] i915 0000:00:02.5: enabling device (0000 -> 0002)
[    4.962989] i915 0000:00:02.5: Running in SR-IOV VF mode
[    4.962990] i915 0000:00:02.5: [drm] Beware, driver is using hardcoded IPVER values!
[    4.963029] i915 0000:00:02.5: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.963156] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.963239] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.963821] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.963889] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.964309] i915 0000:00:02.5: [drm] VT-d active for gfx access
[    4.964321] i915 0000:00:02.5: [drm] Using Transparent Hugepages
[    4.964615] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.964681] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.965067] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.965068] i915 0000:00:02.5: HuC firmware N/A
[    4.966868] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.966925] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.967216] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.967219] i915 0000:00:02.5: HuC firmware DISABLED
[    4.968767] i915 0000:00:02.5: [drm] PMU not supported for this GPU.
[    4.968920] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.5 on minor 5
[    4.969188] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.969191] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969194] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969197] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969200] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969203] i915 0000:00:02.5: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.969250] i915 0000:00:02.6: enabling device (0000 -> 0002)
[    4.969262] i915 0000:00:02.6: Running in SR-IOV VF mode
[    4.969263] i915 0000:00:02.6: [drm] Beware, driver is using hardcoded IPVER values!
[    4.969296] i915 0000:00:02.6: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.969424] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.969504] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.970098] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.971314] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.973360] i915 0000:00:02.6: [drm] VT-d active for gfx access
[    4.973375] i915 0000:00:02.6: [drm] Using Transparent Hugepages
[    4.974009] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.975305] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.976816] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.976817] i915 0000:00:02.6: HuC firmware N/A
[    4.978603] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.979776] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.981155] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.981156] i915 0000:00:02.6: HuC firmware DISABLED
[    4.983602] i915 0000:00:02.6: [drm] PMU not supported for this GPU.
[    4.983682] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.6 on minor 6
[    4.983986] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.983989] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983992] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983995] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983998] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.984001] i915 0000:00:02.5: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.984004] i915 0000:00:02.6: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.984062] i915 0000:00:02.7: enabling device (0000 -> 0002)
[    4.984077] i915 0000:00:02.7: Running in SR-IOV VF mode
[    4.984078] i915 0000:00:02.7: [drm] Beware, driver is using hardcoded IPVER values!
[    4.984114] i915 0000:00:02.7: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.984247] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.985505] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.987249] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.988408] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.990382] i915 0000:00:02.7: [drm] VT-d active for gfx access
[    4.990396] i915 0000:00:02.7: [drm] Using Transparent Hugepages
[    4.990736] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.991875] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.993389] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.993391] i915 0000:00:02.7: HuC firmware N/A
[    4.995312] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.996445] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.997802] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.997803] i915 0000:00:02.7: HuC firmware DISABLED
[    4.999464] i915 0000:00:02.7: [drm] PMU not supported for this GPU.
[    4.999521] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    4.999696] i915 0000:00:02.0: Enabled 7 VFs
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.1 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.2 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.3 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.4 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.5 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.6 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.7 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)

@mm2293
Copy link

mm2293 commented Jul 17, 2024

Anybody knows if Meteor Lake (Intel Ultra 7 155) is supported or will be supported in the futures? Thanks!

Right now the dkms module doesnt work. I'm running a ASUS NUC 14 Intel Core Ultra 5 125H.

dmesg | grep i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
[    0.065275] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
[    3.919271] i915: module verification failed: signature and/or required key missing - tainting kernel
[    4.234742] i915 0000:00:02.0: Running in SR-IOV PF mode
[    4.234920] i915 0000:00:02.0: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.235952] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    4.236076] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.236096] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.254244] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.263106] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.21)
[    4.269770] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC firmware i915/mtl_guc_70.6.4.bin: fetch failed -ENOENT
[    4.269782] i915 0000:00:02.0: [drm] GT0: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.270951] i915 0000:00:02.0: [drm] *ERROR* GT1: GuC firmware i915/mtl_guc_70.6.4.bin: fetch failed -ENOENT
[    4.270956] i915 0000:00:02.0: [drm] GT1: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.271546] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.6.4.bin version 0.0.0
[    4.271622] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC initialization failed -ENOENT
[    4.271624] i915 0000:00:02.0: [drm] *ERROR* GT0: Enabling uc failed (-5)
[    4.271626] i915 0000:00:02.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged!
[    4.301561] i915 0000:00:02.0: [drm:add_taint_for_CI [i915]] CI tainted:0x9 by intel_gt_set_wedged_on_init+0x34/0x50 [i915]
[    4.924342] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    4.925809] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.925935] i915 0000:00:02.0: [drm] *ERROR* GT0: IOV: Initialization failed (-EIO) GT wedged
[    4.925940] i915 0000:00:02.0: [drm:i915_sriov_pf_confirm [i915]] PF aborted (-EIO) i915_driver_probe+0xc19/0xdb0 [i915]
[    4.926111] i915 0000:00:02.0: No VFs could be associated with this PF!
[    4.958845] fbcon: i915drmfb (fb0) is primary device
[    5.032935] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device

I had to follow some additional steps to install the missing firmware but it still doesnt provide virtual functions for the Meteor Lake Arc iGPU.

mkdir firmware
cd firmware
wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -c -k all

EDIT:

I was wrong. The vf devices are there after I copied the missing firmware with cp /lib/firmware/i915/mtl_guc_70.bin /lib/firmware/i915/mtl_guc_70.6.4.bin. I'm unable to find a firmware file for mtl_guc_70.6.4.bin.

dmesg | grep i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.force_probe=7d55 i915.enable_guc=3 i915.max_vfs=7
[    0.065241] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.5.13-3-pve root=/dev/mapper/pve-root ro quiet split_lock_detect=off intel_iommu=on iommu=pt i915.force_probe=7d55 i915.enable_guc=3 i915.max_vfs=7
[    3.937005] i915: module verification failed: signature and/or required key missing - tainting kernel
[    4.206351] i915 0000:00:02.0: Running in SR-IOV PF mode
[    4.206664] i915 0000:00:02.0: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.207799] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    4.207956] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.207991] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.230246] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.239040] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.21)
[    4.260914] i915 0000:00:02.0: [drm] *ERROR* GT1: HuC firmware i915/mtl_huc_8.4.3_gsc.bin: fetch failed -ENOENT
[    4.260925] i915 0000:00:02.0: [drm] GT1: HuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.260952] i915 0000:00:02.0: [drm] *ERROR* GT1: GSC firmware i915/mtl_gsc_102.0.0.1511.bin: fetch failed -ENOENT
[    4.260956] i915 0000:00:02.0: [drm] GT1: GSC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    4.265872] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.6.4.bin version 70.20.0
[    4.277351] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[    4.277355] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[    4.277566] i915 0000:00:02.0: [drm] GuC RC: enabled
[    4.284815] i915 0000:00:02.0: [drm] GT1: GuC firmware i915/mtl_guc_70.6.4.bin version 70.20.0
[    4.297383] i915 0000:00:02.0: [drm] GT1: GUC: submission enabled
[    4.297386] i915 0000:00:02.0: [drm] GT1: GUC: SLPC enabled
[    4.297464] i915 0000:00:02.0: [drm] GuC RC: enabled
[    4.342115] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    4.343682] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.343815] i915 0000:00:02.0: 7 VFs could be associated with this PF
[    4.375252] fbcon: i915drmfb (fb0) is primary device
[    4.456476] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    4.926313] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    4.926384] i915 0000:00:02.1: enabling device (0000 -> 0002)
[    4.926408] i915 0000:00:02.1: Running in SR-IOV VF mode
[    4.926409] i915 0000:00:02.1: [drm] Beware, driver is using hardcoded IPVER values!
[    4.926551] i915 0000:00:02.1: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.927407] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.927542] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.929804] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.929875] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.930651] i915 0000:00:02.1: [drm] VT-d active for gfx access
[    4.930679] i915 0000:00:02.1: [drm] Using Transparent Hugepages
[    4.931344] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.931417] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.931925] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.931927] i915 0000:00:02.1: HuC firmware N/A
[    4.936969] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.937044] i915 0000:00:02.1: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.937323] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.937325] i915 0000:00:02.1: HuC firmware DISABLED
[    4.939705] i915 0000:00:02.1: [drm] PMU not supported for this GPU.
[    4.939931] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.1 on minor 1
[    4.940241] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.940244] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.940303] i915 0000:00:02.2: enabling device (0000 -> 0002)
[    4.940314] i915 0000:00:02.2: Running in SR-IOV VF mode
[    4.940315] i915 0000:00:02.2: [drm] Beware, driver is using hardcoded IPVER values!
[    4.940356] i915 0000:00:02.2: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.940728] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.940808] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.941469] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.941517] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.942390] i915 0000:00:02.2: [drm] VT-d active for gfx access
[    4.942408] i915 0000:00:02.2: [drm] Using Transparent Hugepages
[    4.943248] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.943321] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.943834] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.943836] i915 0000:00:02.2: HuC firmware N/A
[    4.946628] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.946701] i915 0000:00:02.2: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.946975] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.946977] i915 0000:00:02.2: HuC firmware DISABLED
[    4.948490] i915 0000:00:02.2: [drm] PMU not supported for this GPU.
[    4.948647] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.2 on minor 2
[    4.948930] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.948933] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.948936] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.948989] i915 0000:00:02.3: enabling device (0000 -> 0002)
[    4.948999] i915 0000:00:02.3: Running in SR-IOV VF mode
[    4.949000] i915 0000:00:02.3: [drm] Beware, driver is using hardcoded IPVER values!
[    4.949038] i915 0000:00:02.3: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.949161] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.949245] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.949822] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.949890] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.950464] i915 0000:00:02.3: [drm] VT-d active for gfx access
[    4.950481] i915 0000:00:02.3: [drm] Using Transparent Hugepages
[    4.950823] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.951193] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.951734] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.951735] i915 0000:00:02.3: HuC firmware N/A
[    4.953805] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.953876] i915 0000:00:02.3: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.954137] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.954138] i915 0000:00:02.3: HuC firmware DISABLED
[    4.955702] i915 0000:00:02.3: [drm] PMU not supported for this GPU.
[    4.955923] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.3 on minor 3
[    4.956163] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.956166] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.956169] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.956171] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.956215] i915 0000:00:02.4: enabling device (0000 -> 0002)
[    4.956225] i915 0000:00:02.4: Running in SR-IOV VF mode
[    4.956226] i915 0000:00:02.4: [drm] Beware, driver is using hardcoded IPVER values!
[    4.956325] i915 0000:00:02.4: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.956465] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.956547] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.957133] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.957209] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.957651] i915 0000:00:02.4: [drm] VT-d active for gfx access
[    4.957671] i915 0000:00:02.4: [drm] Using Transparent Hugepages
[    4.958022] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.958384] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.958792] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.958793] i915 0000:00:02.4: HuC firmware N/A
[    4.960626] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.960699] i915 0000:00:02.4: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.960964] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.960966] i915 0000:00:02.4: HuC firmware DISABLED
[    4.962396] i915 0000:00:02.4: [drm] PMU not supported for this GPU.
[    4.962629] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.4 on minor 4
[    4.962915] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.962919] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962922] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962925] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.962928] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.962976] i915 0000:00:02.5: enabling device (0000 -> 0002)
[    4.962989] i915 0000:00:02.5: Running in SR-IOV VF mode
[    4.962990] i915 0000:00:02.5: [drm] Beware, driver is using hardcoded IPVER values!
[    4.963029] i915 0000:00:02.5: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.963156] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.963239] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.963821] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.963889] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.964309] i915 0000:00:02.5: [drm] VT-d active for gfx access
[    4.964321] i915 0000:00:02.5: [drm] Using Transparent Hugepages
[    4.964615] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.964681] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.965067] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.965068] i915 0000:00:02.5: HuC firmware N/A
[    4.966868] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.966925] i915 0000:00:02.5: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.967216] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.967219] i915 0000:00:02.5: HuC firmware DISABLED
[    4.968767] i915 0000:00:02.5: [drm] PMU not supported for this GPU.
[    4.968920] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.5 on minor 5
[    4.969188] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.969191] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969194] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969197] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969200] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.969203] i915 0000:00:02.5: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.969250] i915 0000:00:02.6: enabling device (0000 -> 0002)
[    4.969262] i915 0000:00:02.6: Running in SR-IOV VF mode
[    4.969263] i915 0000:00:02.6: [drm] Beware, driver is using hardcoded IPVER values!
[    4.969296] i915 0000:00:02.6: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.969424] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.969504] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.970098] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.971314] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.973360] i915 0000:00:02.6: [drm] VT-d active for gfx access
[    4.973375] i915 0000:00:02.6: [drm] Using Transparent Hugepages
[    4.974009] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.975305] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.976816] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.976817] i915 0000:00:02.6: HuC firmware N/A
[    4.978603] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.979776] i915 0000:00:02.6: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.981155] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.981156] i915 0000:00:02.6: HuC firmware DISABLED
[    4.983602] i915 0000:00:02.6: [drm] PMU not supported for this GPU.
[    4.983682] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.6 on minor 6
[    4.983986] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[    4.983989] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983992] i915 0000:00:02.2: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983995] i915 0000:00:02.3: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.983998] i915 0000:00:02.4: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.984001] i915 0000:00:02.5: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none
[    4.984004] i915 0000:00:02.6: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    4.984062] i915 0000:00:02.7: enabling device (0000 -> 0002)
[    4.984077] i915 0000:00:02.7: Running in SR-IOV VF mode
[    4.984078] i915 0000:00:02.7: [drm] Beware, driver is using hardcoded IPVER values!
[    4.984114] i915 0000:00:02.7: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    4.984247] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.985505] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.987249] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.988408] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.990382] i915 0000:00:02.7: [drm] VT-d active for gfx access
[    4.990396] i915 0000:00:02.7: [drm] Using Transparent Hugepages
[    4.990736] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.991875] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    4.993389] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.993391] i915 0000:00:02.7: HuC firmware N/A
[    4.995312] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    4.996445] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    4.997802] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.997803] i915 0000:00:02.7: HuC firmware DISABLED
[    4.999464] i915 0000:00:02.7: [drm] PMU not supported for this GPU.
[    4.999521] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    4.999696] i915 0000:00:02.0: Enabled 7 VFs
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.1 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.2 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.3 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.4 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.5 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.6 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
00:02.7 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)

Could this work with Kernel 6.8 maybe?

@tristan-k
Copy link

tristan-k commented Jul 17, 2024

@mm2293 I was sticking to 6.5.13-3 because I read that the dkms module wont be working otherwise.

I just tried using a Windows 11 guest vm but I'm getting Error Code 43. I alread added args: -cpu 'host,vendor=GenuineIntel' to /etc/pve/qemu-server/VM-ID.conf but know dmesg is spamed with errors.

[  926.846644] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0b 00 60 d4 00 01 f0 7f 6c 02 00 20 00
[  926.849384] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  926.851480] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0c 00 70 d4 00 01 00 80 6e 02 00 20 00
[  927.872936] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.875089] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0d 01 e0 d3 00 01 00 f1 7f 02 00 20 00
[  927.877894] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.880195] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0e 01 c0 d3 00 01 00 f1 7f 02 00 20 00
[  927.883191] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.885408] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0f 01 00 d4 00 01 00 f1 7f 02 00 20 00
[  927.888142] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.890294] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 01 01 40 d4 00 01 00 f1 7f 02 00 20 00
[  927.893071] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.895337] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 02 01 20 d4 00 01 00 f1 7f 02 00 20 00
[ 1192.074506] i915 0000:00:02.0: [drm] GT1: IOV: Unexpected VF7 FLR notification
[ 1192.074918] i915 0000:00:02.0: VF7 FLR

EDIT: After changing VirtIO-GPU in Display to None the error messages in dmesg are gone but the Error Code 43 in the device manager is still there. Not sure what to do next.

[    5.675690] i915 0000:00:02.7: enabling device (0000 -> 0002)
[    5.675703] i915 0000:00:02.7: Running in SR-IOV VF mode
[    5.675704] i915 0000:00:02.7: [drm] Beware, driver is using hardcoded IPVER values!
[    5.675743] i915 0000:00:02.7: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    5.676479] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.677657] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    5.679460] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.680605] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    5.682724] i915 0000:00:02.7: [drm] VT-d active for gfx access
[    5.682740] i915 0000:00:02.7: [drm] Using Transparent Hugepages
[    5.683427] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.684572] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    5.686077] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.686079] i915 0000:00:02.7: HuC firmware N/A
[    5.688063] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.689182] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    5.690514] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.690515] i915 0000:00:02.7: HuC firmware DISABLED
[    5.692300] i915 0000:00:02.7: [drm] PMU not supported for this GPU.
[    5.692351] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    5.692496] i915 0000:00:02.0: Enabled 7 VFs

@kamilllooo
Copy link

@scyto
Copy link
Author

scyto commented Jul 29, 2024

Look this ;) https://github.com/kamilllooo/Proxmox

fabulous, nice job!
one question if you use win11 in a VM with iGPU and TPM and use a microsoft account - does it stay working across 3 reboots....? i never managed it.... its why i stopped using proxmox for windows virtualization and stopped maintaining my gist....

@kamilllooo
Copy link

kamilllooo commented Jul 29, 2024

Look this ;) https://github.com/kamilllooo/Proxmox

fabulous, nice job! one question if you use win11 in a VM with iGPU and TPM and use a microsoft account - does it stay working across 3 reboots....? i never managed it.... its why i stopped using proxmox for windows virtualization and stopped maintaining my gist....

Thank you :)
Oh, honestly I haven't tested it with a logged in microsoft account, because I don't use it anywhere. If you need it I can check it for myself if the same problem occurs after 3 reboots. With just a local account I haven't noticed any problems

@rjblake
Copy link

rjblake commented Jul 30, 2024

Look this ;) https://github.com/kamilllooo/Proxmox

fabulous, nice job! one question if you use win11 in a VM with iGPU and TPM and use a microsoft account - does it stay working across 3 reboots....? i never managed it.... its why i stopped using proxmox for windows virtualization and stopped maintaining my gist....

Thank you :) Oh, honestly I haven't tested it with a logged in microsoft account, because I don't use it anywhere. If you need it I can check it for myself if the same problem occurs after 3 reboots. With just a local account I haven't noticed any problems

Same here for me, using local account. Will try with Microsoft online account. In addition, I have a few differences and my Windows 11 loads everytime without fail. Differences in my setup:

  1. I do not use RDP. It works with console and connection using RDP. This is on an HP Elite Mini 800 G9 with i5-12500 and i7-12700 CPUs with Intel UHD Graphics 770.
  2. I created a pool of vGPUs using Proxmox Resource Mapping to automatically allocate one of the vGPUs. This too works without issue.

Resource Pool (vGPUs 1-3 dedicted to specific VMs):
image

Windows 11 vGPU Config:
image

@kamilllooo
Copy link

Valuable tips. With pool gpu it's quite a good option, but I haven't tested it too much so I tried to avoid it in the guide :D

@rjblake
Copy link

rjblake commented Aug 16, 2024

I've updated my Proxmox Kernel t0 v6.8.12-1-pve and followed the instructions from Derek Seaman's Blog. My Windows 11 VM worked fine using the vGPU as previously with kernel v6.5.x.

Plex HW transcoding would not work in my unprivileged container using any Plex version higher than 1.40.3.8530 with my ID Mappings. Took a look a TTech's scipts and Plex worked with latest version. In the end, removed all the ID mappings from my LXC and added PCI Passthrough devices as follows:
image

I added a few more LXC's just changing the cardX and renderDXXX values to card2, card3, card4, ... and renderD130, renderD131, renderD132, ... respectively and it all works fine with HW transcoding again. Enable HDR tone mapping still not working, but see others have had success loading Intel driver, which I have yet to try. My LXC conf file as below:

arch: amd64
cores: 2
dev0: /dev/dri/card1,gid=44
dev1: /dev/dri/renderD129,gid=108
features: keyctl=1,fuse=1,nesting=1
hostname: plex-server
memory: 4096
mp0: /mnt/pve/lxc_shares/ds1821_video,mp=/volume1/video
net0: name=eth0,bridge=vmbr0,hwaddr=xx:xx:xx:xx:xx:xx,ip=dhcp,type=veth
onboot: 0
ostype: ubuntu
rootfs: local-lvm:vm-71500-disk-0,size=128G
swap: 512
tags: working
unprivileged: 1

UPDATE: Turns out, this approach does not work with Plex and Enable HDR tone mapping turned on. However, if I set the passthrough devices to card0 and renderD128 for the Plex VM (Ubuntu 22.04) it seems to work fine and my Windows 11 VM still runs as normal.

@ovizii
Copy link

ovizii commented Aug 19, 2024

So Intel 12th gen. Alder Lake is THE CPU to get if one wants to use SR-IOV to provide the integrated GPU to a Win 11 VM as well as a few docker contaienrs runnming straight on PVE?

I'm asking as I couldn't get it working with an AMD CPU and neither with an Intel 11th gen CPU so now I am looking to purchase new hardware for this and all successful reports seem to be with a 12th gen. Intel CPU.

@rjblake
Copy link

rjblake commented Aug 19, 2024

So Intel 12th gen. Alder Lake is THE CPU to get if one wants to use SR-IOV to provide the integrated GPU to a Win 11 VM as well as a few docker contaienrs runnming straight on PVE?

I'm asking as I couldn't get it working with an AMD CPU and neither with an Intel 11th gen CPU so now I am looking to purchase new hardware for this and all successful reports seem to be with a 12th gen. Intel CPU.

In my case, I have it SR-IOV working fine on an Intel i7-12700 and i5-12500. Running Proxmox with Windows 10 and Windows 11 VMs and Plex on Ubuntu 22.04

@HoldOnBro
Copy link

HoldOnBro commented Aug 19, 2024

So Intel 12th gen. Alder Lake is THE CPU to get if one wants to use SR-IOV to provide the integrated GPU to a Win 11 VM as well as a few docker contaienrs runnming straight on PVE?

I'm asking as I couldn't get it working with an AMD CPU and neither with an Intel 11th gen CPU so now I am looking to purchase new hardware for this and all successful reports seem to be with a 12th gen. Intel CPU.


well if you use APU, I want to recommand you Unraid. on my 5700u, the GPU share between LXCs are flawlessly and the gpu driver is easy to install from its app store. I deployed openwrt, win11 with vm and a Debian12 for docker and an Ubuntu22 for general use with lxc, they are running very stable.

@mm2293
Copy link

mm2293 commented Sep 10, 2024

@mm2293 I was sticking to 6.5.13-3 because I read that the dkms module wont be working otherwise.

I just tried using a Windows 11 guest vm but I'm getting Error Code 43. I alread added args: -cpu 'host,vendor=GenuineIntel' to /etc/pve/qemu-server/VM-ID.conf but know dmesg is spamed with errors.

[  926.846644] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0b 00 60 d4 00 01 f0 7f 6c 02 00 20 00
[  926.849384] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  926.851480] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0c 00 70 d4 00 01 00 80 6e 02 00 20 00
[  927.872936] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.875089] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0d 01 e0 d3 00 01 00 f1 7f 02 00 20 00
[  927.877894] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.880195] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0e 01 c0 d3 00 01 00 f1 7f 02 00 20 00
[  927.883191] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.885408] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 0f 01 00 d4 00 01 00 f1 7f 02 00 20 00
[  927.888142] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.890294] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 01 01 40 d4 00 01 00 f1 7f 02 00 20 00
[  927.893071] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process request 5006 (-EOPNOTSUPP)
[  927.895337] i915 0000:00:02.0: [drm] *ERROR* GT0: GUC: CT: Failed to process CT message (-EOPNOTSUPP) 06 00 00 00 06 50 00 90 07 00 00 00 00 00 02 02 01 20 d4 00 01 00 f1 7f 02 00 20 00
[ 1192.074506] i915 0000:00:02.0: [drm] GT1: IOV: Unexpected VF7 FLR notification
[ 1192.074918] i915 0000:00:02.0: VF7 FLR

EDIT: After changing VirtIO-GPU in Display to None the error messages in dmesg are gone but the Error Code 43 in the device manager is still there. Not sure what to do next.

[    5.675690] i915 0000:00:02.7: enabling device (0000 -> 0002)
[    5.675703] i915 0000:00:02.7: Running in SR-IOV VF mode
[    5.675704] i915 0000:00:02.7: [drm] Beware, driver is using hardcoded IPVER values!
[    5.675743] i915 0000:00:02.7: [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
[    5.676479] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.677657] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    5.679460] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.680605] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    5.682724] i915 0000:00:02.7: [drm] VT-d active for gfx access
[    5.682740] i915 0000:00:02.7: [drm] Using Transparent Hugepages
[    5.683427] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.684572] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.9.0
[    5.686077] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.686079] i915 0000:00:02.7: HuC firmware N/A
[    5.688063] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Unable to confirm version 1.9 (0000000000000000)
[    5.689182] i915 0000:00:02.7: [drm] *ERROR* GT1: IOV: Found interface version 0.1.9.0
[    5.690514] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.690515] i915 0000:00:02.7: HuC firmware DISABLED
[    5.692300] i915 0000:00:02.7: [drm] PMU not supported for this GPU.
[    5.692351] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    5.692496] i915 0000:00:02.0: Enabled 7 VFs

Did you eventually get it to work?

@scyto
Copy link
Author

scyto commented Sep 10, 2024

@mm2293
Not sure what those messages are at sec 5, i don't currently have compiled driverss so don't know if they are fatal or not. Also interesting that drive says i915.enable_guc=3 is invalid..

when did you last clone the drivers / start again with the driver compile (i.e. remove all traces) it seems to be the default first thing to try when looking at issues on https://github.com/strongtz/i915-sriov-dkms

@rjblake
Copy link

rjblake commented Sep 11, 2024

@mm2293 - as @scyto says, perhaps clean out all previous traces. Also, perhaps have a look at Derek Seaman's blog post for cleanup and/or what he did to get it to work with Kernel 6.8.x and currently on 6.8.12-1-pve

@mm2293
Copy link

mm2293 commented Sep 11, 2024

So you guys think that it may could work with the last drivers on Meteor Lake?

@nickcharlesyt
Copy link

nickcharlesyt commented Sep 12, 2024

So I've followed this guide to try and get vGPU passthrough working with a win11 vm on a 13th gen nuc and it works when I follow the instructions...until it doesn't. After a few reboots the Iris Xe graphics display adapter starts erroring out randomly on boot with an "error 43". Reinstalling the drivers or just rebooting again will sometimes fix it, but it always comes back after a few more reboots. Anyone know how to get the install to stick with no error 43 issues?

@scyto
Copy link
Author

scyto commented Sep 15, 2024 via email

@pcmike
Copy link

pcmike commented Sep 16, 2024

Has anyone updated to the latest proxmox version which I believe is using kernel 6.8? Does one still need to install this version of dkms in order to get SR-IOV? It's been a few months since I've updated proxmox and I want to get back up to speed and make sure I know what to do moving forward..

@scyto
Copy link
Author

scyto commented Sep 18, 2024

Has anyone updated to the latest proxmox version which I believe is using kernel 6.8? Does one still need to install this version of dkms in order to get SR-IOV? It's been a few months since I've updated proxmox and I want to get back up to speed and make sure I know what to do moving forward..

I haven't played with Virtual iGPU for over a year, i see lots of people have posted, let me see what i can whip up over lunch - seems the steps have changed for 6.8 and the steps on the driver github seem to be missing steps (at least for me)... i think i solved basic build mechanics....

@scyto
Copy link
Author

scyto commented Sep 18, 2024

lunch was yummy and productive, this rough and ready so sorry if i made errors, i haven't had time to redo on another node

this assumes you are running kernel 6.8.12-2-pve and pulled the git repo on Sep 18th 2024 @3pm PDT

do dkms status
if you see any old i915-dkms modules as installed you will need to first uninstall them and then remove them using
dkms --uninstall -m <module name> -v <version> -k <kernel>

if you see any old i915-dkms modules but they are not installed you need to remove them using
dkms --remove -m <module name> -v <version> -k <kernel>

you can drive the module name, version and kernel from dkms status

for example

root@pve1:/usr/src# dkms status
i915-sriov-dkms/2024.08.09, 6.8.12-2-pve, x86_64: installed
  • m = i915-sriov-dkms
  • v = 2024.08.09
  • k = 6.8.12.2-pve

Once clean remake and re-install dkms driver

cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
mv i915-sriov-dkms/ /usr/src/i915-sriov-dkms-2024.08.09
cd /usr/src

You should have the folder you just moved and a folder called linux-headers-$(uname-r) (i.e. the same as your current)

For example:

root@pve1:/usr/src# ls -l
total 12
drwxr-xr-x  4 root root 4096 Sep 18 14:07 i915-sriov-dkms-2024.08.09
drwxr-xr-x 25 root root 4096 Sep 18 14:53 linux-headers-6.8.12-2-pve

If not try apt install pve-headers
If that doesn't populate the linux-headers folder try apt --reinstall install proxmox-headers-$(uname -r) to epxlicitly pull the headers and force them, this shouldn't be needed but in my case it was (maybe because i had used pvekclean or i had manually cleared the src dir)

cd /usr/src/i915-sriov-dkms-2024.09.09
dkms add .
dkms install -m i915-sriov-dkms -v 2024.08.09 --force --kernelsourcedir /usr/src/linux-headers-6.8.12-2-pve/

Make sure /etc/sysfs.conf still contains "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7"

update-grub
update-initramfs -u
proxmox-boot-tool refresh

reboot

this should get you as far as having 7VFs - i have tested no further

@scyto
Copy link
Author

scyto commented Sep 18, 2024

I will retool the gist once someone has confirmed the above works and if they needed the optional steps or not.

@scyto
Copy link
Author

scyto commented Sep 18, 2024

@mm2293 I was sticking to 6.5.13-3 because I read that the dkms module wont be working otherwise

that doesn't seem correct.... i mean what you read, i believe you you read it
unless it is an issue that doesn't manifest until use? this is my dmesg | grep i915 - is there an issue in there you can see you think is an issue
https://privatebin.net/?f65d649ff1c82f05#D98CvzJuXV2KarFcfe8wQBVqxRmZRK7sKBNgaNpZJxXY

@pcmike
Copy link

pcmike commented Sep 19, 2024

@mm2293 I was sticking to 6.5.13-3 because I read that the dkms module wont be working otherwise

that doesn't seem correct.... i mean what you read, i believe you you read it unless it is an issue that doesn't manifest until use? this is my dmesg | grep i915 - is there an issue in there you can see you think is an issue https://privatebin.net/?f65d649ff1c82f05#D98CvzJuXV2KarFcfe8wQBVqxRmZRK7sKBNgaNpZJxXY

This was true up until the linked dkms GitHub was updated to work with 6.8.

If I have time this weekend, I may try and update my nodes. I want to find a way to clone the boot disks on each node before I attempt this update though as I really don’t want to have to rebuild each node if this goes south. I’ll post back when I’ve completed the update.

@nickcharlesyt
Copy link

nickcharlesyt commented Sep 19, 2024

lunch was yummy and productive, this rough and ready so sorry if i made errors, i haven't had time to redo on another node

this assumes you are running kernel 6.8.12-2-pve and pulled the git repo on Sep 18th 2024 @3pm PDT

do dkms status if you see any old i915-dkms modules as installed you will need to first uninstall them and then remove them using dkms --uninstall -m <module name> -v <version> -k <kernel>

if you see any old i915-dkms modules but they are not installed you need to remove them using dkms --remove -m <module name> -v <version> -k <kernel>

you can drive the module name, version and kernel from dkms status

for example

root@pve1:/usr/src# dkms status
i915-sriov-dkms/2024.08.09, 6.8.12-2-pve, x86_64: installed
  • m = i915-sriov-dkms
  • v = 2024.08.09
  • k = 6.8.12.2-pve

Once clean remake and re-install dkms driver

cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
mv i915-sriov-dkms/ /usr/src/i915-sriov-dkms-2024.08.09
cd /usr/src

You should have the folder you just moved and a folder called linux-headers-$(uname-r) (i.e. the same as your current)

For example:

root@pve1:/usr/src# ls -l
total 12
drwxr-xr-x  4 root root 4096 Sep 18 14:07 i915-sriov-dkms-2024.08.09
drwxr-xr-x 25 root root 4096 Sep 18 14:53 linux-headers-6.8.12-2-pve

If not try apt install pve-headers If that doesn't populate the linux-headers folder try apt --reinstall install proxmox-headers-$(uname -r) to epxlicitly pull the headers and force them, this shouldn't be needed but in my case it was (maybe because i had used pvekclean or i had manually cleared the src dir)

cd /usr/src/i915-sriov-dkms-2024.09.09
dkms add .
dkms install -m i915-sriov-dkms -v 2024.08.09 --force --kernelsourcedir /usr/src/linux-headers-6.8.12-2-pve/

Make sure /etc/sysfs.conf still contains "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7"

update-grub update-initramfs -u proxmox-boot-tool refresh

reboot

this should get you as far as having 7VFs - i have tested no further

This is, I believe, the steps I took to get mine working. I screwed something up the first time I tried and mixed up some of the instructions here and on the other blog post, but since I redid it it's been working just fine, I have a copy of blue iris and jellyfin running inside a w11 box using the vgpu pool and it is indeed making use of the hardware acceleration. I will say I had trouble getting it working with an Ubuntu or Debian based VM, but I think that's my own ineptitude at installing the Intel drivers on Linux in the first place. If I eventually get it working there I did want to separate jellyfin onto it's own VM, but I'll have to try again this weekend.

@scyto
Copy link
Author

scyto commented Sep 19, 2024 via email

@Ogglord
Copy link

Ogglord commented Sep 20, 2024

I'm failing the validation on the proxmox host, same error with kernel 6.5.13-3-pve and 6.8.12-2-pve (i5-12500 CPU).
The VFs are there at least.

root# ls /dev/dri
by-path  card0	card1  card2  card3  card4  card5  card6  card7  renderD128  renderD129  renderD130  renderD131  renderD132  renderD133  renderD134  renderD135

I cannot get intel_gpu_top to run for any except card1/renderD128, all other return the following.

root# intel_gpu_top -d drm:/dev/dri/renderD129
Failed to detect engines! (No such file or directory)
(Kernel 4.16 or newer is required for i915 PMU support.)
zsh: segmentation fault  intel_gpu_top -d drm:/dev/dri/renderD129

dmesg | grep i915 gives me

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.8.12-2-pve root=UUID=0c6df81e-6eee-430b-971f-0ae926ead243 ro consoleblank=0 systemd.show_status=true consoleblank=0 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
[    3.365872] i915: loading out-of-tree module taints kernel.
[    3.366101] i915: module verification failed: signature and/or required key missing - tainting kernel
[    3.552746] i915 0000:00:02.0: Running in SR-IOV PF mode
[    3.553670] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    3.579608] i915 0000:00:02.0: vgaarb: deactivate vga console
[    3.579649] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    3.580242] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    3.581727] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[    3.589524] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.29.2
[    3.589530] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[    3.592311] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads!
[    3.592629] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[    3.592630] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[    3.592973] i915 0000:00:02.0: [drm] GuC RC: enabled
[    3.593472] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[    3.622805] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 1
[    3.623788] i915 0000:00:02.0: 7 VFs could be associated with this PF
[    3.660126] fbcon: i915drmfb (fb0) is primary device
[    3.706604] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    4.398538] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io+mem
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.401267] i915 0000:00:02.1: enabling device (0000 -> 0002)
[    4.401732] i915 0000:00:02.1: Running in SR-IOV VF mode
[    4.403072] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.403632] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.404917] i915 0000:00:02.1: [drm] VT-d active for gfx access
[    4.405305] i915 0000:00:02.1: [drm] Using Transparent Hugepages
[    4.406155] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.406734] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.407445] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.407797] i915 0000:00:02.1: HuC firmware PRELOADED
[    4.409701] i915 0000:00:02.1: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.410057] i915 0000:00:02.1: [drm] PMU not supported for this GPU.
[    4.410624] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.1 on minor 0
[    4.413115] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.413509] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.416126] i915 0000:00:02.2: enabling device (0000 -> 0002)
[    4.416543] i915 0000:00:02.2: Running in SR-IOV VF mode
[    4.417741] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.418255] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.419845] i915 0000:00:02.2: [drm] VT-d active for gfx access
[    4.420215] i915 0000:00:02.2: [drm] Using Transparent Hugepages
[    4.421002] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.421522] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.422591] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.422950] i915 0000:00:02.2: HuC firmware PRELOADED
[    4.424889] i915 0000:00:02.2: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.425252] i915 0000:00:02.2: [drm] PMU not supported for this GPU.
[    4.425758] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.2 on minor 2
[    4.428179] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.428577] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.429005] i915 0000:00:02.2: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.431398] i915 0000:00:02.3: enabling device (0000 -> 0002)
[    4.431759] i915 0000:00:02.3: Running in SR-IOV VF mode
[    4.432524] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.432885] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.433470] i915 0000:00:02.3: [drm] VT-d active for gfx access
[    4.433825] i915 0000:00:02.3: [drm] Using Transparent Hugepages
[    4.434432] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.434789] i915 0000:00:02.3: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.435314] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.435724] i915 0000:00:02.3: HuC firmware PRELOADED
[    4.437523] i915 0000:00:02.3: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.437869] i915 0000:00:02.3: [drm] PMU not supported for this GPU.
[    4.438264] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.3 on minor 3
[    4.440656] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.441001] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.441351] i915 0000:00:02.2: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.441762] i915 0000:00:02.3: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.444276] i915 0000:00:02.4: enabling device (0000 -> 0002)
[    4.444710] i915 0000:00:02.4: Running in SR-IOV VF mode
[    4.445221] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.445623] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.446227] i915 0000:00:02.4: [drm] VT-d active for gfx access
[    4.446623] i915 0000:00:02.4: [drm] Using Transparent Hugepages
[    4.447227] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.447629] i915 0000:00:02.4: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.448119] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.448478] i915 0000:00:02.4: HuC firmware PRELOADED
[    4.450391] i915 0000:00:02.4: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.450740] i915 0000:00:02.4: [drm] PMU not supported for this GPU.
[    4.451144] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.4 on minor 4
[    4.453426] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.453772] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.454122] i915 0000:00:02.2: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.454486] i915 0000:00:02.3: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.454891] i915 0000:00:02.4: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.457162] i915 0000:00:02.5: enabling device (0000 -> 0002)
[    4.457544] i915 0000:00:02.5: Running in SR-IOV VF mode
[    4.458273] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.458674] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.459248] i915 0000:00:02.5: [drm] VT-d active for gfx access
[    4.459643] i915 0000:00:02.5: [drm] Using Transparent Hugepages
[    4.460253] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.460688] i915 0000:00:02.5: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.461290] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.461680] i915 0000:00:02.5: HuC firmware PRELOADED
[    4.463495] i915 0000:00:02.5: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.463827] i915 0000:00:02.5: [drm] PMU not supported for this GPU.
[    4.464220] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.5 on minor 5
[    4.466483] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.466822] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.467160] i915 0000:00:02.2: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.467526] i915 0000:00:02.3: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.467923] i915 0000:00:02.4: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.468314] i915 0000:00:02.5: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.470571] i915 0000:00:02.6: enabling device (0000 -> 0002)
[    4.470903] i915 0000:00:02.6: Running in SR-IOV VF mode
[    4.471589] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.471990] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.472685] i915 0000:00:02.6: [drm] VT-d active for gfx access
[    4.473020] i915 0000:00:02.6: [drm] Using Transparent Hugepages
[    4.473571] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.473907] i915 0000:00:02.6: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.474361] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.474684] i915 0000:00:02.6: HuC firmware PRELOADED
[    4.476264] i915 0000:00:02.6: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.476643] i915 0000:00:02.6: [drm] PMU not supported for this GPU.
[    4.477016] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.6 on minor 6
[    4.479194] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io+mem
[    4.479566] i915 0000:00:02.1: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.479961] i915 0000:00:02.2: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.480351] i915 0000:00:02.3: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.480739] i915 0000:00:02.4: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.481119] i915 0000:00:02.5: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=none
[    4.481489] i915 0000:00:02.6: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
               use xe.force_probe='4690' and i915.force_probe='!4690'
[    4.483746] i915 0000:00:02.7: enabling device (0000 -> 0002)
[    4.484077] i915 0000:00:02.7: Running in SR-IOV VF mode
[    4.484778] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.485107] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.485816] i915 0000:00:02.7: [drm] VT-d active for gfx access
[    4.486150] i915 0000:00:02.7: [drm] Using Transparent Hugepages
[    4.486731] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.487056] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4
[    4.487495] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    4.487815] i915 0000:00:02.7: HuC firmware PRELOADED
[    4.489388] i915 0000:00:02.7: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.489710] i915 0000:00:02.7: [drm] PMU not supported for this GPU.
[    4.490091] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.7 on minor 7
[    4.490548] i915 0000:00:02.0: Enabled 7 VFs

Any ideas how to proceed with eliminating the GUC_VERSION mismatch? I have tried to compile with #define GUC_VF_VERSION_LATEST_MINOR 13

@tristan-k
Copy link

For Meteor Lake support see my comment here.

@Ogglord
Copy link

Ogglord commented Sep 20, 2024

For Meteor Lake support see my comment here.

We have very similar problems, @tristan-k - except I'm on Alder Lake.. Lets crack this!

@Ogglord
Copy link

Ogglord commented Sep 20, 2024

I think I am one step closer (REF)
what I did was the following:

$ GUCFIRMWARE_MINOR=13 dkms install -m i915-sriov-dkms -v $(cat VERSION) -k $(uname -r) --force --kernelsourcedir /usr/src/linux-headers-$(uname -r)

and also copying all *.bin files from the official kernel tree, e.g.

$ mkdir firmware
$ cd firmware
$ wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
$ mv *.bin /lib/firmware/i915/

This got rid of these rows

[    4.484778] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.13 (0000000000000000)
[    4.485107] i915 0000:00:02.7: [drm] *ERROR* GT0: IOV: Found interface version 0.1.13.4

Finally, I read here that intel_gpu_top doesn't like to run on Virtual Functions. So I will continue on with trying passthrough to a VM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment