[SOLVED] GPU Passthrough on fedora

Basosa

New Member
Apr 28, 2023
13
1
3
Hi,
I set up GPU passthrough on Proxmox following these steps:
  • Step 1:Edit GRUB
    • nano /etc/default/grub
      • GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset
  • Step 2: Update GRUB
    • update-grub
  • Step 3: Edit the module files
    • nano /etc/modules
      • vfio
      • vfio_iommu_type1
      • vfio_pci
      • vfio_virqfd
  • Step 4: IOMMU remapping
    • nano /etc/modprobe.d/iommu_unsafe_interrupts.conf
      • options vfio_iommu_type1 allow_unsafe_interrupts=1
    • nano /etc/modprobe.d/kvm.conf
      • options kvm ignore_msrs=1
  • Step 5: Blacklist the GPU drivers
    • nano /etc/modprobe.d/blacklist.conf
      • blacklist radeon
      • blacklist nouveau
      • blacklist nvidia
      • blacklist nvidiafb
  • Step 6: Adding GPU to VFIO
    • lspci -v
    • nano /etc/modprobe.d/vfio.conf
    • options vfio-pci ids=(GPU number,Audio number) disable_vga=1
  • Step 7:Command to update everything and Restart
    • a) Execute: update-initramfs -u
    • b) Then restart the your Proxmox NodeAdditional information for Integrated GPU passthrough process

On a Windows VM, everything works fine, but on my Fedora VM, I get the following error at startup:

Code:
error writing '1' to '/sys/bus/pci/devices/0000:0c:00.0/reset': Inappropriate ioctl for device
failed to reset PCI device '0000:0c:00.0', but trying to continue as not all devices need a reset
kvm: -device vfio-pci,host=0000:0c:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,x-vga=on,multifunction=on: vfio 0000:0c:00.0: failed getting region info for VGA region index 8: Invalid argument
device does not support requested feature x-vga
TASK ERROR: start failed: QEMU exited with code 1

My Fedora VM config is:

agent: 1
boot: order=scsi0;ide2;net0
cores: 15
cpu: x86-64-v2-AES
hostpci0: 0000:0c:00,pcie=1,x-vga=1
ide2: local:iso/Fedora-KDE-Live-x86_64-41-1.4.iso,media=cdrom,size=2740608K
machine: q35
memory: 27048
meta: creation-qemu=9.2.0,ctime=1742302757
name: Fedora
net0: virtio=BC:24:11:33:7B:8C,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: local-lvm:vm-100-disk-0,iothread=1,size=1000G
scsihw: virtio-scsi-single
smbios1: uuid=8e6c058c-ddf9-47d9-a7e2-ab055e41c2c5
sockets: 1
usb0: host=1-11
usb1: host=3-1.1
usb2: host=1-7
usb3: host=1-11
vmgenid: a3376708-dee4-4644-b8ab-0b40fc37854b
 
Hi,

On a Windows VM, everything works fine, but on my Fedora VM, I get the following error at startup:
the error you posted happens before any guest os is booted/involved, so i doubt that fedora is the culprit here.

can you post both vm configs?

(my guess is that the windows vm either does not use 'x-vga' or uses ovmf, which makes the 'x-vga' option more or less useless)

in any case, try to remove the 'primary gpu' checkbox (which is the 'x-vga' part) or change to ovmf for fedora (from seabios)
 
Thank you very much! OVMF solved my issue. However, after installing the NVIDIA drivers on Fedora, I can't access the 120 Hz refresh rate, even though it works on Windows.
 
  • Like
Reactions: dcsapak
after installing the NVIDIA drivers on Fedora, I can't access the 120 Hz refresh rate, even though it works on Windows.
this seems to be an issue of the guest driver/graphics stack and not the virtualization anymore...