Intel HD Graphics passthrough using monitor for output?

jh3141

New Member
Jan 12, 2024
2
0
1
I have installed PVE 8.1.3 on a Lenovo ThinkCentre M700 with Core I3 6100 (Skylake, Intel HD Graphics 530) and an H110 motherboard. After some experimentation and banging-of-head-against-wall (including having to use a custom EFI shell to modify the BIOS setting for VT-d, which Lenovo decided we don't need a menu item for in the BIOS settings screen, but thanks to a helpful Reddit user I finally found out how to fix), I finally got PCI passthrough working on it. Unfortunately, I don't have any output on the VGA, and my guest system (Windows 10) thinks the display has a non-plug-n-play monitor attached, which is wrong.

I've read the documentation about this here, but am not sure I entirely understand it. Specifically, I'm not sure what the deal with "fw_conf" is, or how I'd do what it's talking about...

I've tried a few different combinations of settings in my .conf file. I started with the following settings:

Code:
bios: ovmf
boot: order=ide3
cores: 1
cpu: x86-64-v2-AES
efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
ide0: local:iso/VMware-tools-windows.iso,media=cdrom,size=129448K
ide1: local-lvm:vm-101-disk-2,size=32G
ide2: local:iso/Windows10_enterprise_LTSCX64.ENU.DEC2019.ISO,media=cdrom,size=3914560K
ide3: local-lvm:vm-101-disk-1,size=64G
machine: pc-i440fx-8.1
memory: 4096
meta: creation-qemu=8.1.2,ctime=1704976633
name: win10
net0: virtio=BC:24:11:82:6A:CD,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
parent: drivers_installed
scsihw: virtio-scsi-single
smbios1: uuid=264b8a14-b2fc-4f0c-9085-585860b53c5c
sockets: 1
tablet: 1
vga: none
vmgenid: dcdc5b6b-9cdb-4d58-a570-d2eb0ab127b2
hostpci0: 0000:00:02

I've experimented with using SeaBIOS and q35, but neither seemed to help. I've tried the following different settings for the PCI passthrough (all at different times, obviously, not in combination!!):

Code:
hostpci0: 0000:00:02,legacy-igd=1
args: -device vfio-pci,host=00:02.0,addr=0x02,x-vga=on 
args: -device vfio-pci,host=00:02.0,addr=0x18,x-vga=on,x-igd-opregion=on
args: -device vfio-pci,host=00:02.0,addr=0x02,x-vga=on,x-igd-gms=1
args: -device vfio-pci,host=00:02.0,addr=0x18,x-vga=on,x-igd-opregion=on,x-igd-gms=1
args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-opregion=on,x-igd-gms=1,romfile=/usr/share/kvm/gpu-hd530.rom
args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-opregion=on,x-igd-gms=1,romfile=/usr/share/kvm/gpu-hd530.rom -bios /usr/share/kvm/i915ovmf.rom

(gpu-hd530.rom is a ROM extracted from my device following the instructions here, while i915ovmf.rom is a custom OVMF with support for Intel HD Graphics, found here)
My kernel command line is
Code:
intel_iommu=on i915.enable_gvt=0 i915.enable_guc=2 iommu=pt video=efifb:off video=vesa:off
(I've also tried enable_gvt=1 and without the enable_guc section). My IOMMU groups look fine (the GPU is in a group by itself), so I took the ACS override out (but I did have it earlier during my experimentation). The i915 module is blacklisted (along with sound modules, although I haven't even tried to pass those through yet). My various module options are:

Code:
options vfio-pci ids=8086:1912
options vfio_iommu_type1 allow_unsafe_interrupts=1
options kvm ignore_msrs=1

The modules I've got set to preload in /etc/modules are:

Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt

Can anyone suggest anything I've missed? I'd really rather not have to spend extra cash on yet more hardware,,,
 

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!