[Support] Josh5 - Steam (Headless)


Recommended Posts

Yeah it seems that it completely ignores the available devices as I mentioned earlier. I tried with some games now. It feels like it actually uses 0 rendering through the gpu according to nvidia-smi.. I think 2 things: if you specify a gpu and not "all" it craps up and the fact you need "privileged" enabled it bypasses the visible devices and just exposes all. 

 

I think in some way it gets confused and doesn't assign the gpu properly due to this. 

 

 

 

I could be completely wrong ofc, but that's my observation 

Edited by djmulder
Link to comment
On 1/8/2023 at 9:47 AM, djmulder said:

Hey @Josh.5,

 

first off.. awesome project this is perfect for a gaming system for my kid.. he got a chromebook from santa and I was looking for a system to have him still play proper games..

 

But that leads me to the problems I'm having: I know it's not really made for it yet I'm still trying to make it work... minecraft.. specifically modded. I got to a point where I am using flatpak to install PolyMC, with that I can command line start an instance and even connecting to a server which seems to work even in Steam (I can just add an external game and boom it's there) ... 

 

Just it's so extremely slow.. it's got a beefy machine available, 6 cores with 6 HTs (it's an Epyc 7282), all the ram in the world (128Gb), a 1660Ti and it's on a NVME disk... so I can't imagine it's the machine.. could it be that docker's IO just doesn't like the amount of loading Modded Minecraft does? (tho a server runs fine, which I'd imagine has the same IO available to it)

 

Help me Josh-i-one-kenobi.. you're my only hope.

 

Oh and an issue I'm having is: It seems to ignore "NVIDIA_VISIBLE_DEVICES" I have 2 graphics cards in my server but only gave 1 card access to the docker (with the guid and all on capabilities) yet steam / minecraft seems to still recognize there's 2 

Would you be able to DM me on Discord to discuss your progress?

Link to comment
On 1/9/2023 at 1:45 PM, SeanFrank said:

I've run into an interesting issue where this container is exposing ALL files on my NAS to anyone who has access to the share it stores its games on.

 

Here is an example of a folder that is exposed:  S:\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\disk8\Media\Cinema

 

S is a Network drive on my system.  RTP games is where my game files live, and where this container keeps its steam directory.  It's in the folder I mapped, referenced below.  Anyone with access to this share, can access all files on every disk of my Unraid box.

 

I checked the mapping on the container template, and I only gave it access to:  /mnt/user/Software/

 

But somehow it can see every file on my Unraid box.  And windows users can click through the share to see them.  And the program Everything exposes them readily...  This is very concerning.  As a workaround, I'm going to create a new share, and put my Steam files there, and not give anybody access to it...

 

But what could have caused this?  I didn't give it any credentials.  Maybe because its a Privileged application?

 

I'm especially concerned that I'll delete something I don't want to, while I'm trying to clean this up...

I'm not following sorry. Are you able to share a video or something explaining what is happening?

Link to comment
4 hours ago, Josh.5 said:

I'm not following sorry. Are you able to share a video or something explaining what is happening?

Thanks for your reply.  Hopefully this will help.

 

The only directory I mapped in the the Docker template is "/mnt/user/Software/"

This is an Unraid share named "Software", which is shared with others.

 

I told Steam-headless container to use this directory for steam games:  /mnt/user/Software/RTP Games/Steam/

 

When a user browses the "Software" share, they can see all files on all devices in my Unraid system.  Effectively exposing all files on the system to anyone with access to that share.  They can open and edit.

 

So they can just just browse all the way to:

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\disk1

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\disk2

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\cache

etc

 

Everything between "\Steam\" and  "\mnt\" was generated by this container.  

\mnt\disk1,2,3 cache, etc,  is every drive plugged into my system. 

You can then open these folders and see everything on every disk.

 

I had the Nvidia Available devices setting set to "all" before.  I JUST changed it and specified the GPU, and it didn't make a difference.  But these links work when the container was not running, so it probably wouldn't help now.

 

If I look at the file properties of this folder:

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt

my computer thinks it is much bigger than my total storage space, lol!

 

Hopefully this helps clarify the issue.

 

Whatever happens, thanks for your work on this container.  It's the only way I managed to run any games on this system, after wasting far too many weekends trying to pass through a GPU to a VM.

Link to comment

Set a decent password for the steamheadless & also a VNC code. If you only turn it on when needed shouldn't be such a problem.

 

Anyway...

GPU passthough is easier than made out.

You dont need to do any of the stuff in videos..

Set up the VM with software VNC.

Go to tool system devices scroll down and tick the NVIDIA GPU or AMD GPU & its soundcard.

Reboot unraid.

Load the VM.

Click to open VNC in web browser.

Install vindows etc.

Set up windows user.

Close VM.

Edit VM.

Add 2nd graphics card choose your AMD or Nvidia device.

Add sound card choose your AMD or Nvidia device.

Apply.

Start VM.

It should automatically install basic drivers for the card.

Now go to amd or nvidia and download the drivers for you card install.

Reboot VM.

Now you have a gaming VM.

 

Anyway steam-headless is very nice as an alternative to a gaming VM. It will also allow your CPU to boost better which = better gaming. With a gaming VM unraid seems to limit the whole CPU cores to a general boost. Where as in steamheadless a docker gets better CPU turbo boosting.

Link to comment

I have been using your container for months now and absolutely loving it! 

 

Any chance you could advise me on how to install libnvidia-encode1? It's to my understanding that this is all that would be needed to enable nvenc support. Thank you again for your amazing work.

 

Edit: trying to install it from apt requires it to run the Nvidia uninstaller and errors if accepted or declined unfortunately. 

Edited by Tem
Additional information
Link to comment

Hi,

 

Since I've came across this app, I wanted to retire my win gaming VM with steam installed and switch over to this solution. I'm mainly using steam for remote play to have better graphical fidelity (and longer battery life) when using my steam deck.

 

As a first try, I've tried to get cyberpunk to run. However, the REDLauncher, which is mandatory for cloud saves and such, fails to load with the "no qt plugin could be initialized". 

 

Has anyone solved this issue? Or are you all just playing games natively available on linux and/or without the required launchers?

  • Like 1
Link to comment

Thanks for this container. What a slick setup. While waiting for my new GTX 1650 to arrive (yes, I know - not a high-end card but still better than what's in the Steam Deck and should be fine for streaming), I was about to setup a Windows VM but then saw this. I tested Hades using a Quadro P400 that I have and it actually worked reasonably well. Obviously that card is no good for larger games. I also ordered a Retroid Pocket 3+ to use as a streaming handheld. I find the Deck too large, loud (fan) and with poor battery life, I don't feel the urge to use it. I am more often using my Nintendo Switch but the lack of AAA titles is tough to take at times. I think this could be the ideal setup. It's also nice having a nearly bottomless pit of Unraid storage to hold all the games.

Link to comment
3 hours ago, WoRie said:

Hi,

 

Since I've came across this app, I wanted to retire my win gaming VM with steam installed and switch over to this solution. I'm mainly using steam for remote play to have better graphical fidelity (and longer battery life) when using my steam deck.

 

As a first try, I've tried to get cyberpunk to run. However, the REDLauncher, which is mandatory for cloud saves and such, fails to load with the "no qt plugin could be initialized". 

 

Has anyone solved this issue? Or are you all just playing games natively available on linux and/or without the required launchers?

 Open up steam go to settings go to remote play click enable remote play choose proton experinental. Steam then relaunches.

On cyberpunk click settings force proton experimental then relaunch the game it will load, I did this earlier.

 

Also if you want to enable ray tracing paste this into launch options in steam for cyberpunk just below where you told it to use proton experimental

 

VKD3D_CONFIG=dxr11 PROTON_CONFIG=dxr11 VKD3D_FEATURE_LEVEL=12_1 PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 -dx12

 

  • Thanks 1
Link to comment
2 hours ago, dopeytree said:

 Open up steam go to settings go to remote play click enable remote play choose proton experinental. Steam then relaunches.

On cyberpunk click settings force proton experimental then relaunch the game it will load, I did this earlier.

 

Also if you want to enable ray tracing paste this into launch options in steam for cyberpunk just below where you told it to use proton experimental

 

VKD3D_CONFIG=dxr11 PROTON_CONFIG=dxr11 VKD3D_FEATURE_LEVEL=12_1 PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 -dx12

 

 

Thanks for the suggestion. I already ran it that way, but sadly it doesn't work. The problem seems to be the launcher. It also won't work, when I try to run it directly from the VNC session, resulting in the same error

 

image.png.1a77af782b30b15f65addcde90c21430.png

Link to comment
1 hour ago, dopeytree said:

Ok actually this happens when theres no GPU. Go back to the docker click edit and advanced mode. Then read the instructions on telling it you have an Nvidia card. It's copy & paste. Easy but say if you need more help. 🙂

Ok, thanks for the heads-up. I thought that the guide was for an older version, since I didn't see the input field in basic view... 🙈I've since added the parameters.

 

However, that didn't solve my problem with the REDLauncher... anything else I could try? I already verified the integrity of the local install, without issues.

Link to comment

Guessing reloading the docker doesn't do anything?

 

Is there any code in the custom launch options for the game so steam -> library -> cyberpunk2077 -> settings

If there is anything could try removing that.

 

I did read somewhere else today there is a bug in steam beta in the current version but this is a red launcher issue.

Link to comment
17 hours ago, dopeytree said:

Guessing reloading the docker doesn't do anything?

 

Is there any code in the custom launch options for the game so steam -> library -> cyberpunk2077 -> settings

If there is anything could try removing that.

 

I did read somewhere else today there is a bug in steam beta in the current version but this is a red launcher issue.

 

I had no other options selected for launch options

 

adding "--launcher-skip" to the launch options will start the game with my nvidia gpu being used. However, the REDLauncher is not working. I've tried several different proton versions to no avail. 

 

I really need the launcher, since I play on XBOX and my Steamdeck. Without the launcher, there is no cloud saving. Witcher 3 uses the same system and I wanted to play this next. :( 

 

For the time being, I can passthrough the GPU to a Windows VM and make it work, but not tying my GPU to one single VM would be preferred.

 

Maybe @Josh.5 has another idea what to do about that stupid launcher app?

Link to comment
On 1/13/2023 at 4:37 PM, WoRie said:

 

I had no other options selected for launch options

 

adding "--launcher-skip" to the launch options will start the game with my nvidia gpu being used. However, the REDLauncher is not working. I've tried several different proton versions to no avail. 

 

I really need the launcher, since I play on XBOX and my Steamdeck. Without the launcher, there is no cloud saving. Witcher 3 uses the same system and I wanted to play this next. :( 

 

For the time being, I can passthrough the GPU to a Windows VM and make it work, but not tying my GPU to one single VM would be preferred.

 

Maybe @Josh.5 has another idea what to do about that stupid launcher app?

Have you tried:

In the Steam game library, search for Cyberpunk 2077 and right-click on it with the mouse. In the right-click menu, select “Properties” to access the game’s properties. 

Inside the properties window, locate “Compatibility.” Then, check “Force the use of a specific Steam Play compatibility tool.”

Link to comment

Have you definitely done the below edit to the docker and then restarted the docker so it downloads the nvidia driver? you can click the docker & watch the logs to see the progress. 

NVIDIA GPU:

To enable NVIDIA GPU support, ensure that you have installed the Nvidia-Driver plugin and add the *"--runtime=nvidia"* parameter added to "Extra Parameters:" - This is accessed by clicking advanced view in the top right

 

Edited by dopeytree
Link to comment
On 1/11/2023 at 3:51 PM, SeanFrank said:

Thanks for your reply.  Hopefully this will help.

 

The only directory I mapped in the the Docker template is "/mnt/user/Software/"

This is an Unraid share named "Software", which is shared with others.

 

I told Steam-headless container to use this directory for steam games:  /mnt/user/Software/RTP Games/Steam/

 

When a user browses the "Software" share, they can see all files on all devices in my Unraid system.  Effectively exposing all files on the system to anyone with access to that share.  They can open and edit.

 

So they can just just browse all the way to:

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\disk1

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\disk2

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt\cache

etc

 

Everything between "\Steam\" and  "\mnt\" was generated by this container.  

\mnt\disk1,2,3 cache, etc,  is every drive plugged into my system. 

You can then open these folders and see everything on every disk.

 

I had the Nvidia Available devices setting set to "all" before.  I JUST changed it and specified the GPU, and it didn't make a difference.  But these links work when the container was not running, so it probably wouldn't help now.

 

If I look at the file properties of this folder:

Software\RTP Games\Steam\steamapps\compatdata\1493710\pfx\dosdevices\ZSXKM0~L\mnt

my computer thinks it is much bigger than my total storage space, lol!

 

Hopefully this helps clarify the issue.

 

Whatever happens, thanks for your work on this container.  It's the only way I managed to run any games on this system, after wasting far too many weekends trying to pass through a GPU to a VM.

I took a quick look into this. This is happening because steam is creating a drive link "Z:" to your root path "/" as a symlink. If you then view this from the host Unraid OS it looks like this:
image.thumb.png.935a0e9ce0be61b99feeff51c33d8dfc.png

 

This is not something that the Steam Headless container is doing as much as it is what the Unraid host shares are doing. It has created a symlink to / and so if you brows that you will see all the things in your root filesystem.

 

Hopefully this helps you in finding a solution that works for you. As for this container, there is not really any point in finding a fix. The solution as far as I can tell is to better configure your network shares for Unraid.

Link to comment

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.