Hey guys! Before I dive into my primary question/problem, let me provide my specs, as well as some quick context into the goal for this system.
Specs:
- Threadripper 2950X 16 Core
- AsRock X399 Taichi
- 64GB Vengeance DDR4
- 1 x NVidia GTX 980Ti (to be used as host GPU)
- 1 x AMD Radeon 5700XT (to be passed through to guest)
I would (ideally) love to run Pop!_OS or Manjaro as my host OS, in addition to either a macOS or a Windows 10 VM. macOS and Windows VM’s wouldn’t be run simultaneously; I’d turn one VM or the other on depending on whatever task that Linux couldn’t handle (Final Cut Pro editing, vs. gaming for example)
Here’s where I’m at. I have Pop!_OS 20.10 up and running with the 980ti as the boot GPU. I’m using the default systemd-boot bootloader, rather than grub. Based on my research, vfio currently can work with this configuration (and is more efficient/secure than GRUB.) I have the following options when issuing sudo kernelstub -p:
Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash amd_iommu=on vfio.pci-ids=1002:1478,1002:1479,1002:731f,1002:ab38
These pci.ids are the following devices (all from the NAvi 5700xt):
-
0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] [1002:731f] (rev c1)
-
0a:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 HDMI Audio [1002:ab38]
-
08:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch [1002:1478] (rev c1)
-
09:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479]
As far as I can tell, the GPU is being taken over by vfio, as I’m showing vfio-pci as the kernel driver, and plugging an HDMI into it results in no display. Here’s my problem, and where things get weird.
I’ve installed Windows 10 without any kind of passthrough, gotten past the installer and am booted into the desktop. Once I pass through my GPU, the VM will boot to the desktop, however, it’s as if the GPU isn’t being passed through “all the way”. What I mean by that is, if I go into Device Manager, I only see “Microsoft Basic Display Adapter”. If I attempt to install the AMD video drivers, I get the message that the system doesn’t meet the criteria for installation. It really seems like even though the GPU is passed through, despite me getting (very low res) picture on the physical monitor attached to the 5700xt, the AMD drivers aren’t actually detecting that it’s a 5700xt GPU.
I’ve passed this GPU though to macOS and Windows guests via Promox on this exact system, so while that’s a different scenario, I know passthrough with this hardware definitely can work.
Here’s some additional things I’ve added to my Windows VM configuration (can’t seem to format them exactly as they are in the VM’s config file):
rom bar = 'on' file='/usr/share/vgabios/XFX.RX5700XT.RawII.rom'
vendor_id state='on' value='spoofed_id
hidden state='on'
I haven’t gotten as far as trying Manjaro, or a macOS guest, but Windows should be far more simple than macOS, lol. I’m not even getting as far as an ‘Error 43’ scenario; it simply seems like my GPU isn’t truly being passed though to this guest, and I can’t seem to figure out why.
Does anyone have any additional insight to what’s going on here? Any help is greatly appreciated!
Thank you for your time!
Rob