Intel IGP Passthrough - Invalid PCI ROM header signature

n1nj4888

Active Member
Jan 13, 2019
162
20
38
44
Hi There,

Posting this more out of interest than an actual issue...

I’m getting the following error in the Proxmox host syslog when starting a VM with IGP passthrough:

Code:
Jun  8 16:08:51 pve-host1.local kernel: [309988.432878] vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xd76f

I have an Intel NUC8i5BEH (with integrated Iris GPU) on which latest Proxmox is installed. The IGP is passed through to a VM running Plex and the VM is seemingly working ok and able to use Plex Hardware Transcoding (Intel QuickSync) features of the IGP/CPU.

I didn’t do anything special with the passthrough of the IGP other than enabling IOMMU on the Proxmox host and passing the IGP device through to the VM through the Proxmox GUI ...

... So, just intrigued whether I should be concerned about the kernel error above?

Thanks!
 
You're one of the first results when I google this error. :) I'm working on getting full iGPU passthrough working on an Intel i5-12500T (Intel HD 770) and see this when I launch a VM with the iGPU passed through.

Right now, I've got compute, but seemingly no video out.

I've seen other GPU passthrough guides where you have to give Proxmox a copy of the GPU BIOS. Investigating that now.
Did you ever get video out from yours?
 
Struggling with same problem. Disabling CSM removes this error, but igpu from 1165g7 still doesn't want to output anything from hdmi , and I've got error 43. maybe its because i've got exotic mobo from topton ...
 
Struggling with same problem. Disabling CSM removes this error, but igpu from 1165g7 still doesn't want to output anything from hdmi , and I've got error 43. maybe its because i've got exotic mobo from topton ...
With an older NVIDIA card, the solution to this error was to dump the BIOS from the physical card as a .ROM file, and then have the VM use that ROM file when it loaded to tell the VM how to talk to the card correctly.

But, I've failed at dumping the Intel iGPU ROM and can't find it anywhere, so that's a dead end so far.
 
With an older NVIDIA card, the solution to this error was to dump the BIOS from the physical card as a .ROM file, and then have the VM use that ROM file when it loaded to tell the VM how to talk to the card correctly.

But, I've failed at dumping the Intel iGPU ROM and can't find it anywhere, so that's a dead end so far.
After many failed attempts to do the same, I concluded that you can't dump igpu vbios due to the fact in runs in UEFI mode. Did you come to same conclusion ? Or maybe you found some workaround for that ?
 
  • Like
Reactions: SInisterPisces
After many failed attempts to do the same, I concluded that you can't dump igpu vbios due to the fact in runs in UEFI mode. Did you come to same conclusion ? Or maybe you found some workaround for that ?
It took two days of research and bumbling, and in the end I sort of found it by accident, but yes.

tl;dr I figured out how to get a text file of the debug version of the VBIOS, which is the hex dump + a bunch of human readable diagnostic text. Someone who knows more about assembling VBIOSes than me (I know nothing), should be able to make a usable ROM binary file with a hex editor.

You definitely can't do it the usual way, using the method in the PVE wiki. You also can't boot into Legacy mode and do it, as Legacy mode BIOS support was removed in all Intel CPUs made in 2020 or after (I found a tech note for this--let me know if you want the link and I'll find it again).

However, Intel being Intel, there is a way but it's ridiculous and not immediately useful.

Reproducing my post to r/VFIO last night: https://www.reddit.com/r/VFIO/comments/1c98ww0/i_dumped_the_12500t_igpu_ihd_770_vbios_as_a/

I presently have a text file debug mode dump of the VBIOS from my i5-12500T. In the intel-gpu-tools package is a tool caled intel_vbt_decode, and when pointed at the /sys/kernel/debug/dri/0/i915_vbt "file," it works.

I think someone who has more skills with a hex editor than me and more familiarity with these kinds of files might be able to get a usable hex vbios rom file out of this, so I wanted to share. :)

These are the commands:
intel_vbt_decode --file=/sys/kernel/debug/dri/0/i915_vbt --hexdump (this actually worked for me)

intel_vbt_decode --file=/sys/kernel/debug/dri/0/i915_opregion (if you try to dump this, it says the "VBT signature" is missing.

It dumps a massive text file that's a mix of human readable debug info and the actual hex code.

In that same /0/ "directory," there's a very interesting "gpu-info" ... file ... that you can dump just using cat. It includes a few interesting bits that make the difficulty dumping the rom with the normal methods a bit clearer. The vbt_firmware line is empty. I wonder if that's what the usual dump technique using cat and echo tries to read off of.

Code:
GuC firmware: i915/tgl_guc_70.bin
GuC firmware wanted: i915/tgl_guc_70.bin
HuC firmware: i915/tgl_huc.bin
HuC firmware wanted: i915/tgl_huc.bin
i915.vbt_firmware=(null)
i915.guc_firmware_path=(null)
i915.huc_firmware_path=(null)
i915.dmc_firmware_path=(null)
i915.gsc_firmware_path=(null)
 

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!