I have an Intel Core i5-7600K and just passed through my Intel HD 630 iGPU from my Proxmox host to a virtual machine running Debian to be able to use it in a Jellyfin Docker container. Everything worked fine, but I used only the basic configuration that I found which I don't really get. Can someone explain to me whether I'm missing something?
First I followed this tutorial: https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-passthrough-to-vm/
But I only added intel_iommu=on iommu=pt
to my boot parameters and vfio, vfio_iommu_type1, vfio_pci, vfio_virqfd
to /etc/modules.
But what are all the other parameters good for?
pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off disable_vga=1 vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915"
Then I added the iGPU as a PCIe device to my VM using the Proxmox webUI and added the render device /dev/dri/renderD128
to the Jellyfin Docker container.
I followed the official instructions from Jellyfin: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-with-linux-virtualization
But I haven't added the host group ID, what is that good for?
And I also installed the intel-media-va-driver
, i965-va-driver
and firmware-linux-nonfree
as well as firmware-misc-nonfree
. Are all of those necessary?
And then I had to add options i915 enable_guc=2
to /etc/modprobe.d/i915.conf
to get it to work. This is supposedly only necessary for Low-Power Encoding, but it was necessary to get hardware transcoding to work at all?
I'm happy that it is working now, but I don't really feel like I fully understood what I did. Were some steps unnecessary or did I miss anything?
Now that you have a working setup, make a backup. Then, experiment with either starting over and only doing a few of the steps OR experiment with removing some of those parameters. Find your minimum set of working parameters this way, then you can look them up to find out more about what each parameter does that you discovered to be essential.
I can for sure tell you that passing the render device is required for hardware transcoding, but I'm not sure what else is required. The iommu and vfio parameters are related to passing the entire gpu device into a container, but I don't know anything about Proxmox so I can't comment on whether that would be required for your situation.