protonscr

Steam crashes with an illegal instruction on pre-SSE3 processors

steamopen runtime
ValveSoftware/steam-for-linux#5164 · opened 2017-09-10 by zevilz · updated 2019-05-27 · 7 comments · github
Zzevilz 2017-09-10 github
  • Steam client version: 1.0.0.48-1ubuntu4 (from ubuntu repository)
  • Distribution: fresh installed Ubuntu Mate 16.04.03 32-bit with last updates
  • Hardware: Pentium 4 3.2GHz (478 socket), 4Gb RAM DDR1, GeForce 6800GS/XT 256Mb (with proprietary legacy driver v.304.135)

Steam client falls after authorization. Output from the command line:

Running Steam on ubuntu 16.04 32-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
[2017-09-10 00:00:50] Startup - updater built Sep  6 2017 20:37:15
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2017-09-10 00:00:51] Checking for update on startup
[2017-09-10 00:00:51] Checking for available updates...
[2017-09-10 00:00:53] Download skipped: /client/steam_client_ubuntu12 version 1504757234, installed version 1504757234
[2017-09-10 00:00:53] Nothing to do
[2017-09-10 00:00:53] Verifying installation...
[2017-09-10 00:00:53] Performing checksum verification of executable files
[2017-09-10 00:01:02] Verification complete

bootstrap_log.txt

And not working with package from Ubuntu 17.10 (1.0.0.54+repack-2ubuntu5). Also not working with same problem on Debain 8 32-bit with last updates (worked earlier fine). Steam client version 1.0.0.49-1.

I'm tried install same OS (Ubuntu Mate 16.04.03 32-bit) with same version of Steam client (1.0.0.48-1ubuntu4) on VirtualBox on other hardware. Working fine.

Kkisak-valve maintainer 2017-09-10 github

Hello @zevilz, please add a gist of your ~/.steam/error.log and the corresponding minidump in /tmp/dumps. I suspect steam is trying to run an SSE3 instruction in SDL2, but the processor does not support SSE3.

Zzevilz 2017-09-10 github

~/.steam/error.log

Installing breakpad exception handler for appid(steam)/version(1504757234)
Xlib:  extension "NV-GLX" missing on display ":0".

crash_20170910135500_1.zip

Kkisak-valve maintainer 2017-09-10 github

Thanks @zevilz. This is as I suspected, an SSE3 in the steam runtime provided SDL2. You could try to build libSDL2-2.0.5 (or newer) from source or add a symlink to a system variant of the library in ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32, but there may be unexpected side effects.

Zzevilz 2017-09-11 github

I'm install libSDL2-2.0.5 from Zesty (ubuntu 17.04) repository and add symlink to libSDL2-2.0.so.0 in ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32. Same problem without errors. Then i'm replace libSDL2-2.0.so.0 in ~/.steam/ubuntu12_32/. But client check his libraries after start steam and restore original files

BVerifyInstalledFiles: ubuntu12_32/libSDL2-2.0.so.0 is 1260452 bytes, expected 1013365

Then i'm replace original file after libraries check. Same problem again.

NNuzgart 2018-07-07 github

I see it's been some time since this issue was first noticed... Are there any currently known workarounds?

Llisikh 2019-05-27 github

Here is my workaround.
You need libSDL 2.0.9 as it contains all necessary calls. For ubuntu 18.04 there is a binary package. For ubuntu 16.04 I compiled source package with gcc 9. The hint is to get smaller library than original steam-shipped.
Next, append your library with zeroes to equal original size as steam client only checks file size:
dd if=/dev/zero of=libSDL2-2.0_new.so.0 count=1 bs=$(( $original_size - $your_size )) oflag=append conv=notrunc
Replace your library to ~/.steam/ubuntu12_32/
Enjoy steam on pre-sse3 processors :)

Nothing extracted yet.