[Guide] Remote Gaming on Unraid

@DANgerous25 Wandering if your temps are showing up in the beta? Which motherboard you rocking? I have a similar build with a 3950x and GB x570 master, bit hesitant to update to the beta!

Hey @Guilty_One, yes they are (I think thanks to the Dynamix plugins) - I’m using the AsRock x570 Creator motherboard. However, if you currently are on a stable build for your setup, I’d suggest avoiding beta 22 for now until the issues are ironed out. Otherwise you might have to do a fair bit of messing about, like I did, to get your Win 10 VM(s) working - or worse re-install them like I did.

One other point worth mentioning though, and not sure if this is a fluke or exactly why this is: My 3DMark/Timespy benchmark on the previous beta was ~10000, on this beta with the various hacks to make it work it’s around ~11500. In both cases that’s with no overclocking on the CPU, and using the MSI afterburner “beta” feature that automatically determines the optimal clock settings for my RTX 2080 Super. Apart from the differences I mentioned in my previous post, I believe that I built the VMs in exactly the same way.

@DANgerous25 hey Dan i couldn’t resist i updated to 6.9 Beta22. Oh boy you weren’t wrong…

  1. Adding @tin1 lines to the XML
    and

Helped me to get to the windows but Code 43 was waiting there for me.
So to fix that i disabled the PCIe ACS override. In Tools>System devices, Bind all 4 devices from NVIDIA and the piece to tie them all

(From u/Lucavon https://www.reddit.com/r/VFIO/comments/gf53o8/upgrading_to_qemu_5_broke_my_setup_windows_bsods/?sort=qa)

But im still having problems with my PCIe sound card, windows sees it, the driver installs but no sound!? But i still have the NVIDIA HD Audio working so thats good.
I hope it helps someone, just returning the favor since @JDM_WAAAT did a great guide to get me this far. Thank you!!!

1 Like

I was given this link to fix my ongoing issues https://www.reddit.com/r/unRAID/comments/haxdyf/gpu_passthrough_not_working/

Follows this with both a SEABIOS and a OVMF version of the VM i’m making. I cannot get the OVMF to install windows, goes straight to shell. I’ve tried only 1 CPU core, i’m tried doing exit/continue, tried dong the fs0: and fs1: but none of the above works to let me install windows.

The SEASBIOS one will boot fine with VNC but not the GPU enabled.

@Remamian More info needed…Which Version you running? What does your VM log say and your SysLog? What steps you take? Did you follow the guide? Whats your XML look like?
Search Discord servers of serverbuilds and unraid if you cant find the answer here!

Hi there,

I followed @JDM_WAAAT guide - thanks for that!
Everything works fine until [9.1]

I can’t get my vm to run as soon as I changed the Graphics card to my ASUS AMD VEGA56
Until that change I can connect to the vm via VNC - no problem. VM running smooth and stable.

If I boot with my ASUS AMD VEGA56 the VM-log shows:

2020-06-24T22:00:57.829007Z qemu-system-x86_64: -device vfio-pci,host=0000:03:00.0,id=hostdev0,bus=pci.0,addr=0x6: Failed to mmap 0000:03:00.0 BAR 0. Performance may be slow

or - if I use a vbios it looks like that – only differencing in the file reference to vbios.
2020-06-24T21:48:36.718375Z qemu-system-x86_64: -device vfio-pci,host=0000:03:00.0,id=hostdev0,bus=pci.0,addr=0x6,romfile=/mnt/cache/isos/Asus.RXVega56.8192.171121.rom: Failed to mmap 0000:03:00.0 BAR 0. Performance may be slow

And than it seems to hang because the vm wont shown up in my LAN - i was running a persistant LAN-scan to see if it will appear.

Honestly I’m not sure what of the steps in section 8.0 I need to do, because of the following things

  1. Guide says, GPU-VBIOS not necessary for AMD cards - and I got one!
  2. I downloaded all VBIOS from the page for my ASUS ROG STRIX (VEGA 56) but NONE of those got a text field “vga compatible”
  3. Due to 2) I’m not able to edit the vbios.rom even if I need to use a vbios. :see_no_evil:
  4. I also tried it with unedited vbios.roms - same results

Hopefully someone has an idea or a hint for me. I don’t get it!
Thanks in advance and have a nice day.–

I also attached a linkt to my tries for more details.
DOWNLOAD-LINK

:slight_smile: At least it is fun trying to work through the problems, no?

I’m not sure what to suggest about your sound card. I’m also using Nvidia HD audio and didn’t even try to get the sound card working, but that’s fine for me.

Out of interest, did you see a performance gain like I did?

Update to my first post HERE
I get rid of the mmap error using those commands

echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind

but the VM doesnt shown up in my LAN as soon as I changed the GPU/soundcard to my VEGA :frowning:

Any ideas?

Is it possible that the HDMI dummy is defective and that can cause “a hang” so that Windows dont get a valid IP? Is there any way to check/verify that the hdmi dummy working correctly?

I’m not even sure if the VM boots correctly and gets no IP-address or if the VM crashes at the boot. There are no errors/warnings in the vm-log (see below)

2020-06-25 17:41:52.030+0000: starting up libvirt version: 5.10.0, qemu version: 4.2.0, kernel: 4.19.107-Unraid, hostname: v1ew-s0urce
LC_ALL=C \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
HOME=/var/lib/libvirt/qemu/domain-5-1337-Machine \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-5-1337-Machine/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-5-1337-Machine/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-5-1337-Machine/.config \
QEMU_AUDIO_DRV=none \
/usr/local/sbin/qemu \
-name guest=1337-Machine,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-5-1337-Machine/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/a302cf39-f5ea-18bd-c9a1-3d4b4993bea1_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-4.2,accel=kvm,usb=off,dump-guest-core=off,mem-merge=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format \
-cpu host,host-cache-info=on,l3-cache=off \
-m 16384 \
-overcommit mem-lock=off \
-smp 4,sockets=1,cores=2,threads=2 \
-uuid a302cf39-f5ea-18bd-c9a1-3d4b4993bea1 \
-display none \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=34,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.0,addr=0x7 \
-device ahci,id=sata0,bus=pci.0,addr=0x5 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 \
-blockdev '{"driver":"host_device","filename":"/dev/nvme0n1","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 virtio-blk-pci,scsi=off,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.173-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 ide-cd,bus=sata0.1,drive=libvirt-1-format,id=sata0-0-1 \
-netdev tap,fd=36,id=hostnet0,vhost=on,vhostfd=37 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:71:0a:72,bus=pci.0,addr=0x2 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=38,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-device vfio-pci,host=0000:03:00.0,id=hostdev0,bus=pci.0,multifunction=on,addr=0x6,romfile=/mnt/user/isos/Asus.RXVega56.8192.171120.rom \
-device vfio-pci,host=0000:03:00.1,id=hostdev1,bus=pci.0,addr=0x6.0x1 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-06-25 17:41:52.030+0000: Domain id=5 is tainted: high-privileges
2020-06-25 17:41:52.030+0000: Domain id=5 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)

Fantastic guide! Running great for me. However I don’t have the H.265 host setting in parsec. I have it under client, but not host. Does that mean my gpu doesn’t support it? I’m using a GTX 1060 3GB.

The 1060 3GB supports it. I believe they have removed the option from the host, meaning you only need to select it on the client now.

1 Like

YES it is actually!!! :smiley: The end result speaks for itself!

Yes a slight bump for me too!!!

1 Like

Does anybody use a 21:9 display on client site - and with an AMD card?
Is there any way to add a 21:9 resolution? I searched within “AMD Radeon Software” but couldn’t find anything…

probably need to figure out how to get it to output to a custom resolution

I get it managed to set a custom output via Radeon Software.
Sadly it’s not able to run 3440x1440 at 60 Hz. It’s just possible to run at 30 Hz.
Not sure why, because my LG definitely runs at 60Hz.

But it’s not a tragic.
I have changed to 2560x1440 and even with this my host seems not to be able to stream in an acceptable quality at this resolution.
I got a lot of artifacts when scrolling in/out at gaming.
Very worse - so I think I cancel my wish of a higher resolution with my current hardware.

1080p seems to be fine, but I need to made some fine tuning.

But maybe someone can help me, whats bringing more power to my rig? Only with focus of “game streaming” in my LAN. (no remote gaming via WAN)
A new CPU/Board or a new GPU. Ok - honestly both would be perfect, but sadly my budget is not able to cover both at the same time.

My current CPU: i7 6700 (non-k)
My current board: ASUS Hero VIII
My current GPU: ASUS Rog Strix Vega 56 OC

Maybe a change to a Ryzen would be better (cost efficiency)? Or just upgrading CPU/GPU?

For information:
My client is a MacMini 2018 6-core i7 @ 3,2GHz - wired connection (1GbE)

Thanks for any tips/hints

First off, this guide is the bee’s knees, thanks so much for putting it together!

I’ve been planning a really over the top Threadripper 3970X build just for this use case. Plenty of horsepower, plenty of pcie, and it’s the line that stomped a mudhole in Intel’s behind.

Now, I noticed your chart had Ryzen 3rd gen in there, but I couldn’t find any TR references. I plan on a TR 3970 with a 5700 and pcie 4.0 nvme for a linux VM and a big boy card for a Windows VM with another Gen 4 pcie. 16gb of ddr4 3600 a piece, with a bunch of stuff running in the background (Oh yeah, and the MSI addin card for nvme that comes with the creator

Has anyone taken a TR3 and tried this? I don’t like cars, no need to buy guns, and am nearing a midlife crisis purchase. Might as well make it a BIG one lol

Threadripper 3 should work fine. To my knowledge there’s nothing inherently different enough to prevent it from working the same as any other modern CPU. The real issue with TR CPUs is pricing, they are very expensive.

However, AMD GPUs, like the 5700 you mentioned, won’t be the best choice for remote play. The hardware encoder looks absolutely terrible and I would not recommend it for that use. However, if it’s local play and not for network game streaming, quality will look fine.

Specifically regarding the 5700 series, these GPUs have some architectural issues that cannot be resolved by BIOS and driver updates. The gist of it is down clocking / aggressive power savings. This causes hitching and low performance in some games, especially at 1080p. If you already own this GPU, consider selling it. You can read more about this by googling it. Some have found fixes, but it’s very hit or miss. AMD still acknowledges the issue without providing a fix, even in the latest driver notes.

Well, since I do a build once every 7 years, I get to go big lol. Anyways, TR3 is too exciting to pass by.

For the remote part, I could do a 2070 Super (I can’t bare to think of buying a 2080) but I’d mostly be doing local. I know that Wendall over at levelonetechs was working on the vfio bug which if AMD fixes, I’d be much happier about, but I could do nvidia for Windows and AMD for Linux.

Does unraid still require a gpu to boot? I have a vfio build(similar to this type of setup) and have nvidia for the host and amd for the guest but would like to go with both gpu to its own vm. So I was thinking if unraid doesn’t need a gpu to boot, one card for my vm and the other for my girlfriends vm and consolidate computers. If it does need one then I guess I need a new board.

One thing I’ve noticed in this thread that’s different from vfio build threads is the lack of motherboards being mentioned. From what I’ve gathered so far with vfio specific builds the motherboard is one of if not the most crucial part to getting things to work. Is it different under unraid?

I use my server without a GPU. Both GPUs I have are passed through to 2 gaming VMs for my kids. I just access and manage it from my rig through the browser.

Haven’t used unraid in years(6+?) and wasn’t sure. Ltt did a video not too long ago,I think, and mentioned using a gt7xx series to get it to boot. My intentions are to use only the webui. Thanks for the info, got something to try out next weekend.