Hardware Passthrough
GPU
iGPU (Intel)
Intels integrated GPUs from 5th up to and including 10th Gen have GVT-g support. That means that the GPU can be subdivided into smaller, logical GPUs. That way you can pass the GPU to multiple VMs instead of just one (like you do if the iGPU only supports VTD-d).
To enable GPU passthrough with GVT-g do the following:
- Add
intel_iommu=on i915.enable_gvt=1to the grub configuration:
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"- Make it so the necessary kernel modules are loaded at boot time:
/etc/modules
vfio
vfio_iommu_type1
vfio_pci
kvmgt- Update initramfs
update-initramfs -u -k all- Update GRUB
update-grubReboot
Check dmesg output for output:
dmesg | grep -e DMAR -e IOMMUOutput should contain
DMAR: IOMMU enabled
DMAR: Intel(R) Virtualization Technology for Directed I/O- You can list the amount of available logical GPUs (change device ID to that of yours):
cat /sys/bus/pci/devices/0000\:00\:02.0/mdev_supported_types/i915-GVTg_V5_4/available_instances- Now a logical GPU can be passed through to a VM or container!
ChooseAdd -> PCI Deviceand select your iGPU. Notice how it saysMediated: yes, that means the iGPU is divided into separate logical GPUs. Now open theMDev TypeDropdown. Here you can see the different logical GPUs and select one:

PCIe
Intel NIC/Network Adapter
The following is being done with an Intel I350-T4 NIC in a Lenovo Thinkcentre M720q.
- Add
intel_iommu=on iommu=pt pci_pt_e820_access=on pci=assign-bussesto the grub configuration:
⚠️
Apparently the order of the boot flags do matter! It only worked for me, when
Additionally, it did not work for me when iGPU-Passthrough flags were set. I did not spend more time on it to fix it, so it may or may not be possible to have both.
pci=assign-busses came last.Additionally, it did not work for me when iGPU-Passthrough flags were set. I did not spend more time on it to fix it, so it may or may not be possible to have both.
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pci_pt_e820_access=on pci=assign-busses"ℹ️
pci=assign-busses may not be necessary in your case, if your mainboard/firmware is better than the M720q’s one at assigning IOMMU IDs.- Update grub with the new options:
update-grub- Add the file
/etc/modprobe.d/igb.confwith the following contents (this will add 7 additional virtual functions (ports) per physical port):
/etc/modprobe.d/igb.conf
options igb max_vfs=7In the Proxmox-Node settings under
Network, set the NICs toAutostart = yesReboot
There should now be seven NICs per Port available:
