truthfulie Posted April 10, 2020 Share Posted April 10, 2020 So I’ve been having some difficulty passing through my GPU to Windows VM. The system is X570 with Ryzen 3700X, no integrated GPU. RX580 is the only GPU in the system. The VM works perfectly fine with VNC and other remote desktop programs like Splashtop. But whenever I assign RX580 to the VM, it will not boot. I tried to passthrough the GPU as secondary with VNC still enabled and discovered it gets stuck in Windows logo screen with circling dots. While this is happening, one of the CPUs assigned to the VM gets to 100 percent usage and the log will shoot up and be filled. It goes back down after system reboot. I’ve also tried to pass it through to a macOS Catalina (while Windows VM is off, of course) but I’ve not had any luck with that either. I’m lost as to where my next step is. Anyone with similar issue who can point me in the right direction? Below is my XML and IOMMU groups Quote <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>fa065ba9-8e8a-7a4d-1392-9af2ff44e48c</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='12'/> <vcpupin vcpu='2' cpuset='5'/> <vcpupin vcpu='3' cpuset='13'/> <vcpupin vcpu='4' cpuset='6'/> <vcpupin vcpu='5' cpuset='14'/> <vcpupin vcpu='6' cpuset='7'/> <vcpupin vcpu='7' cpuset='15'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-3.1'>hvm</type> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='4' threads='2'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/system/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/Win10_1909_English_x64.iso'/> <target dev='hda' bus='ide'/> <readonly/> <boot order='2'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.160-1.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:55:d2:63'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <sound model='ich9'> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </sound> <hostdev mode='subsystem' type='pci' managed='yes' xvga='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x09' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> Quote IOMMU group 0:[1022:1482] 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 1:[1022:1483] 00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge IOMMU group 2:[1022:1482] 00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 3:[1022:1482] 00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 4:[1022:1483] 00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge IOMMU group 5:[1022:1482] 00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 6:[1022:1482] 00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 7:[1022:1482] 00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 8:[1022:1484] 00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 9:[1022:1482] 00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 10:[1022:1484] 00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 11:[1022:1484] 00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 12:[1022:1484] 00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 13:[1022:790b] 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61) [1022:790e] 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51) IOMMU group 14:[1022:1440] 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 0 [1022:1441] 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 1 [1022:1442] 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 2 [1022:1443] 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 3 [1022:1444] 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 4 [1022:1445] 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 5 [1022:1446] 00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 6 [1022:1447] 00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 7 IOMMU group 15:[1022:57ad] 01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream IOMMU group 16:[1022:57a3] 02:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 17:[1022:57a3] 02:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 18:[1022:57a3] 02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 19:[1022:57a4] 02:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:1485] 06:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:149c] 06:00.1 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c] 06:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller IOMMU group 20:[1022:57a4] 02:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:7901] 07:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) IOMMU group 21:[1022:57a4] 02:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:7901] 08:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) IOMMU group 22:[1cc1:8201] 03:00.0 Non-Volatile memory controller: ADATA Technology Co., Ltd. XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive (rev 03) IOMMU group 23:[1b4b:9215] 04:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11) IOMMU group 24:[8086:1539] 05:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) IOMMU group 25:[1002:67df] 09:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev ef) [1002:aaf0] 09:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] IOMMU group 26:[1022:148a] 0a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function IOMMU group 27:[1022:1485] 0b:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP IOMMU group 28:[1022:1486] 0b:00.1 Encryption controller: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP IOMMU group 29:[1022:149c] 0b:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller IOMMU group 30:[1022:1487] 0b:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller IOMMU group 31:[1022:7901] 0c:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) IOMMU group 32:[1022:7901] 0d:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) Quote Link to comment
fpoa Posted April 10, 2020 Share Posted April 10, 2020 Hi, I found myself in this problem as well. I am also running a Ryzen on a mobo with no integrated gpu and paired with an AMD graphics card. I'm trying to scroll through my browser history with over 100 pages of reddit and unraid.net forum posts. But the solution for me was to roll back my motherboard's bios. Something about recent releases "to prepare for upcoming processors" messed with virtualization. I rolled back to bios dated March 2019 and VM finally booted the next attempt. I had to use a 3rd party app as Asus' system doesn't allow rolling back bios with their built in flasher. However, I'm running a Ryzen 7 2700, not sure if your 3700 changes things. If I can find the exact link I'll edit it in. Quote Link to comment
whipdancer Posted April 10, 2020 Share Posted April 10, 2020 I was under the impression that Unraid must have a GPU to boot and that there must be a separate (2nd) GPU for the VM. Quote Link to comment
truthfulie Posted April 10, 2020 Author Share Posted April 10, 2020 1 hour ago, whipdancer said: I was under the impression that Unraid must have a GPU to boot and that there must be a separate (2nd) GPU for the VM. I know that most motherboards won't let you boot without a GPU and mine is seems to be that way since I wasn't able to get into unRAID webUI when I remove the GPU. But I thought this was more of motherboard restriction, not necessarily an unRaid restriction? I was under the impression that I am still able to passthrough the one and only GPU to VMs? Or is this incorrect? Also I forgot to mention in the post but I did test (though not extensively) the system and VM setup with a loaner GPU (I didn't want to buy one without knowing it is in fact the cause) and I was still having issue passing my RX580. Quote Link to comment
fpoa Posted April 10, 2020 Share Posted April 10, 2020 (edited) You can run Unraid headless and pass through your one and only graphics card. I am doing so (technically 2 graphic cards, but 1 is purely for transcoding and the other boots with Unraid and gets passed through to VM). However, it is an AMD card and suffers from the AMD reset bug, but you can definitely run without an integrated GPU if your mobo allows you to do so. Edited April 10, 2020 by fpoa Quote Link to comment
truthfulie Posted April 10, 2020 Author Share Posted April 10, 2020 6 minutes ago, fpoa said: You can run Unraid headless and pass through your one and only graphics card. I am doing so (technically 2 graphic cards, but 1 is purely for transcoding and the other boots with Unraid and gets passed through to VM). However, it is an AMD card and suffers from the AMD reset bug, but you can definitely run without an integrated GPU if your mobo allows you to do so. Is there a way to find out if my motherboard can do that or not? From just short boot test I did without GPU installed, it didn't seem to want to boot into unraid. Is that indication that this motherboard won't allow me to do that? Quote Link to comment
fpoa Posted April 10, 2020 Share Posted April 10, 2020 I'm not sure. I'm new around here myself. I didn't pick my parts with virtualizing in mind or I'd have done a lot more research and would have gone with different options. You might search on this site, reddit, and review sites to see if anyone mentions it. Quote Link to comment
suRe Posted April 10, 2020 Share Posted April 10, 2020 (edited) Its been awhile since i last passed through my RX570/Vega, but "pc-i440fx-X.X" would not work for me. I changed to Q35 and the hanging Win Logo with one core at max stopped and booted just as expected. Edit: Since you get stuck in the booting process (and see the logo), the passthrough seems to be working. So it might be a VM config problem Edited April 10, 2020 by suRe Quote Link to comment
disteele1962 Posted December 31, 2020 Share Posted December 31, 2020 I have an RX480, an X570 mobo and Ryzen 9 and had the same problem. I managed to fix it by changing the config to 'Machine: Q35-5.1'. As previously mentioned, it will not boot with pc-i440fx-X.X. As recommended by Spaceinvader One, I dumped the vbios and tweaked the xml. Take a look at https://www.youtube.com/watch?v=FWn6OCWl63o and https://www.youtube.com/watch?v=QlTVANDndpM Quote Link to comment
bigluke82 Posted May 11, 2021 Share Posted May 11, 2021 i round a really easy way to do it ....... just dont plug a monitor cable in till after it has booted Quote Link to comment
antons Posted May 31, 2021 Share Posted May 31, 2021 On 5/11/2021 at 5:15 PM, bigluke82 said: i round a really easy way to do it ....... just dont plug a monitor cable in till after it has booted Oh, thank you for the suggestion! Usually, it's advised to have monitor plugged in. Quote Link to comment
bigluke82 Posted June 11, 2021 Share Posted June 11, 2021 but if it works it's not stupid Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.