protonscr

[SteamRT3] Can't find wrapper programs like gamemoderun if not in /usr/bin:/bin

steamopen
ValveSoftware/steam-for-linux#13389 · opened 2026-07-06 by gfactor · updated 2026-07-09 · 5 comments · github
5 matching comments, n / p to jump
Ggfactor 2026-07-06 github

Your system information

  • Steam client version: 1783028805
  • Distribution: Kubuntu 26.04
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD

Please describe your issue in as much detail as possible:

When using the Steam RT3 client, attempting to use GameMode (by setting a game's launch option to gamemoderun %command%) causes the game to not run. All I see when launching a game with this option is the game preparing to launch, then Steam shows the Play button again. Removing the GameMode run option lets the game launch fine. And the GameMode run option works fine in the normal Steam client.

Steps for reproducing this issue:

I don't know if this will work on a fresh install.

  1. Install Steam and GameMode in Linux.
  2. Run the Steam RT3 client.
  3. Download a game.
  4. Run the game. Observe the game launches properly. Close the game.
  5. Set that game's launch option to gamemoderun %command%.
  6. Run the game. Observe the game does not launch properly.
Ssmcv 2026-07-09 github

What it's launching (console_log.txt) is:

[2026-07-06 12:39:34] steam-runtime-launch-client\0--alongside-steam\0--forward-fd=170\0--\0/home/gfactor/.local/share/Steam/steamrt64/pv-runtime/steam-runtime-steamrt/bin/steam-runtime-supervisor\0--terminate-when-signaled\0--env-fd=170\0--\0/bin/sh\0-c\0gamemoderun /home/gfactor/.local/share/Steam/steamrt64/steam-launch-wrapper -- /home/gfactor/.local/share/Steam/steamrt64/reaper SteamLaunch AppId=2380320 -- '/gfactor/games/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/gfactor/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 -- '/home/gfactor/.local/share/Steam/steamapps/common/Choice of Life Wild Islands/Choice of Life - Wild Islands.x86_64'\0

and the output (console-linux.txt) is:

[2026-07-06 12:39:34] chdir "/home/gfactor/.local/share/Steam/steamapps/common/Choice of Life Wild Islands"
[2026-07-06 12:39:34] ERROR: ld.so: object '/home/gfactor/.local/share/Steam/steamrt32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
[2026-07-06 12:39:34] steam-runtime-launcher-service[19265]: I: Running spawn command /home/gfactor/.local/share/Steam/steamrt64/pv-runtime/steam-runtime-steamrt/bin/steam-runtime-supervisor
[2026-07-06 12:39:34] steam-runtime-launcher-service[19265]: D: Client Pid is 23500
[2026-07-06 12:39:34] ERROR: ld.so: object '/home/gfactor/.local/share/Steam/steamrt32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
[2026-07-06 12:39:34] Game Recording - would start recording game 2380320, but recording for this game is disabled
[2026-07-06 12:39:34] Adding process 23497 for gameID 2380320
[2026-07-06 12:39:34] /bin/sh: 1: gamemoderun: not found
[2026-07-06 12:39:34] steam-runtime-launcher-service[19265]: D: Child 23500 died: wait status 32512

Where is gamemoderun installed on your system? (/usr/games/gamemoderun? /usr/bin/gamemoderun? other? Running command -v gamemoderun would tell you.)

As a guess, I think the Steam Client might perhaps be losing track of the correct PATH that it inherited from the desktop environment or shell.

It might provide useful information for Steam Client developers if you set the Launch Options to

echo "PATH=$PATH"; gamemoderun %command%

then try to launch the game, and copy/paste the line from console-linux.txt that will say PATH=something.

I would have expected that the PATH should be /home/gfactor/.local/share/Steam/steamrt64/pv-runtime/steam-runtime-steamrt/bin: (which contains some internal Steam stuff) followed by your normal PATH.

Ssmcv 2026-07-09 github

If my guess about the root cause is correct, then a likely workaround would be to use /usr/games/gamemoderun %command% (or whatever is the correct path) on Debian/Ubuntu systems.

Ggfactor 2026-07-09 github

On my system, gamemoderun is installed at /usr/games/gamemoderun. (I think I installed gamemode through apt, so it should be whatever Ubuntu offers in the resolute (26.04) repository. But I would have installed this earlier when I was running either plucky or questing, so I don't know if something changed over time.)

Here's what the echo command returned:
PATH=/home/gfactor/.local/share/Steam/steamrt64/pv-runtime/steam-runtime-steamrt/bin:/usr/bin:/bin

Changing the launch options to use the absolute path /usr/games/gamemoderun %command% worked. OK, so I can use this as a workaround while we figure out if this is something that needs to be fixed.

Ssmcv 2026-07-09 github

Thanks, that confirms my suspicions about the root cause.

I think this is the steamrt3c/containerized/64-bit client mis-handling environment variables: until now Steam has not needed to distinguish between in-container and out-of-container environment variables, but now that most of it is running in a container, it needs to be more careful.

There's a similar issue for LD_PRELOAD (#13246) with a very similar root cause.

Ssmcv 2026-07-09 github

@kisak-valve or someone else with appropriate privileges: please could you retitle this to something a little more generic so it covers all PATH issues with this same root cause? Perhaps something like

[SteamRT3] Can't find wrapper programs like gamemoderun if not in /usr/bin:/bin

so that it'll still show up in a search for gamemode.

This issue would affect any wrapper program that's found via PATH search, except for wrappers in /usr/bin or /bin which still work. For the OP it's a wrapper program in /usr/games/, but it would apply equally if the wrapper that the user wants to run is somewhere like /usr/local/bin/ or ~/.local/bin/.

A general workaround is to specify the wrapper by its absolute path: /usr/games/gamemoderun %command% or ~/.local/bin/my-local-wrapper %command% or similar.

Launch lines