mattyd87 Posted January 15, 2020 Share Posted January 15, 2020 Hi All, I am finding my feet with Unraid and loving the flexibility with it. I have messed around with plex and a few other dockers apps and everything seems fine. My build is; AsusTek TUF B450-Gaming Plus MB with latest BIOS update in mid December 2019 AMD 3700X Processor ASUS Strix RX 570 4GB Graphics card 2x 8GB Crosair 2666Mhz RAM 2x Sata 512GB SSD 3x 3TB Spinny 3.5 hard drives I am running Unraid 6.8.1 However when it comes to VM's like Windows 10 and OSX, I cannot get my AMD ASUS RX570 to passthrough to the VM. I have tried the list of things below but no matter I do I get the spinning red arrows when I start either VM and then the whole of UNRAID crashes and I have to hard reboot the whole server. Can anyone help in what I can do. 1. Downloaded the TechPowerup VBIOS for the GPU here and then dropped in in the XML as per spaceinvader One with a Nvidia card but this is a AMD card https://www.techpowerup.com/vgabios/197590/asus-rx570-4096-170406 2. Turned on ACS on VM settings to 'Downstream' 3. Updated Syslinux configuration with - rcu_nocbs=0-15 (my CPU has 8 cores and 16 threads) Example XML from my Windows 10 VM; <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>ac19db3c-f237-5f0a-3ea8-a25d95c82db5</uuid> <description>Main Windows 10 with RX Graphics</description> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>6291456</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>4</vcpu> <cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='10'/> <vcpupin vcpu='2' cpuset='3'/> <vcpupin vcpu='3' cpuset='11'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/ac19db3c-f237-5f0a-3ea8-a25d95c82db5_VARS-pure-efi.fd</nvram> </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='1'/> </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/domains/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='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> <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> <interface type='bridge'> <mac address='52:54:00:5f:16:47'/> <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'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <rom file='/mnt/disk1/isos/Asus.RX570.4096.170406.rom'/> <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='0x08' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0a' slot='0x00' function='0x4'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> Anybody know what I am doing wrong? Many thanks Quote Link to comment
ross232 Posted January 15, 2020 Share Posted January 15, 2020 (edited) I'm running an RX 480 on a Ryzen 5 2600 processor. I don't need a vBIOS at all with mine - are you sure you need one? I do use - rcu_nocbs and at the moment have disabled C States (although this may not be necessary). ACS isn't necessary for me (using a Tomahawk B350 BIOS). Have you made sure your BIOS is up to date? Check to see if your video card already has it's own IOMMU group in the unRAID diagnostics prior to enabling this. Also I need to use the Q35 machine type with OVMF for things to work. Edited January 16, 2020 by Ross Cannizzaro Quote Link to comment
mattyd87 Posted January 16, 2020 Author Share Posted January 16, 2020 22 minutes ago, Ross Cannizzaro said: I'm running an RX 480 on a Ryzen 5 2600 processor. I don't need a vBIOS at all with mine - are you sure you need one? I do use - rcu_nocbs and at the moment have disabled C States (although this may not be necessary). ACS isn't necessary for me (using a Tomahawk B350 BIOS). Have you made sure your BIOS is up to date? Check to see if your video card already has it's own IOMMU group in the unRAID diagnostics prior to enabling this. Also I need to use the Q35 machine type with OVMF for things to work. Thanks for this. I tried what you said but it didnt work I am afraid. I adjusted my VM to be Q35 4.2 with OVMF but no luck. Yeah, the BIOS is up to date on my B450 and yup GPU has slot 16 for OOMMU for both Graphics and the HDMI sound on the card. I also tried your Q35 idea with the vBIOS and also no vBIOS but no luck still.... 😞 Quote Link to comment
ross232 Posted January 16, 2020 Share Posted January 16, 2020 (edited) When you are not using a vBIOS and are using QF35 is unRAID still freezing for you? Just wondering if you can grab the VM log file and post it here. Also - does your GPU have it's own slot when ACS is disabled? I wasn't sure if you tested with this off. Edited January 16, 2020 by Ross Cannizzaro Quote Link to comment
mattyd87 Posted January 16, 2020 Author Share Posted January 16, 2020 By total miracle it has started working!!! A big thank you. My options I have setup if anyone else has a 3600 or a 3700x or a 3800x with a B450 Motherboard with a AMD RX 560, 570 or 580 graphics is to set your VM has these applied like this; Machine; Q35 -4,1 Do not add any additional Sound or graphics only the RX 570 graphics and HDMI sound Get the correct vBios from TechPowerup for your Graphics ROM BIOS In VM settings have PCIE ACS overide set to Disabled Add 'rcu_nocbs=0-*' . (* being your total threads on your CPU) to your SysLinux Configuration on your USB stick In theory this then should work as it has for me.... Quote Link to comment
david279 Posted January 16, 2020 Share Posted January 16, 2020 You don't need the rcu_nocbs thing anymore. That's was a 1st Gen ryzen problem. Quote Link to comment
Sptz Posted January 30, 2020 Share Posted January 30, 2020 Sorry to barge in. But may I ask. Is there any issues you notice on day-to-day use with the OSX VM due to the AMD GPU? (Reset Bug) Quote Link to comment
dogan Posted January 9 Share Posted January 9 @mattyd87 , I have a similar motherboard , Asus TUF B450 gaming plus with AMD R5 3600 and MSI TRX 2060 Super. I can't boot into any linux flavor(I tested Mageia,Ubuntu,Fedora etc) with IOMMU=On in grub. It works only with IOMMU=off but this time I can not run my virtual machines in QEMU-KVM. So, I wonder how you have succeeded to boot with IOMMU=on , which bios version you are using ? Any info is appreciated. 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.