Intel NUC iGPU passthrough: working in Linux guest but not in Windows 10 guest

The drivers were the ones that came with the Windows10 image I was using (Win10_20H2_v2_EnglishInternational_x64) and created according to the general HowTo. Maybe this image is newer than the one you were using and comes with the more recent drivers that get used automatically. I will try again over the weekend to see if another fresh install brings any changes.

I did manage to get everything working in Ubuntu 20.04 as a client VM (using ovmf), though. And it actually is already a proof that it's possible in general. Thus it really might be a (new) issue with Windows 10 as a client.

Code:
args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-opregion=on
bios: ovmf
 
Does your ubuntu still works without one of the 2 params (addr / opregion) ?
It also means that EFI VM is working with non EFI IGD GPU.

at this point I think we have the same setup. Mine is working but I have a 2019 driver version. Each time I'm trying to upgrade I get the code 43.

I believe it could be the driver that understand it works on a VM and block the GPU? Or something else.
I never tried/managed to dump my vbios/rom nor to edit it to see if there is something like in Nvidia ones. Let me know if you manage to do that.
 
Hi all, did someone finally got the GPU passthrough into the VM?

I have a NUC8i5BEK and was right now able to get the Intel Iris Plus Graphics 655 passthrough into a Win10 VM.
But the GPU is not listed / not active and therefore OpenGL is not available.

Did someone get the GPU active within the VM? What step did I miss?

Below my configuration and how it looks in VM:

blacklist i915
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.enable_gvt=1 intel_iommu=on video=efifb:eek:ff vfio-pci.ids=8086:3ea5"

options vfio-pci ids=8086:3ea5 disable_vga=1

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 655 (rev 01)
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller (rev 30)
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
00:1c.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
3b:00.0 Non-Volatile memory controller: Marvell Technology Group Ltd. Device 1092
3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)

agent: 1
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 2
cpu: host,flags=+pcid
efidisk0: local-lvm:vm-400-disk-0,size=4M
hostpci0: 00:02,rombar=0,x-vga=1
ide2: none,media=cdrom
machine: q35
memory: 8192
name: Win10.Development.CLONE
net0: virtio=8A:99:26:20:1A:7E,bridge=vmbr0,firewall=1,tag=10
numa: 0
ostype: win10
scsi0: local-lvm:vm-400-disk-1,cache=writeback,discard=on,size=40G
scsihw: virtio-scsi-pci
smbios1: uuid=c111a877-ca1b-4caf-96c6-f983cbc5aed8
sockets: 2
vga: none
vmgenid: 12f6ea43-b8c7-4973-84d7-75912ed81292

View attachment 22042
I'm stuck in the same situation.
Win10 machine can't use the GPU meanwhile the driver seems ok.
The same qemu parameters can work with Libreelec machine perfectly either seabios or ovmf BIOS.

In addition, I noticed that the host machine should be legacy bios boot up.
if the host switches to UEFI, the above qemu parameters will end up with a bunch of vfio_pci write errors, both on Win10 and Libreelec.

I also tried romfile, it seems not affects the result.
 
Hi,

You're not alone.
I'm trying to get GPU passthrough to Windows 10 on my NUC10i5FNH.
Just like the other commenters, I can't get it to work. I never get any output over HDMI with neither the Windows 10 Installer nor an installed Windows 10 system.

Windows 10 boots and I can use the console to verify that the hardware is detected. I can install the intel drivers, but get Code 43.


GPU passthrough to an Ubuntu VM works fine.
 
Hi,

You're not alone.
I'm trying to get GPU passthrough to Windows 10 on my NUC10i5FNH.
Just like the other commenters, I can't get it to work. I never get any output over HDMI with neither the Windows 10 Installer nor an installed Windows 10 system.

Windows 10 boots and I can use the console to verify that the hardware is detected. I can install the intel drivers, but get Code 43.


GPU passthrough to an Ubuntu VM works fine.
I'm on a NUC10i5FNH too. After setting up GPU passthrough, I can't even get my Windows 10 VM to boot, let alone get Code 43. Not a clue what I'm doing wrong. Just keeps saying Exit Code 1.
 
I'm on a NUC10i5FNH too. After setting up GPU passthrough, I can't even get my Windows 10 VM to boot, let alone get Code 43. Not a clue what I'm doing wrong. Just keeps saying Exit Code 1.
What is giving you exit code 1? Proxmox web GUI when starting the VM? Are there errors in journalctl or Syslog in the Proxmox web GUI?
 
What is giving you exit code 1? Proxmox web GUI when starting the VM? Are there errors in journalctl or Syslog in the Proxmox web GUI?

So, the Windows VM won't load at all. I go to Task History and it says today "Error: unable to read tail (got 0 bytes)
 
If I remove the PCI slot in the Hardware section for the GPU, and then try to start my VM, I get instead the following message in Task History:

"kvm: -device ide-cd,bus=ide.0,unit=1,drive=drive-ide1,id=ide1,bootindex=200: Can't create IDE unit 1, bus supports only 1 units
TASK ERROR: start failed: QEMU exited with code 1"
 
In the Proxmox Syslog, I get the following message:

"Apr 05 01:21:24 proxmox kernel: vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xdce9"
 
If I remove the PCI slot in the Hardware section for the GPU, and then try to start my VM, I get instead the following message in Task History:

"kvm: -device ide-cd,bus=ide.0,unit=1,drive=drive-ide1,id=ide1,bootindex=200: Can't create IDE unit 1, bus supports only 1 units
TASK ERROR: start failed: QEMU exited with code 1"
Maybe you need to remove or move some of your emulated IDE devices? Can you post your /etc/pve/qemu-server/VMID.conf?
 
In the Proxmox Syslog, I get the following message:

"Apr 05 01:21:24 proxmox kernel: vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xdce9"
I don't know that this error implies, but maybe adding rombar=0 might help. Or try to copy the rom to a file before using the device? If you trying to passthrough the integrated GPU, I don't think that it will work anyway. Maybe someone else knows how to get it working?
 

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!