Help Needed: Steam Game Launch Issues on NixOS with NVIDIA - ELF Class Mismatch and Missing libcrypto.so.1.1

I’ve encountered an issue on my NixOS system while trying to launch Helldivers II via Steam. This setup was working fine until recently, so I suspect a recent change or update might be causing these problems. I’m leaning towards it being an NVIDIA-related issue, but I’m not entirely sure. I’m hoping to get some insights from this knowledgeable community. Thanks in advance, and if you’d want me to run something to help get more information about the system, I’m very willing to do so. Thanks!!

System Configuration

  • OS: NixOS 23.11.20240228.c8e74c2 (Tapir)
  • Window System: Wayland (Hyprland)
  • GPU: NVIDIA GeForce RTX 2080
  • NVIDIA Driver Version: 535.129.03
  • Steam Runtime: Enabled

Issue Summary

The main issues from the logs include:

  • ELF Class Mismatch: Errors related to gameoverlayrenderer.so being ignored due to wrong ELF class (ELFCLASS32 vs. ELFCLASS64).
  • Missing libcrypto.so.1.1: The game fails to launch due to missing dependencies for libnvidia-pkcs11.so.535.129.03, specifically looking for libcrypto.so.1.1.
  • Module Load Failure: libdconfsettings.so fails to load due to an “undefined symbol: g_assertion_message_cmpint” and wrong ELF class (ELFCLASS64).

How to Replicate the Issue

  1. Start Steam: Open the Steam client on your NixOS system.
  2. Navigate to Library: Go to your Steam library where your games are listed.
  3. Launch Helldivers II: Find Helldivers II in the list, and click the “Play” button to start the game.

What Happens

After attempting to start Helldivers II, the game appears to begin launching, with the typical indicators of game startup. However, the process abruptly stops without the game window appearing. The “Play” button in Steam, which had turned blue indicating that the game is running, reverts back to the green “Play” state. This indicates that the game fails to start properly.

Detailed Logs

Steam logging initialized: directory: /home/mboterf/.local/share/Steam/logs

/nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: wrong ELF class: ELFCLASS64
Failed to load module: /nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf0a707b0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf0a6efa0
steamwebhelper.sh[7285]: === Thu Feb 29 02:46:20 PM CST 2024 ===
steamwebhelper.sh[7285]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/mboterf/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 62 milliseconds to initialize
libEGL warning: egl: failed to create dri2 screen
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 7488
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
libEGL warning: egl: failed to create dri2 screen
BRefreshApplicationsInLibrary 1: 0ms
BuildCompleteAppOverviewChange: 333 apps
RegisterForAppOverview 1: 12ms
RegisterForAppOverview 2: 13ms
x86_64-linux-gnu-capsule-capture-libs: warning: Dependencies of libnvidia-pkcs11.so.535.129.03 not found, ignoring: Missing dependencies: Could not find "libcrypto.so.1.1" in LD_LIBRARY_PATH "/home/mboterf/.local/share/Steam/ubuntu12_32:/home/mboterf/.local/share/Steam/ubuntu12_32/panorama:/lib64:/lib32:/steamrt/amd64/lib/x86_64-linux-gnu:/steamrt/amd64/lib:/steamrt/amd64/usr/lib/x86_64-linux-gnu:/steamrt/amd64/usr/lib:/steamrt/i386/lib/i386-linux-gnu:/steamrt/i386/lib:/steamrt/i386/usr/lib/i386-linux-gnu:/steamrt/i386/usr/lib:/run/opengl-driver/lib:/run/opengl-driver-32/lib:/nix/store/hk0xn1gmn2aygpcdj8fxib77r94hb5j4-pipewire-1.0.1-jack/lib", ld.so.cache, DT_RUNPATH or fallback /lib:/usr/lib
pressure-vessel-wrap[8228]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[8228]: W: Found more than one possible libdrm data directory from provider
/nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_assertion_message_cmpint
Failed to load module: /nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
fsync: up and running.
/bin/sh\0-c\0mangohud /home/mboterf/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=553850 -- /home/mboterf/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/mboterf/games/SteamLibrary/steamapps/common/SteamLinuxRuntime_sniper'/
_v2-entry-point --verb=waitforexitandrun -- '/home/mboterf/games/SteamLibrary/steamapps/common/Proton - Experimental'/proton waitforexitandrun  '/home/mboterf/games/SteamLibrary/steamapps/common/Helldivers 2/bin/helldivers2.exe' --bundle-dir data --release --use-d3d11\0
chdir "/home/mboterf/games/SteamLibrary/steamapps/common/Helldivers 2"
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/mboterf/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
x86_64-linux-gnu-capsule-capture-libs: warning: Dependencies of libnvidia-pkcs11.so.535.129.03 not found, ignoring: Missing dependencies: Could not find "libcrypto.so.1.1" in LD_LIBRARY_PATH "/nix/store/jjh4yklpqlr6w80695pmfsgidi7mhk8w-mangohud-0.7.0/lib/mangohud:/nix/store/xwr6cxlnrhxdaljxh9li9wikxy3rihdx-mangohud-0.7.0/lib/mangohud:/lib64:/lib32:/steamrt/amd64/lib/x86_64-linux-gnu:/steamrt/amd64/lib:/steamrt/amd64/usr/lib/x86_64-linux-gnu:/steamrt/amd64/usr/lib:/steamrt/i386/lib/i386-linux-gnu:/steamrt/i386/lib:/steamrt/i386/usr/lib/i386-linux-gnu:/steamrt/i386/usr/lib:/run/opengl-driver/lib:/run/opengl-driver-32/lib:/nix/store/hk0xn1gmn2aygpcdj8fxib77r94hb5j4-pipewire-1.0.1-jack/lib:/home/mboterf/games/SteamLibrary/steamapps/common/Helldivers 2", ld.so.cache, DT_RUNPATH or fallback /lib:/usr/lib
pressure-vessel-wrap[8368]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[8368]: W: Found more than one possible libdrm data directory from provider
/nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_assertion_message_cmpint
Failed to load module: /nix/store/79fzfin2gz8xxqjvbnkfiillw48sqmya-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
fsync: up and running.
pid 8506 != 8505, skipping destruction (fork without exec?)
Uploaded AppInterfaceStats to Steam

NVIDIA-SMI Output

Thu Feb 29 14:49:27 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 2080        Off | 00000000:0A:00.0  On |                  N/A |
| 24%   30C    P8              26W / 245W |   1200MiB /  8192MiB |     16%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      2350      G   ...files/per-user/mboterf/bin/Hyprland      520MiB |
|    0   N/A  N/A      2587      G   Xwayland                                    256MiB |
|    0   N/A  N/A      4669      G   ...-firefox-123.0/bin/.firefox-wrapped      189MiB |
|    0   N/A  N/A      6491      G   ...ca8phz5vpjya-kitty-0.31.0/bin/kitty       16MiB |
|    0   N/A  N/A      7279      G   ...local/share/Steam/ubuntu12_32/steam        3MiB |
|    0   N/A  N/A      7518      G   ./steamwebhelper                             53MiB |
|    0   N/A  N/A      9039      G   ...ca8phz5vpjya-kitty-0.31.0/bin/kitty       28MiB |
+---------------------------------------------------------------------------------------+

Seeking Guidance

  • Has anyone faced a similar issue with games on Steam under NixOS, especially regarding NVIDIA driver compatibility?
  • Any suggestions on resolving the ELF class mismatch or ensuring the required libraries are correctly located and loaded?
  • Insights on whether a system update or configuration change might have led to this situation would be greatly appreciated.

I’m somewhat confused as this configuration was working just a few days ago. Any advice, or suggestions on where to look next would be immensely helpful.

Thanks!

Okay so I tried a bunch different stuff to include:

  • Update flake that would include hyprland and NVIDIA
  • Update Steam (waited for an update)
  • Installed Proton-GE-8-32
  • Reinstalled Game – this is what fixed it

So what I think happened is that NVIDIA updated and the game never changed to the new “driver”. I can’t say for certain… if someone requests for me to do something so that we can all have a better answer, I will perform the steps requested. Thanks in advance!

Summary:
Update your games after system upgrades or just as a quick steps to resolve issues.