I was previously using Proxmox 6.1 and passing through my RX480 to a windows guest. It was working smoothly, except for the issue of unexpected guest shutdowns making the GPU unusable until the system did a full power cycle.
I updated to Proxmox 7.3 and the windows guest stopped working. First it was UEFI issues so I did a fresh install, and then I noticed the GPU stopped passing through. After lots of reading in this forum, I found that the previous hacks are no longer recommended. I removed pretty much all of the kernel options from grub, disabled the hard-coding of PCI addresses in the vfio config, and installed vendor-reset. Still no luck.
System Specs:
Grub command:
vfio.config:
After lots of tweaking, here's where I am:
It seems like it's very close to working. The card shows up, reboots fine, and Windows can inspect the hardware - it just doesn't use it for rendering or detect any displays on it.
Any help to get this thing finished would be greatly appreciated!
I updated to Proxmox 7.3 and the windows guest stopped working. First it was UEFI issues so I did a fresh install, and then I noticed the GPU stopped passing through. After lots of reading in this forum, I found that the previous hacks are no longer recommended. I removed pretty much all of the kernel options from grub, disabled the hard-coding of PCI addresses in the vfio config, and installed vendor-reset. Still no luck.
System Specs:
Host OS: ProxMox 7.3
Guest OS: Windows 10 LTSC
Motherboard: Asus ROG X570 Tuf-Gaming - Plus with Wifi
CPU: Ryzen 5950X
GPU: (2) RX 480, (1) RX580
Grub command:
GRUB_CMDLINE_LINUX_DEFAULT="quiet hugepagesz=1GB hugepages=1 iommu=pt pci=noaer initcall_blacklist=sysfb_init"
vfio.config:
options kvm ignore_msrs=1
softdep amdgpu pre: vfio vfio_pci
After lots of tweaking, here's where I am:
- Using Kernel 6.1 with vendor-reset
- No modules blacklisted
- startup script successfully setting devices reset_method to device_specific for each GPU
- /proc/iomem shows the memory ranges successfully passed over to vfio-pci
- lshw showing devices using driver=vfio-pci after the VM boots up
- If I use the non-primary GPU, the Windows 10 guest can it, but it shows error 43.
- If I disable / re-enable the card it shows as "working properly", but does not detect the dummy display (HDMI plug) that I have in the card. It also doesn't show up under the task manager as a graphics card
- Gpu-Z sees the card, and can even read the temperatures and other stats
- Tried installing the 22.11.2 and 22.5.1 Adrenalin drivers
- Upon booting my host, I see this error: [drm:detect_link_and_local_sink [amdgpu]] *ERROR* No EDID read.
- My linux guest (Emby) uses my passed through video card for transcoding without issue
- If I use the non-primary GPU, the Windows 10 guest can it, but it shows error 43.
- If I disable / re-enable the card it shows as "working properly", but does not detect the dummy display (HDMI plug) that I have in the card. It also doesn't show up under the task manager as a graphics card
- Gpu-Z sees the card, and can even read the temperatures and other stats
- Tried installing the 22.11.2 and 22.5.1 Adrenalin drivers
- When I reboot the guest the vendor-reset does its thing:
Code:[Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: enabling device (0400 -> 0403) [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: version 1.1 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing pre-reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: CLOCK_CNTL: 0x0, PC: 0x2a34 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing post-reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: reset result = 0 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x19@0x270 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x1b@0x2d0 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x1e@0x370 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: version 1.1 [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing pre-reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: CLOCK_CNTL: 0x0, PC: 0x2b4c [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: performing post-reset [Sun Jan 8 18:13:54 2023] vfio-pci 0000:0c:00.0: AMD_POLARIS10: reset result = 0
- If I try to boot my guest VM with the primary GPU (The one proxmox initially displays to) I get this long warning, and the guest fails to start: (see attached warning log)
It seems like it's very close to working. The card shows up, reboots fine, and Windows can inspect the hardware - it just doesn't use it for rendering or detect any displays on it.
Any help to get this thing finished would be greatly appreciated!