GPU passthrough

AMD APU

PCIe

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
lcpci
26:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
 
lspci -n -s 26:00.0
26:00.0 0300: 10de:0a65 (rev a2)
 
echo "options vfio-pci ids=10de:0a65" > /etc/modprobe.d/vfio.conf
 
rmmod vfio-pci
modprobe vfio-pci
 
dmesg
[536167.737504] vfio-pci 0000:26:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[536170.155565] vfio-pci 0000:26:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[536170.173544] vfio_pci: add [10de:0a65[ffffffff:ffffffff]] class 0x000000/00000000

Error code 43

It is generic error code. Possible reasons:

KVM detected

Problem with NVidia card GT218. Device detected under Windows 10, driver installed automatically, but device is not working. Error code 43.

Nvidia drivers detects KVM. KVM can be hidden for guest OS:

/etc/pve/qemu-server/702.conf
cpu: host,hidden=1

NOTE: Proxmox already contains fixes for Nvidia, so it is not needed.

BAR 3: can't reserve

Lots of errors on host dmesg:

vfio-pci 0000:26:00.0: BAR 3: can't reserve [mem 0xf0000000-0xf1ffffff 64bit pref]
...
pcieport 0000:00:03.1: AER: Multiple Uncorrected (Non-Fatal) error received: 0000:26:00.0
pcieport 0000:00:03.1: AER: Multiple Uncorrected (Non-Fatal) error received: 0000:26:00.0
pcieport 0000:00:03.1: AER: Multiple Uncorrected (Non-Fatal) error received: 0000:26:00.0

GPU was used as host main adapter in graphic mode. To fix it add following kernel arguments:

nomodeset textonly video=vesafb:off video=efifb:off
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset textonly video=vesafb:off video=efifb:off"
root=ZFS=rpool/ROOT/pve-1 boot=zfs rootdelay=4 mitigations=off panic=30 nomodeset textonly video=vesafb:off video=efifb:off
update-grub
pve-efiboot-tool refresh

This device cannot find enough free resources that it can use. (Code 12)

Solution was to select “Primary GPU” on PCI Device (x-vga=1 option in Proxmox config file)