Steam/Troubleshooting
See Steam for the main article.
Contents
- 1 Issues with nvidia 361.28
- 2 Steam runtime issues
- 3 Multiple monitors setup
- 4 Native runtime: steam.sh line 756 Segmentation fault
- 5 The close button only minimizes the window
- 6 Audio not working or 756 Segmentation fault
- 7 Text is corrupt or missing
- 8 SetLocale('en_US.UTF-8') fails at game startup
- 9 The game crashes immediately after start
- 10 OpenGL not using direct rendering / Steam crashes Xorg
- 11 No audio in certain games
- 12 Missing libc
- 13 Missing libGL
- 14 Games do not launch on older intel hardware
- 15 2k games do not run on xfs partitions
- 16 Unable to add library folder because of missing execute permissions
- 17 Steam controller not being detected correctly
- 18 VERSION_ID: unbound variable
- 19 Steam hangs on "Installing breakpad exception handler..."
- 20 'GLBCXX_3.X.XX' not found when using Bumblebee
Issues with nvidia 361.28
A bug was introduced in nvidia 361.28 that prevents some games from launching with an error such as
"Missing basic OpenGL v1.0 -> v2.0 required OpenGL functionality."
To workaround this until NVIDIA fixes this issue, use this line for the launch options for every game that fails:
__GLVND_DISALLOW_PATCHING=1 %command%
Alternatively, you can roll back to the 361.16 drivers
Steam runtime issues
Steam installs its own older versions of some libraries collectively called the "Steam Runtime". These will often conflict with the libraries included in Arch Linux.
Possible symptoms
Some of the possible symptoms of this issue are the Steam client itself crashing or hanging, and/or various errors:
libGL error: unable to load driver: some_driver_dri.so libGL error: driver pointer missing libGL error: failed to load driver: some_driver libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast
Failed to load libGL: undefined symbol: xcb_send_fd
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
OpenGL GLX context is not using direct rendering, which may cause performance problems. (see below)
Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated.}}
Work arounds
You can work around the issue by forcing Steam to use the up-to-date system versions (the ones installed by pacman). There are two ways to do so.
Using the dynamic linker
The dynamic linker (man 8 ld.so
) can be told to load specific libraries using the LD_PRELOAD
environment variable.
LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam
If you wish to use this method in a .desktop shortcut, you can use this command in the Exec= field.
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U
Deleting the runtime libraries
Run this command to delete the runtime libraries known to cause issues on Arch Linux:
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete
If the above command does not work, run the above command again, then run this command.
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete
If you wish to restore the files that were deleted by the commands above, you can use the built-in steam reset functionality.
bc|steam --reset
More information
See also upstream issue #13, #Using native runtime, and these forum threads:
Multiple monitors setup
Setup with multiple monitors can cause
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
error which will make game unable to start. If you stuck on this error and have multiple monitors, try to disable all additional displays, and then run a game. You can enable them after the game successfully started.
Also you can try this:
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH
and then run steam.
Native runtime: steam.sh line 756 Segmentation fault
- Valve GitHub issue 3863
As per the bug report above, Steam crashes with /home/<username>/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)
when running with STEAM_RUNTIME=0.
The only proposed workaround is copying Steam's packaged 32-bit versions of libusb and libgudev to /usr/lib32:
# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32 # cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32
Notice that the workaround is necessary because the bug affects systems with lib32-libgudev and lib32-libusb installed.
The close button only minimizes the window
- Valve GitHub issue 1025
To close the Steam window (and remove it from the taskbar) when you press x, but keep Steam running in the tray, export the environment variable STEAM_FRAME_FORCE_CLOSE=1
. See Environment variables#Graphical applications.
Steam provides a script located at /usr/bin/steam
that will be run when launching Steam; adding export STEAM_FRAME_FORCE_CLOSE=1
to this file will export the environment variable for Steam on application launch.
Audio not working or 756 Segmentation fault
First try to install pulseaudio and pulseaudio-alsa and if you run a x86_64 system lib32-libpulse and lib32-alsa-plugins.
If you do not have audio in the videos which play within the Steam client, it is possible that the ALSA libs packaged with Steam are not working.
Attempting to playback a video within the steam client results in an error similar to:
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
A workaround is to rename or delete the alsa-lib
folder and the libasound.so.*
files. They can be found at:
~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/
An alternative workaround is to add the libasound.so.*
library to the LD_PRELOAD environment variable:
LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam
Bugs reports have been filed: #3376 and #3504
Text is corrupt or missing
The Steam Support instructions for Windows seem to work on Linux also.
You can install them via the steam-fontsAUR package, or manually by downloading and installing SteamFonts.zip.
SetLocale('en_US.UTF-8') fails at game startup
Uncomment en_US.UTF-8 UTF-8
in /etc/locale.gen
and then run locale-gen
as root.
The game crashes immediately after start
If your game crashes immediately, try disabling: "Enable the Steam Overlay while in-game" in game Properties.
If this doesn't work, you should check Steam's output for any error from the game. You may encounter the following:
- munmap_chunk(): invalid pointer
- free(): invalid pointer
In these particular cases, try replacing the libsteam_api.so file from the problematic game with one from a game that works fine. This error usually happens for games that were not updated recently when Steam runtime is disabled. This error has been encountered with at least AYIM, Bastion and Monaco.
OpenGL not using direct rendering / Steam crashes Xorg
Sometimes presented with the error message "OpenGL GLX context is not using direct rendering, which may cause performance problems." [1]
If you still encounter this problem after addressing #Steam runtime issues, you have probably not installed your 32-bit graphics driver correctly. See Xorg#Driver installation for which packages to install.
You can check/test if it is installed correctly by installing lib32-mesa-demos and running the following command:
$ glxinfo32 | grep OpenGL.
No audio in certain games
If there is no audio in certain games, and the suggestions provided in Steam/Game-specific troubleshooting do not fix the problem, #Using native runtime may provide a successful workaround. (See the note about "Steam Runtime issues" at the top of this section.)
FMOD sound engine
While troubleshooting a sound issue, it became evident that the following games (as examples) use the 'FMOD' audio middleware package:
- Hotline Miami
- Hotline Miami 2
- Transistor
This package is a bit buggy, and as a result while sound can appear to be working fine for the rest of your system, some games may still have problems.
It usually occurs when you have a default sound device set with ALSA, but you don't actually use that device, and have manually changed the device through other software, with me I had my default set as HDMI, but audio set through Steam/Gnome as S/PDIF.
To check what your default device is set as, use something like 'aplay' to output to your 'default' device, and see if you get sound, if you don't, your default is likely set to something that isn't even plugged in!
Missing libc
Verify that lib32-glibc is installed.
This could also be due to a corrupt Steam executable. Check the output of:
$ ldd ~/.local/share/Steam/ubuntu12_32/steam
Should ldd
claim that it is not a dynamic executable, then Steam likely corrupted the binary during an update. The following should fix the issue:
$ cd ~/.local/share/Steam/ $ ./steam.sh --reset
If it doesn't, try to delete the ~/.local/share/Steam/
directory and launch steam again, telling it to reinstall itself.
This error message can also occur due to a bug in steam which occurs when your $HOME
directory ends in a slash (Valve GitHub issue 3730). This can be fixed by editing /etc/passwd
and changing /home/<username>/
to home/<username>
, then logging out and in again. Afterwards, steam should repair itself automatically.
Missing libGL
You may encounter this error when you launch Steam at first time.
You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1
Make sure you have installed the lib32
version of all your video drivers as described in Xorg#Driver installation.
If you get this error after reinstalling your Nvidia proprietary drivers, or switching from a version to another, reinstall lib32-nvidia-utils and lib32-nvidia-libgl.
Games do not launch on older intel hardware
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware does not directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error.
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%
2k games do not run on xfs partitions
If you are running 2k games such as Civilization 5 on xfs partitions, then the game may not start or run properly due to how the game loads files as it starts. [3]
Unable to add library folder because of missing execute permissions
If you add another steam library folder on another drive, you might receive the error message "New Steam library folder must be on a filesystem mounted with execute permissions".
Make you sure you are mounting the filesystem with the correct flags in your /etc/fstab
, usually by adding exec
to the list of mount parameter. The parameter must occur after any user
or users
parameter since these can imply noexec
.
This error might also occur if you are readding a library folder and Steam is unable to find a contained steamapps
folder. Previous versions used SteamApps
instead, so ensure the name is fully lowercase.
Steam controller not being detected correctly
VERSION_ID: unbound variable
In Steam's output, you may see the following line:
/home/user/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable
This is because steam.sh parses /etc/os-release
and expects a VERSION_ID which Arch does not have.
This error is unimportant but you can fix it by adding the following line to /etc/os-release
:
VERSION_ID="2015.11.01"
Steam hangs on "Installing breakpad exception handler..."
Steam has the following output:
Running Steam on arch rolling 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(0_client)
Then nothing else happens. This is likely related to mis-matched lib32-nvidia-*
packages.
'GLBCXX_3.X.XX' not found when using Bumblebee
This error is likely caused because Steam packages its own out of date libstdc++.so.6
. See #Steam runtime issues about working around the bad library. See also GitHub issue 3773.