[SOLVED] Proxmox 6.0 Gemini Lake and IGD (graphics) passthrough for Windows 10

Try adding the line to your VM configuration file:
Code:
machine: q35

Try changing the line
Code:
args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom

Try changing the line in the file /etc/default/grub:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream video=efifb:off"
Then update-grub and reboot.
Hello,

I have applied those changes, and it seems iommu groups are also showing fine:

Code:
/sys/kernel/iommu_groups/17/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1b.0
/sys/kernel/iommu_groups/15/devices/0000:02:00.0
/sys/kernel/iommu_groups/5/devices/0000:00:16.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.2
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.3
/sys/kernel/iommu_groups/3/devices/0000:00:03.0
/sys/kernel/iommu_groups/21/devices/0000:06:00.3
/sys/kernel/iommu_groups/11/devices/0000:00:1c.4
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/18/devices/0000:06:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:1c.0
/sys/kernel/iommu_groups/16/devices/0000:03:00.0
/sys/kernel/iommu_groups/6/devices/0000:00:1a.0
/sys/kernel/iommu_groups/14/devices/0000:01:00.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/12/devices/0000:00:1d.0
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/20/devices/0000:06:00.2
/sys/kernel/iommu_groups/10/devices/0000:00:1c.3
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/19/devices/0000:06:00.1
/sys/kernel/iommu_groups/9/devices/0000:00:1c.2

I will test the result and let you know

Kind regards
 
Just 1 thing, I only have this on my /etc/modprobe.d/vfio.conf:

Code:
options vfio-pci ids=8086:0412 disable_vga=1

Should I also place my audio ID? as lspci is showing this :

Code:
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [1043:8534]
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]
        Subsystem: ASUSTeK Computer Inc. 9 Series Chipset Family HD Audio Controller [1043:8616]
 
Hello,

Same output with same error, black screen algo:

Code:
kvm: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom: IGD device 0000:00:02.0 cannot support legacy mode due to existing devices at address 1f.0
TASK OK
 
Hello. Yes, edit the file /etc/modprobe.d/vfio.conf:
Code:
options vfio-pci ids=8086:0412,8086:0c0c,8086:8ca0 disable_vga=1
Although about 8086:8ca0 is not sure.
 
Last edited:
Hello. Yes, edit the file /etc/modprobe.d/vfio.conf:
Code:
options vfio-pci ids=8086:0412,8086:0c0c,8086:8ca0 disable_vga=1
Although about 8086:8ca0 is not sure.
Yep, have already tried, but still getting the same error, and black screen :(

Don't know why
 
What kind of device do you have?
Code:
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
Perhaps the device can be turned off? For example, using /etc/modprobe.d/blacklist.conf.
 
What kind of device do you have?
Code:
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
Perhaps the device can be turned off? For example, using /etc/modprobe.d/blacklist.conf.
I found this:
Code:
IOMMU Group 13:
        00:1f.0 ISA bridge [0601]: Intel Corporation 9 Series Chipset Family Z97 LPC Controller [8086:8cc4]
        00:1f.2 SATA controller [0106]: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode] [8086:8c82]
        00:1f.3 SMBus [0c05]: Intel Corporation 9 Series Chipset Family SMBus Controller [8086:8ca2]

Do you think LPC can be blacklisted?
 
To weird, I am still getting this:
Code:
kvm: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom: IGD device 0000:00:02.0 cannot support legacy mode due to existing devices at address 1f.0
TASK OK
But I have in /etc/modprobe.d/blacklist.conf the following:
Code:
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
blacklist lpc_ich
No idea whats going wrong :(
 
1. Remove the line from the /etc/modprobe.d/blacklist.conf file:
Code:
blacklist lpc_ich
2. Try modifying the line in the /etc/pve/qemu-server/<VMID>.conf file:
Code:
args: -device vfio-pci-igd-lpc-bridge,id=vfio-pci-igd-lpc-bridge0,bus=pci.0,addr=1f.0 -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom
 
1. Remove the line from the /etc/modprobe.d/blacklist.conf file:
Code:
blacklist lpc_ich
2. Try modifying the line in the /etc/pve/qemu-server/<VMID>.conf file:
Code:
args: -device vfio-pci-igd-lpc-bridge,id=vfio-pci-igd-lpc-bridge0,bus=pci.0,addr=1f.0 -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom
trying... will let you know
 
1. Remove the line from the /etc/modprobe.d/blacklist.conf file:
Code:
blacklist lpc_ich
2. Try modifying the line in the /etc/pve/qemu-server/<VMID>.conf file:
Code:
args: -device vfio-pci-igd-lpc-bridge,id=vfio-pci-igd-lpc-bridge0,bus=pci.0,addr=1f.0 -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios_hd4600.rom
I'm sorry but still black screen. I tested the same flags on one of my other machines, and it seems like the last intel graphics driver started to work, but after I uninstall it and reinstall it again, error 43 again.
About the HDMI output, still black screen :(
 
Bestbeast, can you connect a monitor using a VGA (D-Sub) cable instead of HDMI? Maybe the video signal for some reason is not output via an HDMI cable.
 
Bestbeast, can you connect a monitor using a VGA (D-Sub) cable instead of HDMI? Maybe the video signal for some reason is not output via an HDMI cable.
Hello Sferg,

Getting still error 43 and nothing being showing through vga. May I ask you from where did you get that rombios?

Kind regards
 
Bestbeast, vBIOS is contained in the UEFI of your motherboard.

Mainboard: Asus Z97K
VID\PID of the videocard: 8086:0412
Instructions: mainly under Windows.

01. Download the MMTool v5.02.0024.
02. Download the latest UEFI for Asus Z97K mainboard.
03. Extract the Z97-K-ASUS-2902.CAP file from the archive somewhere, for example, in C:\.
04. Run the MMTool_v5.02.0024_patched.exe file and click on the "Load Image" button.
05. Load the file C:\Z97-K-ASUS-2902.CAP.
06. Go to the "Extract" tab and check the "Link Present" checkbox. The list will include:

10ec,8168 is the Gigabit Ethernet Controller
8086,2822 is a SATA Controller
8086,c02 is Haswell Integrated Graphics Controller

07. We are interested in the latter (8086,c02) - choose it.
08. Click on the "Browse" button, enter the name of the file to be saved (for example, hd4600_vbios.rom) and click on the "Save" button.
09. Click on the "Extract" button and you will get a file with vBIOS with VID\PID: 8086:0406.
10. Now we need to change the PID value for vBIOS from 0406 to 0с02. To do this, we will use the Linux-utility rom-parser/rom-fixer:
Code:
# ./rom-fixer hd4600_vbios.rom
Valid ROM signature found @0h, PCIR offset 40h
        PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 0406, class: 030000
        PCIR: revision 3, vendor revision: 0

Modify vendor ID 8086? (y/n): n
Modify device ID 0406? (y/n): y
New device ID: 0c02
Overwrite device ID with 0c02? (y/n): y
        Last image
ROM checksum is invalid, fix? (y/n): y

11. Make a backup copy of the corrected file, renaming it, for example, in hd4600_vbios_0c02.rom.
12. Run rom-fixer again, but now set the PID to 0412:
Code:
# ./rom-fixer hd4600_vbios.rom
Valid ROM signature found @0h, PCIR offset 40h
        PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 0c02, class: 030000
        PCIR: revision 3, vendor revision: 0

Modify vendor ID 8086? (y/n): n
Modify device ID 0c02? (y/n): y
New device ID: 0412
Overwrite device ID with 0412? (y/n): y
        Last image
ROM checksum is invalid, fix? (y/n): y
13. Make another backup copy of the corrected file, renaming it, for example, to hd4600_vbios_0412.rom.
14. Now we have two files - with PID 0c02 and with PID 0412 (see attachment):
- hd4600_vbios_0c02.rom
- hd4600_vbios_0412.rom

Try to specify one of them in the VM configuration file.

P.S. I apologize for my poor English - I used Google Translate to write this instruction.
 

Attachments

  • hd4600_vbios.zip
    79 KB · Views: 42
Last edited:
  • Like
Reactions: Psychoses
OK, just a quick post. @Bestbeast, did you get your intel 605 UHD iGPU to passthrough in the end? I just can't get it to work. My current attempts are in a 5.4 Proxmox with a Linux Mint 19.3 guest (although the intended target is Synology DSM for video encode / decode). I can get as far as the Mint logo appearing on the monitor at startup but then it just goes blank. The host computer is a Lenovo 310s with J5005 CPU.

I am using the ROM file from a few posts back and q35 maching and legacy mode. As I see somethingthen the PCI passthrough is set up. Pulling my hair out on this one. To be honest, it is actually not that important for me, just really annoyed it will not work.

I have configured GOU passthrough before on an NVIDIA card on a completely different box and that was really easy. I suspect there is something specific about the motherboard or ROM that is stolling it.

I have seen there is a new BIOS for my motherboard - I could try that I supose.

If somebody else has this working I might persevere - otherwise I think I will give up.

C
 
Last edited:
OK, so depending on which version of mint I get slightly different results. In either case if I leave things a bit then Proxmox portal is no longer accessible and HDD is whirring away accessible. Can't ping to box at all and as I now have no terminal it is hard reboot time.

I am wondering if my issue is RAM based. Currently the box only has 4GB of RAM - 8GB is on the way and that is apparently the maximum this machine will accept which is its main limitation IMO. I have read that not have x-igd-gms=1 causes the card to try and hog almost 4Gb of RAM but I have put that line in. I am still wondering if it is blowing up because it is too starved of RAM? I think I will have to hold of further testing until the RAM turns up. I was hoping 1GB for pfsense, 1.5GB for Proxmox (I know 2GB is recommended) and 5.5 for Synology DSM (it runs quite happily on 2GB for NZBGET, Plex, Sonarr with direct play on Plex) but if 5.5GB might be too tight if I can ever get the video card to work?

I might pop another HDD in and test a bare metal Mint install just to see if that works properly....not had much time to play today, tidying the garage and found a rigid, rotting dead cat under a pile of junk - yuck, that has kept me busy dealing with it :(
 
Hello.

I finally got an image on the screen when starting the virtual machine. For IGD passthrough, VBIOS is required.

Extract the j5005_vbios.rom file from the archive in the attachment and copy it /usr/share/kvm.
In the file /etc/pve/qemu-server/100.conf, write the following:
Code:
args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,romfile=intel_uhd_605_vbios.rom
vga: none

Hi sferg,
to get this working, is the above lines for adding the Vbios in addition to all the other stuff you did in the first few posts? Or is adding the vbios the only thing you needed to do?

I've just installed Proxmox, and I'm going to try and get passthrough for Windows10 on my J4105 (Also with UHD605 graphics).

-Simt
 
Hi sferg,
to get this working, is the above lines for adding the Vbios in addition to all the other stuff you did in the first few posts? Or is adding the vbios the only thing you needed to do?

I've just installed Proxmox, and I'm going to try and get passthrough for Windows10 on my J4105 (Also with UHD605 graphics).

-Simt

Did you manage to get your J4105 UHD 600 IGD to passthough ? I have a system with the same SOC and i am trying to do the same thing.
I can get the UHD showing in Windows but i keep getting Code 43 and a blank screen from HDMI cable (NO VGA ports).

Edit: I haven't tested HDMI output, however on my Seeed Odyseey x86 it would seem my UHD 600 is now working without Error code 43.

Will upload screenies and my files and settings soon enough.

Edit 2: So iGPU has passed through however HDMI port doesn't show a display just a blank screen. Will check bios settings for IGD and my see if I can swap to PCI-E


Edit 3: I have HDMI working now however in Linux Only yep go figure, Windows just shows a Blank screen so that must mean EDID issues as running Windows Natively on the screen it being tested on works fine.

Edit 4: I have Tested HDMI with Windows which doesn't work at all the GPU works fine but no signal out, However i have tried a Linux Live DVD (Ubuntu) and the good news is HDMI works fine without issues and HDMI Audio is also passing through without issues.
 

Attachments

  • iGDPT.png
    iGDPT.png
    99.6 KB · Views: 51
Last edited:

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!