games-on-whales / wolf

Stream virtual desktops and games running in Docker
https://games-on-whales.github.io/wolf/stable/
MIT License
292 stars 20 forks source link

New Steam Game Pad UI (Steam Deck) Prevents Proper Setup #38

Closed a-priestley closed 10 months ago

a-priestley commented 10 months ago

The UI falsely displays network scanning errors during setup. This causes the inability to properly set up Steam.

Possibly related, the UI shows the following exception: image

One workaround is to use the normal desktop UI initially to log into Steam by setting the startup flag -nogamepadui. Example section in config.toml:

 [[apps]]
title = "Steam"
start_virtual_compositor = true

[apps.runner]
type = "docker"
name = "WolfSteam"
image = "ghcr.io/games-on-whales/steam:edge"
mounts = ["/run/udev:/run/udev:ro"]
env = [
"STEAM_STARTUP_FLAGS=-nogamepadui","PROTON_LOG=1","RUN_GAMESCOPE=true","GOW_REQUIRED_DEVICES=/dev/uinput /dev/input/event* /dev/dri/* /dev/nvidia*",
]
devices = []
ports = []
base_create_json = """
{
  "HostConfig": {
    "IpcMode": "host",
    "CapAdd": ["SYS_ADMIN", "SYS_NICE"],
    "Privileged": false
  }
}
\
"""

After logging in, Steam can continue to be used with the flag omitted if desired.

ABeltramo commented 10 months ago

Thanks to @Drakulix we might have fixed the issues with the Steam container, you can try it out by updating the steam container

docker pull ghcr.io/games-on-whales/steam:edge

and restarting Wolf. There's no need for the Privileged: true flag and you should be able to see the new steam deck UI and even stream it to multiple clients.

Feel free to reopen this if it's not working for you.

a-priestley commented 10 months ago

After pulling the latest image, the first thing I noticed was that -nogamepadui no longer works. Could Valve have removed that flag? Second, the network scanning UI, while not throwing any errors visible to the GUI, did not function while the container was in privileged mode, but upon being disabled, properly detected my network interface.

Edit: forgot to mention that privileged mode seems to be required to run Proton:

pressure-vessel-wrap[1078]: E: Cannot run /usr/bin/bwrap: wait status 256
pressure-vessel-wrap[1078]: E: Diagnostic output:
bwrap: pivot_root: Operation not permitted

pressure-vessel-wrap[1078]: E: Cannot run /home/retro/.steam/debian-installation/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/pv-bwrap: wait status 256
pressure-vessel-wrap[1078]: E: Diagnostic output:
bwrap: pivot_root: Operation not permitted
Drakulix commented 10 months ago

You don't need privileged, you just need the pivot_root syscall, which is blocked by the default seccomp profile.

A custom profile should fix this, we should probably provide one for steam.

However privileged being broken is something we should fix address, because there are other reason for using it.

a-priestley commented 10 months ago

You don't need privileged, you just need the pivot_root syscall, which is blocked by the default seccomp profile.

A custom profile should fix this, we should probably provide one for steam.

However privileged being broken is something we should fix address, because there are other reason for using it.

Privileged still works as long as your network has been set up previously. I didn't know that about the seccomp profile, but privileged: true gets around it at least.

The other thing I should mention is that, and I don't know for sure if this is correct, but I think being locked into gamepadui caps resolution at 720p? Which kind of tracks, since that is the decks native res.

I could open up a new issue if that would be helpful.

Drakulix commented 10 months ago

You can edit the game settings and set the resolution to "Native" to fix that.