INTEL ALDER LAKE I5-12500 / UHD 770 passthrough - the dreaded code 43 error

luuk777w

New Member
Aug 4, 2022
11
0
1
So, I am trying to passthrough the UHD 770 iGPU to Windows server 2019, however I am getting the code 43 error.
I am already trying things for a few days now, but nothing seems to work, so I would like to ask if there are any obvious mistakes I made.

Grub:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0 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"

vm.conf:
Code:
bios: ovmf
boot: order=virtio0;ide2;net0;ide0
cores: 2
cpu: host
efidisk0: local:100/vm-100-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:00:02,pcie=1
ide0: local:iso/virtio.iso,media=cdrom,size=519030K
ide2: local:iso/windows_server.iso,media=cdrom,size=5172572K
machine: pc-q35-6.2
memory: 16384
meta: creation-qemu=6.2.0,ctime=1659642222
name: win-server-2019
net0: virtio=00:50:56:00:E2:86,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=ba5d7772-de61-4af9-9956-32bb74408056
sockets: 1
tpmstate0: local:100/vm-100-disk-1.raw,size=4M,version=v2.0
vga: none
virtio0: local:100/vm-100-disk-2.qcow2,size=60G
vmgenid: 8d449d05-60bf-4b7d-b921-41e75b8db03a

I have essentially followed this guide: https://3os.org/infrastructure/prox...oxmox-configuration-for-igpu-full-passthrough

And I have also tried multiple other things suggested in other threads, however nothing seems to work. Everything I try results in the same code 43.
The only thing that got rid of the code 43 error was removing hostpci0: 0000:00:02,pcie=1 and adding -device vfio-pci,host=00:02.0,x-igd-opregion=on. However, this also resulted in this error when starting the VM:

kvm: -device vfio-pci,host=00:02.0,x-igd-opregion=on: IGD device 0000:00:02.0 cannot support legacy mode due to existing devices at address 1f.0

And while the device was visible in device manager and in working order, it wasn't anywhere else. It didn't show up in task manager and it was also clear that it didn't accelerate the graphics or anything.

Is there any obvious error I made? Has anyone had any luck getting 12th gen to work?

Code:
proxmox-ve: 7.2-1 (running kernel: 5.15.39-3-pve)
pve-manager: 7.2-7 (running version: 7.2-7/d0dd0e85)
pve-kernel-5.15: 7.2-8
pve-kernel-helper: 7.2-8
pve-kernel-5.15.39-3-pve: 5.15.39-3
ceph-fuse: 14.2.21-1
corosync: 3.1.5-pve2
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown: residual config
ifupdown2: 3.1.0-1+pmx3
libjs-extjs: 7.0.0-1
libknet1: 1.24-pve1
libproxmox-acme-perl: 1.4.2
libproxmox-backup-qemu0: 1.3.1-1
libpve-access-control: 7.2-4
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.2-2
libpve-guest-common-perl: 4.1-2
libpve-http-server-perl: 4.1-3
libpve-storage-perl: 7.2-7
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 5.0.0-3
lxcfs: 4.0.12-pve1
novnc-pve: 1.3.0-3
proxmox-backup-client: 2.2.5-1
proxmox-backup-file-restore: 2.2.5-1
proxmox-mini-journalreader: 1.3-1
proxmox-widget-toolkit: 3.5.1
pve-cluster: 7.2-2
pve-container: 4.2-2
pve-docs: 7.2-2
pve-edk2-firmware: 3.20210831-2
pve-firewall: 4.2-5
pve-firmware: 3.5-1
pve-ha-manager: 3.4.0
pve-i18n: 2.7-2
pve-qemu-kvm: 6.2.0-11
pve-xtermjs: 4.16.0-1
qemu-server: 7.2-3
smartmontools: 7.2-pve3
spiceterm: 3.2-2
swtpm: 0.7.1~bpo11+1
vncterm: 1.7-1
 
I have tried a few more things but still with no luck.

In another thread someone managed to get it working using legacy passthrough and OpenseaBIOS. I have tried that as well, but resulted in the same code 43 error. The error message about "cannot support legacy mode" was because of q35.

As this is my first time passing through a GPU, is there any difference in passing through an intel iGPU and an AMD GPU for example? I have found a very comprehensive thread here: https://forum.proxmox.com/threads/n...6500xt-for-gaming-f-h-intel-alder-lake.110947 however, this is passing through a dedicated graphics card and not the integrated graphics. Is the process the same for AMD and Intel? Or do I have to specifically follow a guide/thread for intel iGPU's?
 
Passthrough for an iGPU can be trickier than a standard GPU. Especially since you're running on Alder Lake, which is still pretty fresh as far as Proxmox is concerned. Can I ask what you're trying to achieve?
I have multiple game servers running on my server, and now I want to run a scrap mechanic server. However, scrap mechanic does not have servers and multiplayer is done through steam. Having a steam account open with the game running 24/7 essentially is a server. But to run the game you need a GPU. So I want to pass through my UHD 770 as this would be enough to run scrap mechanic.
 
Can you describe the hardware you're using?
Is the iGPU the only GPU in your system?
Is the iGPU hooked up to a Monitor?
I am using an EX43 dedicated server from Hetzner. My home internet (ADSL) sadly does not allow hosting myself.

The server has an i5-12500, 64gb ram, 2x 512 SSD. The iGPU is not hooked up to any monitor and it is the only GPU in the system.

I have full control over the system and can get in to EUFI if needed.
 
reach out to their support and see if they have a something like an EDID Dummy Plug hooked up to it.

So, I have asked their support and this is not possible. Do you think it is worth the time to try without something like a dummy plug? Or is it already doomed to fail
 
Are you able to view the video output directly through some type of IPMI?
I don't really know what IPMI is. However, I did found something in the Hetzner docs, and it is not supported on my system due to vulnerabilities of IPMI.

I do have access via KVM (not linux-kvm, but literary: Keyboard, Video and Mouse). They write the following about this:
This remote console provides KVM (keyboard, video and mouse) over-IP functions and enables full BIOS level control of the server. It is useful for troubleshooting a server, especially in cases where you can't use SSH. You can access the boot menu and fix network configuration errors. The console has virtual media support
 
I do have access via KVM (not linux-kvm, but literary: Keyboard, Video and Mouse). They write the following about this:
I read through the docs It sounds like this isn't a permanent setup, but rather something you can request temporarily?

It might be worth it to see if the problem goes away while the KVM Console is attached. If only just to rule it out.

I would get it back to the point where it's producing the Error 43 from your original configuration, have them connect the KVM Console and then try again from a fresh reboot of the Proxmox host.
 
I read through the docs It sounds like this isn't a permanent setup, but rather something you can request temporarily?
Yes, exactly.

I would get it back to the point where it's producing the Error 43 from your original configuration, have them connect the KVM Console and then try again from a fresh reboot of the Proxmox host.
Okay, I will try that tomorrow and will get back to you.
 
I would get it back to the point where it's producing the Error 43 from your original configuration, have them connect the KVM Console and then try again from a fresh reboot of the Proxmox host.
Okay, I have tried that, and I think I also found my problem. When I reboot the system, I can see it start up from the KVM console. However, as soon as the system is booted up the video feed goes away and the KVM console does not detect video anymore. I can get in the system (proxmox host) with ssh just fine.

I asked their support, and they suggested appending 'nomodeset' to my grub line, however that did not solve the issue. And of course the error 43 in the Windows VM was still there with, and without 'nomodeset'. Hetzner support said that the video output stops after the initramfs has loaded. Maybe this is the issue of the error 43?
 
However, as soon as the system is booted up the video feed goes away and the KVM console does not detect video anymore.
Actually, that's exactly the behavior you want. If you're running the latest version of Proxmox with patches, the more recent kernels have switched to simple framebuffer. This has a tendency to take control of a GPU and not release it. The initcall_blacklist=sysfb_init statement in your cmdline prevents simple framebuffer from loading at all.

Can you get your Windows Server VM to boot without error 43 in this configuration? Or is the problem still happening?

Never mind, I read the rest above. Have you tried the following:
  • Boot the Windows Server VM with only a virtual GPU.
  • Enable Remote Desktop, shut it down.
  • Remove the virtual GPU and only include the passthrough GPU.
 
Last edited:
https://forum.proxmox.com/threads/a...rated-graphics-passthrough.105983/post-464915

I think you might be screwed. Reading around on those threads, it seems there might be some driver support issues. (Although I'm not 100% as the linked articles are primarily talking about NUCs, which use the mobile processors with different graphics.)

But I can't find a single instance of someone reporting success with Alder Lake iGPU passthrough to Windows.
 
Last edited:
Never mind, I read the rest above. Have you tried the following:
  • Boot the Windows Server VM with only a virtual GPU.
  • Enable Remote Desktop, shut it down.
  • Remove the virtual GPU and only include the passthrough GPU.
Yes, I have, but it did not work.

But I can't find a single instance of someone reporting success with Alder Lake iGPU passthrough to Windows.
So did I. Hence my post here. Maybe Alder Lake is still a bit too new...
 

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!