Passthrough Primary GPU with Proxmox 7.1

There are many guides out there, but this one is version specific. Some things have changed.

First, follow this guide:

It may be necessary to add the following boot options if you’re passing through the only GPU in the system:

#nano /etc/kernel/cmdline

root=ZFS=rpool/ROOT/pve-1 boot=zfs amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off video=efifb:off

There are guides for older versions of Proxmox that combine the “video=” lines into 1 statement. This won’t work on 7.1. Otherwise:

  • pcie_acs_overrise=downstream,multifunction
    • Breaks large IOMMU groups into individual groups per device. Use if you’re attempting to pass through a GPU that’s sharing an IOMMU group with bus devices or other critical stuff.
    • Check that with the following command:
#for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
  • nofb, nomodeset, video=vesafb:off, video=efifb:off
    • Things to keep the primary GPU from being utilized by Proxmox, therefore not allowing passthrough to a VM