Intel UHD630 iGPU - PCIe Passthrough to Windows 11 Guest

SeeGee

New Member
Jun 13, 2023
4
1
3
I've been bashing my head against the wall with this one for days now.

I have a Dell Optiplex 3070 SFF:
i5-9500 (Intel UHD 630 Integrated GPU)
8G RAM (To be upgraded if i can get this to work)
512G SSD

System boots using UEFI, VT-d enabled

I started off using this guide: https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-passthrough-to-vm/

I am having no success getting this to work. It seems like others have been able to achieve this, but for some reason I seem to be unable.
Any suggestions would be appreciated...


/etc/default/grub
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init
modprobe_blacklist=snd_hda_intel,snd_hda_codec_hdmi,i915"

/etc/modules
Code:
# vfio modules for pci-e passthrough
vfio
vfio_iommu_type1
vfio_pci
#vfio_virqfd # not needed on kernel 6.2 or newer

Update Grub/initramfs
Code:
update-grub
update-initramfs -u -k all

Reboot

Verify IOMMU is enabled:
dmesg | grep -e DMAR -e IOMMU
Code:
[    0.011354] ACPI: DMAR 0x00000000B9119598 0000A8 (v01 INTEL  EDK2     00000002      01000013)
[    0.011387] ACPI: Reserving DMAR table memory at [mem 0xb9119598-0xb911963f]
[    0.030554] DMAR: IOMMU enabled
[    0.085681] DMAR: Host address width 39
[    0.085683] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.085694] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.085697] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.085700] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.085702] DMAR: RMRR base: 0x000000b9017000 end: 0x000000b9036fff
[    0.085704] DMAR: RMRR base: 0x000000bd000000 end: 0x000000bf7fffff
[    0.085706] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.085707] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.085709] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.089100] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.320857] DMAR: No ATSR found
[    0.320858] DMAR: No SATC found
[    0.320859] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.320861] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.320862] DMAR: IOMMU feature nwfs inconsistent
[    0.320862] DMAR: IOMMU feature pasid inconsistent
[    0.320863] DMAR: IOMMU feature eafs inconsistent
[    0.320864] DMAR: IOMMU feature prs inconsistent
[    0.320865] DMAR: IOMMU feature nest inconsistent
[    0.320866] DMAR: IOMMU feature mts inconsistent
[    0.320866] DMAR: IOMMU feature sc_support inconsistent
[    0.320867] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.320868] DMAR: dmar0: Using Queued invalidation
[    0.320871] DMAR: dmar1: Using Queued invalidation
[    0.321383] DMAR: Intel(R) Virtualization Technology for Directed I/O

PCI address of the iGPU
lspci -nnv |grep VGA
Code:
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92] (prog-if 00 [VGA controller])

Windows 11 VM Config
/etc/pve/local/qemu-server/100.conf
Code:
agent: 1
bios: ovmf
boot: order=virtio0;ide0;ide2;net0
cores: 6
cpu: host
efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02,pcie=1
ide0: local:iso/virtio-win-0.1.240.iso,media=cdrom,size=612812K
ide2: local:iso/Win11_23H2_English_x64v2.iso,media=cdrom,size=6653034K
machine: pc-q35-8.1
memory: 4096
meta: creation-qemu=8.1.2,ctime=1703451032
name: moon
net0: virtio=BC:24:11:88:E3:15,bridge=vmbr0
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=f2b89c31-bf80-4ae0-8340-c5771b353a5a
sockets: 1
tags: Windows
tpmstate0: local-lvm:vm-100-disk-1,size=4M,version=v2.0
vga: none
virtio0: local-lvm:vm-100-disk-2,cache=writethrough,discard=on,iothread=1,size=128G
vmgenid: 887c5927-bc86-42a4-a313-93ce716490af

When I start the Windows 11 Guest, I get this in the syslog, and no signal on the monitor:
Code:
Dec 25 13:31:32 dell pvedaemon[4502]: start VM 100: UPID:dell:00001196:0001BA2F:6589F4B4:qmstart:100:root@pam:
Dec 25 13:31:32 dell systemd[1]: Started 100.scope.
Dec 25 13:31:32 dell kernel: tap100i0: entered promiscuous mode
Dec 25 13:31:32 dell kernel: vmbr0: port 2(tap100i0) entered blocking state
Dec 25 13:31:32 dell kernel: vmbr0: port 2(tap100i0) entered disabled state
Dec 25 13:31:32 dell kernel: tap100i0: entered allmulticast mode
Dec 25 13:31:32 dell kernel: vmbr0: port 2(tap100i0) entered blocking state
Dec 25 13:31:32 dell kernel: vmbr0: port 2(tap100i0) entered forwarding state
Dec 25 13:31:33 dell pvedaemon[938]: <root@pam> end task UPID:dell:00001196:0001BA2F:6589F4B4:qmstart:100:root@pam: OK
Dec 25 13:31:34 dell QEMU[4524]: kvm: vfio-pci: Cannot read device rom at 0000:00:02.0
Dec 25 13:31:34 dell QEMU[4524]: Device option ROM contents are probably invalid (check dmesg).
Dec 25 13:31:34 dell QEMU[4524]: Skip option ROM probe with rombar=0, or load from file with romfile=
Dec 25 13:31:34 dell kernel: vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff

When I check dmesg:
Code:
[    0.000000] Linux version 6.5.11-4-pve (fgruenbichler@yuna) (gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.5.11-4 (2023-11-20T10:19Z) ()
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.11-4-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init modprobe_blacklist=snd_hda_intel,snd_hda_codec_hdmi,i915

[   66.482966] snd_hda_intel 0000:00:1f.3: couldn't bind with audio component
[   66.576087] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC3234: line_outs=1 (0x1b/0x0/0x0/0x0/0x0) type:line
[   66.576091] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=1 (0x14/0x0/0x0/0x0/0x0)
[   66.576093] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[   66.576095] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[   66.576096] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[   66.576097] snd_hda_codec_realtek hdaudioC0D0:      Headset Mic=0x19
[   66.576098] snd_hda_codec_realtek hdaudioC0D0:      Headphone Mic=0x1a
[   66.662524] snd_hda_codec_hdmi hdaudioC0D2: No i915 binding for Intel HDMI/DP codec
[   66.663027] hdaudio hdaudioC0D2: Unable to configure, disabling
[   66.663213] input: HDA Intel PCH Headphone Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input8
[   66.663249] input: HDA Intel PCH Front Line Out as /devices/pci0000:00/0000:00:1f.3/sound/card0/input9
[  236.369939] tap100i0: entered promiscuous mode
[  236.382989] vmbr0: port 2(tap100i0) entered blocking state
[  236.382992] vmbr0: port 2(tap100i0) entered disabled state
[  236.383005] tap100i0: entered allmulticast mode
[  236.383059] vmbr0: port 2(tap100i0) entered blocking state
[  236.383060] vmbr0: port 2(tap100i0) entered forwarding state
[  238.411013] vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 1115.973568] tap100i0: left allmulticast mode
[ 1115.973583] vmbr0: port 2(tap100i0) entered disabled state
[ 1132.696507] tap100i0: entered promiscuous mode
[ 1132.709608] vmbr0: port 2(tap100i0) entered blocking state
[ 1132.709612] vmbr0: port 2(tap100i0) entered disabled state
[ 1132.709625] tap100i0: entered allmulticast mode
[ 1132.709680] vmbr0: port 2(tap100i0) entered blocking state
[ 1132.709682] vmbr0: port 2(tap100i0) entered forwarding state
[ 1134.666010] vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
 
  • Like
Reactions: jpa19
I'm having similar issues on an Optiplex 3070 minipc, I manage to achieve passthrough (the guest sees the igpu uhd630 and can "do stuff" with it), but can't get screen output on an actual hdmi connected screen at all. I get black screen, I can drag windows onto it (because it's "next" to the VNC display) but the screen just won't turn on.
Has someone actually got display output from igpu passthrough? Is this some weird Dell issue?
 
I didn't even get that far. I can get the vm to see the iGPU in device manager, just can't get any actual output... Windows shows two monitors, but dragging a window to the non-vnc screen doesn't show anything. Just black.
 
syslog Just curious how do you get syslog info ?
I also have a optiplex uh 5050 with the i5 7500 and UHD 630 and I got it working uh in remote desktop and it shows the uh I630 driver but with remote desktop it blanks out the screen resolutions and displays I thought maybe I can go there and switch the display but Nope well I did get both endeavor Linux the newest 2024 which is arch and the newest MX Linux which is Debian working flawlessly through the pass through so I was saying well windows has more notoriety joking aside and I can get it only to work through Microsoft remote desktop well at least an image of the operating system I'm not sure if the passthrough is working but audio visual work way better than without the pass through but that's not the problem I guess I tried to gain access to the IGPU630 ROM using CPU Z but of course it's blanked out actually went on the proxmox system installed windows and uh ran that program and it's blanked out I ran the same program within the Microsoft remote desktop still blanked out as per the above inquiry I basically have the same set up right out of the textbook so the Linux stuff is working great but I want the windows 11 pro to too work So anyone know how to download the 630 ROM so I can attach it in the ISO area of proxmox? And I'll be on top of this until I get it done and I'm not gonna switch to a video card. Just a little tip if you don't know already um you can do voice texting by pressing the windows key and H, I don't type anymore when I'm doing text so if you're interested in that maybe a little tip in the windows 11 pro environment anyways I' I'll report back with more information I don't see this being closed but I'm just an old guy smiles ohh yeah I don't consider the pass through working if it doesn't go to the proxmox monitor so something working in Microsoft RDC I don't consider working even though it has it's advantages I want Microsoft Windows 11 pro to run like the linux operating systems and by the way I just added PCI audio made the adjustments to the audio and both Linux systems run flawlessly and I even uh set up additional networking using another PCI pass through and that worked and blew my mind so anyways I'm like everyone else I wanna get windows 11 working with the I630 I'm thinking maybe because it has 3 video outputs that maybe you have to preprogram that somehow to go to the HDMI rather than the two other display ports I haven't checked that out I do have some HDMI DP dongles that I can use but I want to know the technology about the pass through I don't wanna be immature in a sense or a test engineer by switching out the ports no I wanted to go to the HDMI port nothing else so I was wondering if anyone knew how to set it to the HDMI port that I'm using everything for rather, than it might be outputting to the DP but again I'm having trouble with system logs anyways thanks for reading!
 
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!