Jump to content
The Unraid Annual Cyber Weekend Sale is here 🔥 ×

Windows 10 VM crashes entire server if PCIe device is passed through


Recommended Posts

Posted

Hello friends! I've been working on setting up a Windows 10 VM for a gaming HTPC for the past week, and can't figure out what's going on. I am using a Sabrent Rocket PCIe 3.0 passthrough dedicated to the VM, and if I use no other PCIe device it works fine through VNC. However, if I add any other device (GPU, different USB controllers, motherboard sound card is what I've tried, each one at a time) the VM does not start, and after a couple minutes I lose connection to the entire server and am forced to do a hard shutdown. When trying to pass through GPU, I am also passing the vBIOS I dumped from GPU-Z as explained by SpaceInvader One. I have searched for solutions for many hours, and have no luck. I think it's really weird because with the new Unraid build 6.9.0-beta22 I can pass the NVMe drive through and that works fine, but any other device crashes the whole server. Below is my specs and diagnostics file, and help would be greatly appreciated.

 

Ryzen 5 3600

Asus TUF Gaming B550m-plus

2x8GB Team T-Force Dark Z

Silicon Power A60 256GB (cache)

Sabrent Rocket 256 GB (for VM)

EVGA Geforce GTX 1660Ti SC Ultra

Cooler Master MasterWatt 550W 80+ Bronze

10Gtek Broadcom BCM5751 1Gb Ethernet NIC

3x Shucked WD EasyStore 8TB

tommy-diagnostics-20200703-1730.zip

Posted

I had the same-ish problem and it's the ryzen CPU as I have the same 

 

In the XML template change host-passthrough to host-model and delete the cache line

 

Bear in mind every change you make you have to redo this setting in the template 

Posted

That didn't seem to help, thank you though! Just in case there's something else I'm doing wrong, here's my XML file: 

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Windows 10</name>
  <uuid>15a50093-78bb-c4f0-502c-99ed3151c72e</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>12582912</memory>
  <currentMemory unit='KiB'>12582912</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='7'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='9'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='10'/>
    <vcpupin vcpu='6' cpuset='5'/>
    <vcpupin vcpu='7' cpuset='11'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/15a50093-78bb-c4f0-502c-99ed3151c72e_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-model' check='none'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Windows/Windows.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/Windows/virtio-win-0.1.173-2.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='0x04' 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:97:ea:d8'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <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'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/domains/vbios/TU116_edited.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x07' slot='0x00' function='0x1'/>
      </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='0x4'/>
      </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='0x05' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,topoext=on,invtsc=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1fff,hv-vpindex,hv-synic,hv-stimer,hv-reset,hv-frequencies,host-cache-info=on,l3-cache=off,-amd-stibp'/>
  </qemu:commandline>
</domain>

 

Posted

A few things I'd like you to try:

 

1)  Check for a BIOS update.

2)  Create a new VM using SeaBIOS instead of OVMF.

3)  Create a new VM using Q35 instead of i440fx.

 

Try the combination of SeaBIOS + Q35, SeaBIOS + i440fx, and OVMF + Q35 and see if any of those combos have any impact on the crashing.  If not, this may be a hardware / BIOS issue that we can't resolve from the software side.  I know that AMD offers a good price for performance product, but unfortunately their testing in the VM department leaves a lot to be desired.  There is only so much we can do from the software side to quirk the kernel/QEMU.  Your last resort would be to contact the motherboard manufacturer and notate the problems you are having to see if they have a beta BIOS that may resolve it for you.

Posted

To add to what @jonpsaid to try. If you have everything but that nvme do you get the same result at all? I remember having this problem with onboard audio and when you would start it on the vm log before it all died you'd see it log something about it unable to lock a specific device.

Posted (edited)

@jonp Sorry for the late update, thank you all for the suggestions! Using OVMF + Q35 did solve the problem of it crashing the entire server. If I continue using VNC for graphics it looks like I can pass anything else through fine. I passed a USB controller and onboard audio through and both worked great. If I try to pass through my GPU though, all I get is a black screen. On the VM logs I get this: 

2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: high-privileges
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: custom-argv  				<---- THIS LINE IS MARKED RED
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2020-07-09T02:31:17.580603Z qemu-system-x86_64: -device vfio-pci,host=0000:08:00.0,id=hostdev0,bus=pci.2,addr=0x0,romfile=/mnt/cache/domains/vbios/TU116_edited.rom: Failed to mmap 0000:08:00.0 BAR 3. Performance may be slow		<----- THIS LINE IS MARKED YELLOW
2020-07-09T02:48:15.583801Z qemu-system-x86_64: terminating on signal 15 from pid 6361 (/usr/sbin/libvirtd)

I dumped the GPU's vBIOS using GPU-Z on another computer, and I tried using an unedited vBIOS as well as the changes that SpaceInvader One explained in his NVIDIA GPU passthrough video. Neither version seems to work. I have been trying to troubleshoot these problems (hence why I haven't replied in a while), but I haven't found anything that has helped. Thanks again for your help!

Edited by ThePockets
Tagging JonP
  • 2 weeks later...
Posted
On 7/13/2020 at 4:04 PM, ThePockets said:

@jonp Sorry for the late update, thank you all for the suggestions! Using OVMF + Q35 did solve the problem of it crashing the entire server. If I continue using VNC for graphics it looks like I can pass anything else through fine. I passed a USB controller and onboard audio through and both worked great. If I try to pass through my GPU though, all I get is a black screen. On the VM logs I get this: 


2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: high-privileges
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: custom-argv  				<---- THIS LINE IS MARKED RED
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2020-07-09T02:31:17.580603Z qemu-system-x86_64: -device vfio-pci,host=0000:08:00.0,id=hostdev0,bus=pci.2,addr=0x0,romfile=/mnt/cache/domains/vbios/TU116_edited.rom: Failed to mmap 0000:08:00.0 BAR 3. Performance may be slow		<----- THIS LINE IS MARKED YELLOW
2020-07-09T02:48:15.583801Z qemu-system-x86_64: terminating on signal 15 from pid 6361 (/usr/sbin/libvirtd)

I dumped the GPU's vBIOS using GPU-Z on another computer, and I tried using an unedited vBIOS as well as the changes that SpaceInvader One explained in his NVIDIA GPU passthrough video. Neither version seems to work. I have been trying to troubleshoot these problems (hence why I haven't replied in a while), but I haven't found anything that has helped. Thanks again for your help!

Ok, so is it fair to say that in your current state, using OVMF + i440fx GPU pass through "works" but you get a server crash.  Using OVMF + Q35 "works" for everything BUT GPU passthrough.  Correct?  What about Q35 + SeaBIOS?  Did you try that and did that work for GPU pass through?

Posted
On 7/13/2020 at 10:04 PM, ThePockets said:

@jonp Sorry for the late update, thank you all for the suggestions! Using OVMF + Q35 did solve the problem of it crashing the entire server. If I continue using VNC for graphics it looks like I can pass anything else through fine. I passed a USB controller and onboard audio through and both worked great. If I try to pass through my GPU though, all I get is a black screen. On the VM logs I get this: 


2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: high-privileges
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: custom-argv  				<---- THIS LINE IS MARKED RED
2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2020-07-09T02:31:17.580603Z qemu-system-x86_64: -device vfio-pci,host=0000:08:00.0,id=hostdev0,bus=pci.2,addr=0x0,romfile=/mnt/cache/domains/vbios/TU116_edited.rom: Failed to mmap 0000:08:00.0 BAR 3. Performance may be slow		<----- THIS LINE IS MARKED YELLOW
2020-07-09T02:48:15.583801Z qemu-system-x86_64: terminating on signal 15 from pid 6361 (/usr/sbin/libvirtd)

I dumped the GPU's vBIOS using GPU-Z on another computer, and I tried using an unedited vBIOS as well as the changes that SpaceInvader One explained in his NVIDIA GPU passthrough video. Neither version seems to work. I have been trying to troubleshoot these problems (hence why I haven't replied in a while), but I haven't found anything that has helped. Thanks again for your help!

Would be a good idea to reattach new diagnostics.

 

Common problem with current gen Nvidia GPU: did you pass through all FOUR functions of the graphics card? All the post-RTX Nvidia graphics card has 4 functions (like sub-device), the GPU, the HDMI audio and 2x USB controllers. You must pass through all 4 for it to work.

 

Posted
On 7/22/2020 at 4:59 PM, jonp said:

Ok, so is it fair to say that in your current state, using OVMF + i440fx GPU pass through "works" but you get a server crash.  Using OVMF + Q35 "works" for everything BUT GPU passthrough.  Correct?  What about Q35 + SeaBIOS?  Did you try that and did that work for GPU pass through?

Yes this is correct. I might be doing something wrong, but if I try using SeaBIOS at all it can't find a boot device, so I'm not really able to test. It's the same even if I'm just using my cache drive instead of the separate SSD. 

 

On 7/23/2020 at 7:25 AM, testdasi said:

Would be a good idea to reattach new diagnostics.

 

Common problem with current gen Nvidia GPU: did you pass through all FOUR functions of the graphics card? All the post-RTX Nvidia graphics card has 4 functions (like sub-device), the GPU, the HDMI audio and 2x USB controllers. You must pass through all 4 for it to work.

 

Thanks for the suggestion, I did notice that when looking at the VM logs, and all 4 devices are being passed through. The only error I can find is the "2020-07-09 02:31:15.643+0000: Domain id=1 is tainted: custom-argv" line which is marked red. But I have no idea what that means haha. Here are my most recent diagnostics:

tommy-diagnostics-20200725-1540.zip

Posted

Try this new xml.

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>HTPC</name>
  <uuid>7d488047-bee1-0b58-04d5-e9481ef7c018</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>12582912</memory>
  <currentMemory unit='KiB'>12582912</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='7'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='9'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='10'/>
    <vcpupin vcpu='6' cpuset='5'/>
    <vcpupin vcpu='7' cpuset='11'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/7d488047-bee1-0b58-04d5-e9481ef7c018_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='a0123456789b'/>
    </hyperv>
	<kvm>
      <hidden state='on'/>
    </kvm>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' dies='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>
    <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='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xc'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='9' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:ae:83:02'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x01' 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'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/domains/vbios/TU116_edited.rom'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0' multifunction='on'/>
    </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='0x02' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x2'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x2'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x3'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
</domain>

 

Posted
5 hours ago, ThePockets said:

@testdasi Thank you for the help! That didn't seem to change anything, but I appreciate you helping me. What changes did you make to the XML file? Trying to learn XML still. Thanks again!

Changes to the xml:

  • Change vendor ID to dummy value instead of none as none sometimes doesn't work.
  • KVM hidden state on.
  • Group all the 4 functions of the graphics card to the same bus with multi-function on (i.e. mirror what the device actually is).

 

 There is this line in the qemu log which makes me think perhaps wrong vbios.

2020-07-25T21:37:58.007304Z qemu-system-x86_64: -device vfio-pci,host=0000:08:00.0,id=hostdev0,bus=pci.2,addr=0x0,romfile=/mnt/cache/domains/vbios/TU116_edited.rom: Failed to mmap 0000:08:00.0 BAR 3. Performance may be slow

 

A few more things for you to try:

  • Tools -> System Devices -> tick all 4 functions under 08:00 (i.e. your entire graphics card).
    Note: since you only have a single graphics card, you will lose Unraid display if you do this.
  • Try a different vbios.
    Note: only use xml mode to edit this line: "<rom file='/mnt/user/domains/vbios/TU116_edited.rom'/>". Don't use the GUI to edit as it will undo the multifunction change.
  • Boot Unraid in legacy mode
  • Add a 2nd low-end graphics card for Unraid to boot with.


 

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...