Retain host video output when passing through iGPU

astro666

New Member
Aug 9, 2024
6
0
1
Hi,

I am almost certain there is no way to do this, but wanted to check just to be sure.
I run proxmox on a device with only integrated intel graphics. For hardware acceleration reasons, I need to pass that device through to a VM. I do this by passing through the PCI Device 0000:00:02.0 through to the VM. Works fine.
The issue is that KVM/Console and directly connected HDMI essentially stop working whenever the VM boots, which makes sense as it's passed through to the VM. The issue is though I would like for the KVM/Console/HDMI output of the host to remain usable while the GPU is passed through - mainly as the host has Intel AMT and its extremely useful to remote into the host device when needed.

I know one way to do this is via SR-IOV and pass through that to the VM, however this is a 9th Gen intel chip and doesnt support SR-IOV :( otherwise that would have been perfect.

Does anyone have any other suggestions?
Thanks
 
PCI(e) passthrough moves the whole device (including outputs) to a VM. Mediated device passthrough gives VMs a part of the GPU but no output (for anyone).
For both host GPU display output and Linux VMs with 3D graphics, try VirGL: https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_display
Or use desktop virtualization software like VirtualBox or VMware Workstation, which do support 3D graphics for VMs to a window on the host (that runs a graphical desktop).
Or add multiple GPUs and use the integrated graphics for the host. Or use a serial interface and terminal for the host instead.
 
Thanks for the reply!
For both host GPU display output and Linux VMs with 3D graphics, try VirGL
That's a good solution, however I need the GPU transcoding capabilities passed through to the VM, in this case that wont work.

Or use a serial interface and terminal for the host instead.
In my case this is the way. Did the following to get Serial Over Lan (SOL) via Intel AMT:
Ok so I successfully enabled serial over lan with the following actions:
  1. Enable SOL in the bios before proceeding.
  2. Identify the port :
    Code:
    dmesg | grep tty
  3. I identified the port as ttyS4
  4. Modify grub config by adding the following in the default command line
    Code:
    "quiet console=tty4 console=ttyS4,115200n8"
  5. Update grub using the new config
    Code:
    update-grub
  6. Activated serial-getty daemon for the port:
    Code:
    systemctl enable serial-getty@ttyS4.service
Now I can access it via SOL.

There is actually another way with older intel iGPUs to 'split' them using GVT-g, which is documented here: https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-split-passthrough/

I decided not to do this as it does take quite the performance hit, and I didn't want to risk stability issues: https://blog.ktz.me/why-i-stopped-using-intel-gvt-g-on-proxmox/

Hope this helps someone.