iGPU Passthrough NUC7i3BNH (Intel(R) HD Graphics 620, Code 43)

Minionguyjpro

New Member
Oct 24, 2023
26
1
3
Hello!

I am trying to passthrough the single iGPU in this Intel NUC, but it always gives error code 43 in my Windows 8 VM.
The config file is as the following:
agent: 1 bios: ovmf boot: order=scsi0;ide2;net0 cores: 2 cpu: host efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M hostpci0: 0000:00:02,pcie=1,romfile=iGPU.rom ide2: local:iso/virtio-win-0.1.229.iso,media=cdrom,size=522284K machine: pc-q35-6.2 memory: 2048 meta: creation-qemu=8.0.2,ctime=1698173603 name: Windows-8 net0: virtio=C6:10:38:7B:40:25,bridge=vmbr0,firewall=1 numa: 0 ostype: win8 scsi0: local-lvm:vm-101-disk-1,iothread=1,size=50G scsihw: virtio-scsi-single smbios1: uuid=2bf9fed8-d396-44f1-9a64-12a578531728 sockets: 1 tpmstate0: local-lvm:vm-101-disk-2,size=4M,version=v2.0 vga: none vmgenid: b3964b71-4c4d-4baa-80f1-4e66bb10ef73
My kernel parameters:
BOOT_IMAGE=/boot/vmlinuz-6.2.16-15-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off disable_vga=1 vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915
I also did all other steps like blacklisting the iGPU from loading in the modprobe.d folder, and let it load all VFIO modules. IOMMU is enabled. My GPU is an Intel(R) HD Graphics 620 as I said.
 
Strange, I just tried it on a Linux virtual machine with Fedora, and it does show output on a monitor!
Did you get it working on windows

On Ubuntu 22 (pop os), working fine also get the monitor output it's just that on windows got code 43 when checking with RDP and on hdmi got black screen
 
Did you get it working on windows

On Ubuntu 22 (pop os), working fine also get the monitor output it's just that on windows got code 43 when checking with RDP and on hdmi got black screen
I didn't unfortunately, although using GVT-g did work by creating multiple shared parts of the GPU, but it wasn't as good as I hoped. I heard it may have worked in Proxmox VE versions before 8.0, e.g. 7.4. Don't know if someone can test it on 7.4 and see if it's true?
 
I didn't unfortunately, although using GVT-g did work by creating multiple shared parts of the GPU, but it wasn't as good as I hoped. I heard it may have worked in Proxmox VE versions before 8.0, e.g. 7.4. Don't know if someone can test it on 7.4 and see if it's true?
Ohh sorry I forgot to update the thread

Now got it working on windows vm too on pve 8.2 with latest kernel

but not on q35

Need rom and some args to run on windows
 
Ohh sorry I forgot to update the thread

Now got it working on windows vm too on pve 8.2 with latest kernel

but not on q35

Need rom and some args to run on windows
Interesting, do you have the same iGPU? If so, can you link me the VBIOS ROM you used and the args?
 
Interesting, do you have the same iGPU? If so, can you link me the VBIOS ROM you used and the args?
source: https://yangwenqing.com/archives/1768/

On proxmox 8 we don’t need any changes on grub or load modules

Romfile path: /usr/share/kvm

Rom file I used:

wget -O igd.rom https://yangwenqing.com/files/pve/rom/intel_6-10th.rom

args: -set device.hostpci0.x-igd-gms=0x2
Model: i440fx
BIOS: OVMF
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=igd.rom


Only these are important one for windows and if you need help then ping me
Also check source for more clarification.
 
source: https://yangwenqing.com/archives/1768/

On proxmox 8 we don’t need any changes on grub or load modules

Romfile path: /usr/share/kvm

Rom file I used:

wget -O igd.rom https://yangwenqing.com/files/pve/rom/intel_6-10th.rom

args: -set device.hostpci0.x-igd-gms=0x2
Model: i440fx
BIOS: OVMF
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=igd.rom


Only these are important one for windows and if you need help then ping me
Also check source for more clarification.
I have done this but it's still not working and giving code 43.

Config of the VM:
Code:
agent: 1
args: -set device.hostpci0.x-igd-gms=0x2
bios: ovmf
boot: order=scsi0;ide0;ide2;net0
cores: 2
cpu: host
efidisk0: local-lvm:vm-102-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=igd.rom
ide0: local:iso/virtio-win-0.1.229.iso,media=cdrom,size=522284K
ide2: none,media=cdrom
machine: pc-i440fx-9.0
memory: 4096
meta: creation-qemu=9.0.2,ctime=1727542482
name: Windows-11-IoT-Enterprise-LTSC
net0: virtio=BC:24:11:32:35:E6,bridge=vmbr0
numa: 0
ostype: win11
scsi0: PVSH128GBStorage:102/vm-102-disk-0.qcow2,aio=threads,cache=writethrough,discard=on,iothread=1,size=48G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=97cd0d4e-eef5-41f8-9d6b-5836daefaec2
sockets: 1
tpmstate0: local-lvm:vm-102-disk-1,size=4M,version=v2.0
vga: none
vmgenid: d2ca8754-e21e-4255-a78e-23e1bd9b9c92
This shows:
remmina_Windows-11-IoT-Enterprise-LTSC_192.168.1.123_20241124-120719.png
 
Last edited:
I have done this but it's still not working and giving code 43.

Config of the VM:
Code:
agent: 1
args: -set device.hostpci0.x-igd-gms=0x2
bios: ovmf
boot: order=scsi0;ide0;ide2;net0
cores: 2
cpu: host
efidisk0: local-lvm:vm-102-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=igd.rom
ide0: local:iso/virtio-win-0.1.229.iso,media=cdrom,size=522284K
ide2: none,media=cdrom
machine: pc-i440fx-9.0
memory: 4096
meta: creation-qemu=9.0.2,ctime=1727542482
name: Windows-11-IoT-Enterprise-LTSC
net0: virtio=BC:24:11:32:35:E6,bridge=vmbr0
numa: 0
ostype: win11
scsi0: PVSH128GBStorage:102/vm-102-disk-0.qcow2,aio=threads,cache=writethrough,discard=on,iothread=1,size=48G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=97cd0d4e-eef5-41f8-9d6b-5836daefaec2
sockets: 1
tpmstate0: local-lvm:vm-102-disk-1,size=4M,version=v2.0
vga: none
vmgenid: d2ca8754-e21e-4255-a78e-23e1bd9b9c92
This shows:
View attachment 78178
I don’t know about ltsc

Try on fresh windows 11 vm not ltsc

And install driver from exe directly intel 7th to 10th gen driver that will work

Give it a try and let me know

Here is my config


agent: 1
args: -set device.hostpci0.x-igd-gms=0x2 -cpu 'host,kvm=off'
balloon: 0
bios: ovmf
boot: order=scsi0;net0
cores: 3
cpu: x86-64-v2-AES
efidisk0: local-lvm:vm-201-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=gen_6_10_igd.rom
hostpci1: 0000:00:1f.3
machine: pc-i440fx-9.0
memory: 8192
meta: creation-qemu=9.0.2,ctime=1730456239
name: W11
net0: virtio=BC:24:11:F5:1E:AB,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-lvm:vm-201-disk-1,discard=on,iothread=1,size=100G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=e0d13d2e-797d-4e18-b797-3b45d2b7d591
sockets: 1
tpmstate0: local-lvm:vm-201-disk-2,size=4M,version=v2.0
usb0: host=1-6,usb3=1
usb1: host=1-7,usb3=1
vga: none
vmgenid: 976adefa-7e88-44ca-9bdd-d719340d21f2
 
Last edited:
I don’t know about ltsc

Try on fresh windows 11 vm not ltsc

And install driver from exe directly intel 7th to 10th gen driver that will work

Give it a try and let me know

Here is my config


agent: 1
args: -set device.hostpci0.x-igd-gms=0x2 -cpu 'host,kvm=off'
balloon: 0
bios: ovmf
boot: order=scsi0;net0
cores: 3
cpu: x86-64-v2-AES
efidisk0: local-lvm:vm-201-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=gen_6_10_igd.rom
hostpci1: 0000:00:1f.3
machine: pc-i440fx-9.0
memory: 8192
meta: creation-qemu=9.0.2,ctime=1730456239
name: W11
net0: virtio=BC:24:11:F5:1E:AB,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-lvm:vm-201-disk-1,discard=on,iothread=1,size=100G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=e0d13d2e-797d-4e18-b797-3b45d2b7d591
sockets: 1
tpmstate0: local-lvm:vm-201-disk-2,size=4M,version=v2.0
usb0: host=1-6,usb3=1
usb1: host=1-7,usb3=1
vga: none
vmgenid: 976adefa-7e88-44ca-9bdd-d719340d21f2
I tried regular before but that also didn't work. The core of both versions of Windows 11 is the same, and I can confirm that my other devices also were able to install the regular 11 drivers on IoT just fine. I did tinker a bit around in the BIOS though related to IGD, I saw a minimum memory size (set to the max. 64MB already) and an aperture size, which I increased from 256MB to 1024MB for the system to use as RAM as far as I know.

However, at this point when I install the drivers the VM just crashes and it reboots.
 
I tried regular before but that also didn't work. The core of both versions of Windows 11 is the same, and I can confirm that my other devices also were able to install the regular 11 drivers on IoT just fine. I did tinker a bit around in the BIOS though related to IGD, I saw a minimum memory size (set to the max. 64MB already) and an aperture size, which I increased from 256MB to 1024MB for the system to use as RAM as far as I know.

However, at this point when I install the drivers the VM just crashes and it reboots.
then maybe i will give it a try on IoT also I am using chromebox 3 and I didn't get many options to tweak so I didn't know about that stuff

on server 2019 and 2016 drivers not working only works on server 2022, windows 10, windows 11. All are personally tested by me on kernel 8.4.4-2

maybe i will give a try on IoT
 
Last edited:
  • Like
Reactions: Minionguyjpro
then maybe i will give it a try on IoT also I am using chromebox 3 and I didn't get many options to tweak so I didn't know about that stuff

on server 2019 and 2016 drivers not working only works on server 2022, windows 10, windows 11. All are personally tested by me on kernel 8.4.4-2

maybe i will give a try on IoT
@luffy0040, any update on this?