protonscr

Metro Exodus does not start on Debian 10/buster

steamclosed
ValveSoftware/steam-for-linux#7894 · opened 2021-07-01 by playeronlinux · updated 2021-07-03 · 2 comments · github
Pplayeronlinux 2021-07-01 github

Your system information

  • Steam client version (build number or date): Built: Jun 25 2021, at 18:26:27
  • Distribution (e.g. Ubuntu): Debian 10/buster
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

Metro Exodus fails to start. Output captured with %COMMAND% > log 2>&1 is:

ERROR: ld.so: object '/home/user/.steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/path/to/SteamLibrary/steamapps/common/Metro Exodus/MetroExodus: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /path/to/SteamLibrary/steamapps/common/Metro Exodus/MetroExodus)
$ ldd MetroExodus
./MetroExodus: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./MetroExodus)
        linux-vdso.so.1 (0x00007ffd769d7000)
        libPxFoundation_x64.so => ./libPxFoundation_x64.so (0x00007f7810a14000)
        libPhysX3_x64.so => ./libPhysX3_x64.so (0x00007f78105f0000)
        libPhysX3Common_x64.so => ./libPhysX3Common_x64.so (0x00007f7810297000)
        libPhysX3Cooking_x64.so => ./libPhysX3Cooking_x64.so (0x00007f781005f000)
        libSDL2.so => ./libSDL2.so (0x00007f780fd32000)
        libsteam_api.so => ./libsteam_api.so (0x00007f780fad4000)
        libnxpro.so => ./libnxpro.so (0x00007f780f81c000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f780f7d1000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f780f7cc000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f780f649000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f780f4c5000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f780f4ab000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f780f488000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f780f2c7000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f780f274000)
        libibus-1.0.so.5 => /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5 (0x00007f780f1fd000)
        libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f780f03f000)
        libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f780efe7000)
        libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f780eec8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f7810c24000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f780ee27000)
        libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f780ee21000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f780ec03000)
        libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f780eba4000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f780e97a000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f780e960000)
        libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f780e956000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f780e8e2000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f780e8ba000)
        liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f780e89b000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f780e77b000)
        libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f780e726000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f780e703000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f780e6fa000)

On a related note, where do game launch logs (stdout/stderr) go by default nowadays?

Steps for reproducing this issue:

  1. Launch Metro Exodus using "Play"
Kkisak-valve maintainer 2021-07-01 github

Hello @playeronlinux, the game's minimum requirements state "OS: Ubuntu 20", and Ubuntu 20.04 provides glibc 2.31. Debian Buster's glibc 2.28 is legitimately too old for the minimum requirements of this game. While game devs are encouraged to compile their games against the Steam runtime for maximum compatibility between distros, it is not strictly required.

Steam no longer unconditionally creates a stdout/stderr log as since the 1.0.0.62 steam package update:

  * bin_steam.sh: Remove redirection to a log file.
    This is not particularly useful in practice, and can easily be replaced
    with ordinary Unix shell redirection when debugging the client or a
    game. We can't rely on it anyway, because third-party packages don't
    tend to do this. (Fixes: steam-for-linux#6901)

If you're using the Debian distro-modified Steam package, they may be partially redirecting that to a file with their changes.

Ssmcv 2021-07-01 github

Debian 11 'bullseye' is currently in freeze, and is newer than Ubuntu 20.04; so when that gets released as stable (provisionally 31st July), upgrading from Debian 10 to 11 might make this game work.

(You could upgrade to Debian 11 even before it is formally released, at your own risk. Make sure you have backups!)

On a related note, where do game launch logs (stdout/stderr) go by default nowadays?

They go to the same place as the rest of Steam's stdout/stderr. Depending how you launched it and how your OS and desktop environment work, that might be an interactive terminal (xterm/gnome-terminal/etc.), the systemd Journal, ~/.xsession-errors or /dev/null.

If you're using the Debian distro-modified Steam package, they may be partially redirecting that to a file with their changes.

This redirection was removed in version 10.0.0.62-2 (similar to the change in Valve's official 1.0.0.62), and backported to Debian 10 in 1.0.0.68-1~deb10u1, so there shouldn't be any redirection happening in any supported version of Debian.

Nothing extracted yet.