Only getting limited success trying to passthrough Intel UHD 620 graphics

NoBloodyABCorD

New Member
May 23, 2020
3
0
1
35
I've recently gotten a ThinkCentre m90n-IoT and I figured it would be fun to throw proxmox on it and use it as a portable lab / testbench device, one thing I really wanted to get working was GPU passthrough of the Intel UHD 620 so that way it could also be plugged into a monitor and used as a "desktop" if needed with a few VMs. Here has been my experience thus far:

I originally started with 6.3 but the graphics card would not output a picture when set to a windows 10 or a debian 10 vm so I went back and started again with the 6.2-1 installer as I haven't upgraded my own server to 6.3 yet so I figured I'd start there and see if I could get any success.

After installation I ran "lspci -nnk | grep "VGA\|Audio""
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 (Whiskey Lake) [8086:3ea0] (rev 02)
00:1f.3 Audio device [0403]: Intel Corporation Cannon Point-LP High Definition Audio Controller [8086:9dc8] (rev 30)
Subsystem: Lenovo Cannon Point-LP High Definition Audio Controller [17aa:314d]

Edited /etc/modules-load.d/vfio.conf
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Edited /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3ea0,8086:9dc8

Ran "update-initramfs -u -k all" then edited grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
....

Ran "update-grub" and rebooted. Set up a Windows 10 VM
bios: ovmf
bootdisk: ide0
cores: 2
cpu: host
efidisk0: local-lvm:vm-100-disk-1,size=4M
hostpci0: 00:02,pcie=1
hostpci1: 00:1f,pcie=1
ide0: local-lvm:vm-100-disk-0,size=32G
ide2: local:iso/Windows10.iso,media=cdrom
machine: q35
memory: 2048
name: fuhs
net0: e1000=62:EE:DC:D5:CD:A1,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=c3e369c5-40d8-4058-b8b8-0d63fb9943a7
sockets: 1
vmgenid: 68796aa6-cd03-4657-8d7b-f919593a180e
After a successful install, I enabled RDP, shut down and changed the config
bios: ovmf
bootdisk: ide0
cores: 2
cpu: host
efidisk0: local-lvm:vm-100-disk-1,size=4M
hostpci0: 00:02,pcie=1,x-vga=1
hostpci1: 00:1f,pcie=1
ide0: local-lvm:vm-100-disk-0,size=32G
ide2: local:iso/Windows10.iso,media=cdrom
machine: q35
memory: 2048
name: fuhs
net0: e1000=62:EE:DC:D5:CD:A1,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=c3e369c5-40d8-4058-b8b8-0d63fb9943a7
sockets: 1
vga: none
vmgenid: 68796aa6-cd03-4657-8d7b-f919593a180e

Upon starting the screen goes black, followed shortly by a "no signal". I can RDP in just fine, ran all updates and no errors with the graphics card shows up.

WindowsDeviceManager.PNG

I decide to then update proxmox (apt update and upgrade) and reboot, no change. I set up a debian VM to see if there's any difference there, initially I use a VirtIO-GPU to run the install, then I set the graphics card as the primary gpu and remove the VirtIO-GPU.

bios: ovmf
bootdisk: scsi0
cores: 2
cpu: host
efidisk0: local-lvm:vm-101-disk-1,size=4M
hostpci0: 00:02,pcie=1,x-vga=1
hostpci1: 00:1f,pcie=1
ide2: none,media=cdrom
machine: q35
memory: 2048
name: roh
net0: virtio=BA:CF:13:30:30:E0,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: local-lvm:vm-101-disk-0,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=d5ee8914-c6b3-45b3-9170-569e3188e03a
sockets: 1
vga: none
vmgenid: 60901ad3-c34c-41d6-aea1-009e64398986

I don't get a black screen, but a grid-like glitch pattern
20210107-114121.jpg

I grabbed the xorg (https://pastebin.com/0N9WMsHm) and the syslog (https://pastebin.com/k1U3tVDi) , but I'm a little out of my element here.

I went ahead and upgraded to 6.3 and no changes in either VM.. Does anyone have any tips I can try? Thank you!
 
I've also since created /etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

and /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1

But no noticeable difference. So for some variety I try a windows install using SeaBios instead of ovmf on an i440fx machine. No difference. I also try SeaBios and q35 to no difference.

lspci -nnk for reference
 
Based on another guide I tried the following

/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"

/etc/modprobe.d/iommu_unsafe_interrupts.conf
options vfio_iommu_type1 allow_unsafe_interrupts=1

/etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3ea0,8086:9dc8 disable_vga=1

/etc/pve/qemu-server/100.conf
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'

No noticeable changes
 
I've all so tried everything with a Intel UHD 630 graphics

Via RDP everything is fine 3D acceleration is working!

every try to use the build in HDMI / DVI / VGA ports results in a black screen...
even disabling the audio in the bios dose not help

any news ?
 
I've all so tried everything with a Intel UHD 630 graphics

Via RDP everything is fine 3D acceleration is working!

every try to use the build in HDMI / DVI / VGA ports results in a black screen...
even disabling the audio in the bios dose not help

any news ?
That has also been my experience with Intel UHD 630 (on a Lenovo ThinkCentre 920x) as well. I can RDP into Win10 guest, and have acceleration, but there's no video out via the HDMI port (aka black screen).

I also had that exact "grid-like glitch pattern" as described by @NoBloodyABCorD on spinning up a few Linux guests. What worked for me, at least on Linux, was to change the machine type from Q35 to i440fx. After setting the machine type to i440fx, I can see the video getting output on the screen.
 
I've started a new try...

PVE 7.0-10 Intel-UHD630 i9-10900
only added intel_iommu=on and iommu=pt to grubcmdline


OVMF q35 latest Ubuntu 20.04
installed quemu-guest-agent
added PCI-Device via GUI
selected GPU ticked all boxes
-> WORKS OUT OF THE BOX !!! 4k Display Output from the VM to my monitor from the Motherboard HDMI


OVMF q35 6.0 Windows 10
installed quemu-guest-agent
added PCI-Device via GUI
selected GPU ticked all boxes
installed UHD630 driver via windows updates
-> GPU acceleration works via RDP no output to Monitor....


At least now I know it is possible and not a Hardware restriction, seems to be again a windows problem =D ...

Thanks @taichi never tried it with a Linux VM!!
I also can see that exact "grid-like glitch pattern" for some brief milliseconds when the display switches over from the PVE host to the VM output.
 
  • Like
Reactions: dragonlinux
I've started a new try...

PVE 7.0-10 Intel-UHD630 i9-10900
only added intel_iommu=on and iommu=pt to grubcmdline


OVMF q35 latest Ubuntu 20.04
installed quemu-guest-agent
added PCI-Device via GUI
selected GPU ticked all boxes
-> WORKS OUT OF THE BOX !!! 4k Display Output from the VM to my monitor from the Motherboard HDMI


OVMF q35 6.0 Windows 10
installed quemu-guest-agent
added PCI-Device via GUI
selected GPU ticked all boxes
installed UHD630 driver via windows updates
-> GPU acceleration works via RDP no output to Monitor....


At least now I know it is possible and not a Hardware restriction, seems to be again a windows problem =D ...

Thanks @taichi never tried it with a Linux VM!!
I also can see that exact "grid-like glitch pattern" for some brief milliseconds when the display switches over from the PVE host to the VM output.
Hi,

Did you ever solve this as I am experiencing the same issue.

Thanks
 
  • Like
Reactions: dragonlinux
Same issue -> Linux works just fine with a full passthrough, but windows doesn't recognize the monitor. It does recognize the Intel HD 620 though
 
The same can be said about Bios/Uefi/Grub though -> No Video Output on screen. Even loading the i915ovmf.rom before booting does not help.