Jump to content

Gaming with unRAID [Solved]


Go to solution Solved by shpitz461,

Recommended Posts

Hello! Can anyone suggest an updated Gaming VM guide? I've spent an entire day with various guides I've found online (including SpaceInvaderOne's) and every one has a part that is not up to date with the current unRAID OS. 

 

I can't get any video output with it connected with HDMI and the RTX 2080 TI is bound. Thanks!

Edited by Keek Uras
Link to comment
1 hour ago, Jumbo_Erdnuesse said:

Maybe this will help you:

 

Since you are using Nvidia RTX card you will need to use a vbios added to the gpu passthrough. You can add this in the VM template.

 

 

Thank you for the response. Still no luck, just a black screen. Also, having a vBIOS gives me this error:
 

2023-01-02T16:49:06.327152Z qemu-system-x86_64: -device {"driver":"vfio-pci","host":"0000:01:00.0","id":"hostdev0","bus":"pci.0","addr":"0x5","romfile":"/mnt/cache/appdata/domains/EVGA.RTX2080Ti.11264.181024_1.rom"}: Failed to mmap 0000:01:00.0 BAR 1. Performance may be slow

 

I did remove the header with a hex editor:

 

image.png.e1b9d25abf442525905ea338c3b501e1.png

 

Any other suggestions?

 

Thanks,
~K

Edited by Keek Uras
added details
Link to comment

You could look up your card on https://www.techpowerup.com/vgabios/ and find your bios there.

 

Maybe something went wrong with your vbios dump?

 

Nvidia cards are known to cause issues with passthrough.

 

I used a lot of information from this https://forums.serverbuilds.net/t/guide-remote-gaming-on-unraid/4248 it is one of the best written how-to´s i could find. Almost everthing in this how-to from chapter 6,7,8 and 9 worked for me.

 

Also worth looking: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Prerequisites

Edited by Jumbo_Erdnuesse
Link to comment
6 hours ago, Jumbo_Erdnuesse said:

You could look up your card on https://www.techpowerup.com/vgabios/ and find your bios there.

 

Maybe something went wrong with your vbios dump?

 

Nvidia cards are known to cause issues with passthrough.

 

I used a lot of information from this https://forums.serverbuilds.net/t/guide-remote-gaming-on-unraid/4248 it is one of the best written how-to´s i could find. Almost everthing in this how-to from chapter 6,7,8 and 9 worked for me.

 

Also worth looking: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Prerequisites

I didn't dump my own, that's where I got the vBIOS file from.

 

I'll try it again once I get the card back. Thanks.

Link to comment
On 1/2/2023 at 5:55 PM, Keek Uras said:
Failed to mmap 0000:01:00.0 BAR 1. Performance may be slow

This is usually because the gpu is not properly isolated, efifb may be the culprit, search this forum for fixes.

 

On 1/2/2023 at 9:09 PM, Keek Uras said:

image.png.34aee12c781816e2b3651351fde2b58b.png

 

When the gpu is isolated it means that it's not available for the host, so it's fine that the nvidia driver in unraid will not load. The proper dirver to be loaded will be that inside the vm.

 

19 hours ago, Keek Uras said:

I didn't dump my own, that's where I got the vBIOS file from.

It should be better to dump your own, if possible, otherwise make sure that what you are downloading is the vbios for your exact model, then check and remove the nvidia header.

  • Thanks 1
Link to comment
  • Solution

Another thing that might help is add the following feature:

<features>
    ...
    <hyperv>
      ...
      <vendor_id state='on' value='0123756792CD'/>

      ...
    </hyperv>
  </features>

 

value is a 12-character random string

And @ghost82 suggestion, edit /boot/syslinux/syslinux.cfg and add 'video=efifb:off' after 'append', like this:

image.png.770c67db84d448619a615ae9ea0a516e.png

 

And see if this helps.

  • Thanks 1
Link to comment
  • 2 weeks later...
On 1/4/2023 at 3:42 AM, ghost82 said:

This is usually because the gpu is not properly isolated, efifb may be the culprit, search this forum for fixes.

 

 

When the gpu is isolated it means that it's not available for the host, so it's fine that the nvidia driver in unraid will not load. The proper dirver to be loaded will be that inside the vm.

 

It should be better to dump your own, if possible, otherwise make sure that what you are downloading is the vbios for your exact model, then check and remove the nvidia header.

I am 100% sure that I have the correct BIOS file and I did the header per SpaceInvaderOne's video. Can you elaborate on not properly isolated? If it is bound, that is the only criteria for isolation, correct?

 

VM Log - note the very last line. 

2023-01-12 23:41:18.471+0000: starting up libvirt version: 8.7.0, qemu version: 7.1.0, kernel: 5.19.17-Unraid, hostname: REPOSITORY
LC_ALL=C \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
HOME='/var/lib/libvirt/qemu/domain-1-Windows 10 Gaming Bo' \
XDG_DATA_HOME='/var/lib/libvirt/qemu/domain-1-Windows 10 Gaming Bo/.local/share' \
XDG_CACHE_HOME='/var/lib/libvirt/qemu/domain-1-Windows 10 Gaming Bo/.cache' \
XDG_CONFIG_HOME='/var/lib/libvirt/qemu/domain-1-Windows 10 Gaming Bo/.config' \
/usr/local/sbin/qemu \
-name 'guest=Windows 10 Gaming Box,debug-threads=on' \
-S \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-1-Windows 10 Gaming Bo/master-key.aes"}' \
-blockdev '{"driver":"file","filename":"/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
-blockdev '{"driver":"file","filename":"/etc/libvirt/qemu/nvram/06b53379-7f3c-3e7b-0284-8a23108d8f77_VARS-pure-efi.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' \
-machine pc-i440fx-7.1,usb=off,dump-guest-core=off,mem-merge=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format \
-accel kvm \
-cpu host,migratable=on,hv-time=on,host-cache-info=on,l3-cache=off \
-m 16896 \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":17716740096}' \
-overcommit mem-lock=off \
-smp 12,sockets=1,dies=1,cores=6,threads=2 \
-uuid 06b53379-7f3c-3e7b-0284-8a23108d8f77 \
-display none \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=36,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device '{"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb","bus":"pci.0","addr":"0x7"}' \
-device '{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.0","addr":"0x4"}' \
-blockdev '{"driver":"file","filename":"/mnt/user/appdata/domains/Windows 10 Gaming Box/vdisk1.img","node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-2-storage"}' \
-device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x3","drive":"libvirt-2-format","id":"virtio-disk2","bootindex":1,"write-cache":"on"}' \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/virtio-win-0.1.225-2.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device '{"driver":"ide-cd","bus":"ide.0","unit":1,"drive":"libvirt-1-format","id":"ide0-0-1"}' \
-netdev tap,fd=37,vhost=on,vhostfd=39,id=hostnet0 \
-device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:27:03:94","bus":"pci.0","addr":"0x2"}' \
-chardev pty,id=charserial0 \
-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-chardev socket,id=charchannel0,fd=35,server=on,wait=off \
-device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' \
-device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"2"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-device '{"driver":"ich9-intel-hda","id":"sound0","bus":"pci.0","addr":"0x8"}' \
-device '{"driver":"hda-duplex","id":"sound0-codec0","bus":"sound0.0","cad":0,"audiodev":"audio1"}' \
-device '{"driver":"vfio-pci","host":"0000:01:00.0","id":"hostdev0","bus":"pci.0","addr":"0x5","romfile":"/mnt/cache/appdata/domains/EVGA.RTX2080Ti.11264.181024_1.rom"}' \
-device '{"driver":"vfio-pci","host":"0000:01:00.1","id":"hostdev1","bus":"pci.0","addr":"0x6"}' \
-device '{"driver":"usb-host","hostdevice":"/dev/bus/usb/001/008","id":"hostdev2","bus":"usb.0","port":"1"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
char device redirected to /dev/pts/0 (label charserial0)
2023-01-12T23:41:20.388850Z qemu-system-x86_64: -device {"driver":"vfio-pci","host":"0000:01:00.0","id":"hostdev0","bus":"pci.0","addr":"0x5","romfile":"/mnt/cache/appdata/domains/EVGA.RTX2080Ti.11264.181024_1.rom"}: Failed to mmap 0000:01:00.0 BAR 1. Performance may be slow

 

This is from system devices:
 

image.thumb.png.b5ee3d94edd18040d271a65f8f49fc10.png

 

I searched the forum regarding efifb, and all I found was people inserting it into their syslinux.cfg, which doesn't seem to work for me. Let me know if there is anything else I could provide that might shine more light on things. Thanks!

Edited by Keek Uras
clean up post
Link to comment
On 1/4/2023 at 8:57 AM, shpitz461 said:

Another thing that might help is add the following feature:

<features>
    ...
    <hyperv>
      ...
      <vendor_id state='on' value='0123756792CD'/>

      ...
    </hyperv>
  </features>

 

value is a 12-character random string

And @ghost82 suggestion, edit /boot/syslinux/syslinux.cfg and add 'video=efifb:off' after 'append', like this:

image.png.770c67db84d448619a615ae9ea0a516e.png

 

And see if this helps.

I don't have  HyperV enabled (per the video on unRAID's gaming VMs home page), so there is no section to add that to.

 

I had to remove that line from my syslinux.cfg. After adding it and restarting, I couldn't get my server to boot up past that modified line. 

Link to comment

I went ahead and checked iomem as well. I don't see any reference to BAR 1.
 

root@REPOSITORY:~# cat /proc/iomem
00000000-00000fff : Reserved
00001000-0009dfff : System RAM
0009e000-0009efff : Reserved
0009f000-0009ffff : System RAM
000a0000-000fffff : Reserved
  000a0000-000bffff : PCI Bus 0000:00
  00000000-00000000 : PCI Bus 0000:00
  00000000-00000000 : PCI Bus 0000:00
  00000000-00000000 : PCI Bus 0000:00
  000e0000-000effff : PCI Bus 0000:00
  000f0000-000fffff : System ROM
00100000-5da66017 : System RAM
  03000000-03c01e07 : Kernel code
  03e00000-041d2fff : Kernel rodata
  04200000-043a463f : Kernel data
  04839000-049fffff : Kernel bss
5da66018-5da72857 : System RAM
5da72858-5da73017 : System RAM
5da73018-5da92e57 : System RAM
5da92e58-63e94fff : System RAM
63e95000-63e95fff : Reserved
63e96000-63e9bfff : System RAM
63e9c000-63e9cfff : Reserved
63e9d000-6ab4afff : System RAM
6ab4b000-6ac3efff : Reserved
6ac3f000-6dd88fff : System RAM
6dd89000-6dd89fff : Reserved
6dd8a000-705c0fff : System RAM
705c1000-742c0fff : Reserved
742c1000-7451efff : ACPI Tables
7451f000-7471efff : ACPI Non-volatile Storage
7471f000-75ffefff : Reserved
75fff000-75ffffff : System RAM
76000000-79ffffff : Reserved
7a600000-7a7fffff : Reserved
7b000000-807fffff : Reserved
80800000-bfffffff : PCI Bus 0000:00
  80800000-80800fff : 0000:00:1f.5
  80900000-80efffff : PCI Bus 0000:05
    80900000-8097ffff : 0000:05:00.0
    80980000-809bffff : 0000:05:00.0
      80980000-809bffff : mpt2sas
    809c0000-80dbffff : 0000:05:00.0
    80dc0000-80dc3fff : 0000:05:00.0
      80dc0000-80dc3fff : mpt2sas
    80dc4000-80e03fff : 0000:05:00.0
  80f00000-811fffff : PCI Bus 0000:06
    80f00000-80f7ffff : 0000:06:00.0
    80f80000-80fbffff : 0000:06:00.0
      80f80000-80fbffff : mpt2sas
    80fc0000-8117ffff : 0000:06:00.0
    81180000-81183fff : 0000:06:00.0
      81180000-81183fff : mpt2sas
    81184000-8119ffff : 0000:06:00.0
  82000000-83ffffff : 0000:00:0e.0
    82000000-83ffffff : VMD MEMBAR1
  84000000-850fffff : PCI Bus 0000:01
    84000000-84ffffff : 0000:01:00.0
      84000000-84ffffff : vfio-pci
    85000000-8507ffff : 0000:01:00.0
    85080000-85083fff : 0000:01:00.1
      85080000-85083fff : vfio-pci
    85084000-85084fff : 0000:01:00.3
  85100000-85afffff : PCI Bus 0000:04
  85d00000-85dfffff : PCI Bus 0000:03
    85d00000-85d03fff : 0000:03:00.0
      85d00000-85d03fff : nvme
  85e00000-85efffff : PCI Bus 0000:02
    85e00000-85e03fff : 0000:02:00.0
      85e00000-85e03fff : nvme
  85f00000-85f1ffff : 0000:00:1f.6
    85f00000-85f1ffff : e1000e
  85f20000-85f21fff : 0000:00:17.0
    85f20000-85f21fff : ahci
  85f22000-85f227ff : 0000:00:17.0
    85f22000-85f227ff : ahci
  85f23000-85f230ff : 0000:00:17.0
    85f23000-85f230ff : ahci
c0000000-cfffffff : PCI MMCONFIG 0000 [bus 00-ff]
  c0000000-cfffffff : Reserved
    c0000000-cfffffff : pnp 00:05
e0690000-e069ffff : INTC1056:00
e06a0000-e06affff : INTC1056:00
e06b0000-e06bffff : INTC1056:00
e06d0000-e06dffff : INTC1056:00
e06e0000-e06effff : INTC1056:00
fe000000-fe010fff : Reserved
fec00000-fec00fff : Reserved
  fec00000-fec003ff : IOAPIC 0
fed00000-fed00fff : Reserved
  fed00000-fed003ff : HPET 0
    fed00000-fed003ff : PNP0103:00
fed20000-fed7ffff : Reserved
  fed40000-fed44fff : MSFT0101:00
    fed40000-fed44fff : MSFT0101:00
fed91000-fed91fff : dmar0
feda0000-feda0fff : pnp 00:05
feda1000-feda1fff : pnp 00:05
fedc0000-fedc7fff : pnp 00:05
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : Reserved
ff000000-ffffffff : Reserved
100000000-107f7fffff : System RAM
107f800000-107fffffff : RAM buffer
4000000000-7fffffffff : PCI Bus 0000:00
  4000000000-40120fffff : PCI Bus 0000:01
    4000000000-400fffffff : 0000:01:00.0
      4000000000-400086ffff : efifb
    4010000000-4011ffffff : 0000:01:00.0
      4010000000-4011ffffff : vfio-pci
    4012000000-401203ffff : 0000:01:00.2
    4012040000-401204ffff : 0000:01:00.2
  4012100000-40122fffff : PCI Bus 0000:04
  4012300000-4012300fff : 0000:00:15.0
  4014000000-4015ffffff : 0000:00:0e.0
  4016000000-40160fffff : 0000:00:1f.3
  4016100000-40161fffff : 0000:00:0e.0
    4016102000-40161fffff : VMD MEMBAR2
  4016200000-401620ffff : 0000:00:14.0
    4016200000-401620ffff : xhci-hcd
  4016210000-4016217fff : 0000:00:0a.0
  4016218000-401621bfff : 0000:00:1f.3
  401621c000-401621ffff : 0000:00:14.2
  4016220000-40162200ff : 0000:00:1f.4
  4016221000-4016221fff : 0000:00:16.0
  4016223000-4016223fff : 0000:00:14.2
root@REPOSITORY:~# 

 

Link to comment
On 1/4/2023 at 8:57 AM, shpitz461 said:

And @ghost82 suggestion, edit /boot/syslinux/syslinux.cfg and add 'video=efifb:off' after 'append', like this:

image.png.770c67db84d448619a615ae9ea0a516e.png

 

And see if this helps.

I apologize, I just found another post by @ghost82 that says you won't see any output on the screen once that line is processed. I did not know that. I will add it back and try again. 

Link to comment
1 hour ago, Keek Uras said:

I apologize, I just found another post by @ghost82 that says you won't see any output on the screen once that line is processed. I did not know that. I will add it back and try again. 

We have success! That one line in the config fixed it. Thank you folks so much for your help!

  • Like 1
Link to comment
  • Keek Uras changed the title to Gaming with unRAID [Solved]

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...