Read that:
https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_pci_passthrough
and this
https://pve.proxmox.com/wiki/PCI_Passthrough
Notes about GPU passthrough process on Proxmox
Install and update Proxmox:
apt update
apt dist-upgrade
rebootFor VM during VM creation the most important is to simply choose q35 machine type and UEFI BIOS
In Proxmox run:
nano /etc/default/grub
and add
intel_iommu=on iommu=pt intel_pstate=disable
in line for GRUB_CMDLINE_LINUX_DEFAULT
then run update-grub
Run
pvesh get /nodes/<your_node_name>/hardware/pci --pci-class-blacklist ""
Run lspci -nnk to see what drivers are in use, then blacklist them
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
then
update-initramfs -u -k all
reboot
Now run lspci -nnk again and see if the
Kernel driver in use: vfio-pci
is in place or there is no kernel in use at all - you don't want to see anything like:
Kernel driver in use: i915
Now you can attempt to pass through the GPU to VM.
We get Code 43 so we have to fix it:
Download a custom ROM (copy also available in this GitHub repo)
wget https://github.com/lixiaoliu666/intel6-14rom/releases/download/v2.0-20250622-100999/12-n100-q10.rom
cp 12-n100-q10.rom /usr/share/kvm/12-n100-q10.rom
Now change config for VM:
cd /etc/pve/qemu-server
nano 240.conf
agent: 1
args: -set device.hostpci0.bus=pcie.0 -set device.hostpci0.addr=0x02.0 -set device.hostpci0.x-igd-gms=0x6 -set device.hostpci0.x-igd-opregion=on
balloon: 0
bios: ovmf
boot: order=scsi0;ide2;ide0;net0
cores: 4
cpu: host,hidden=1
efidisk0: local-lvm:vm-240-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,romfile=12-n100-q10.rom,pcie=1,x-vga=1Note lines for args, cpu and hostpci0
Run lsusb to list usb devices and pass them through with
qm set 240 -usb0 host=<device id>