Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam crashes with an illegal instruction on pre-SSE3 processors #5164

Open
zevilz opened this issue Sep 10, 2017 · 7 comments
Open

Steam crashes with an illegal instruction on pre-SSE3 processors #5164

zevilz opened this issue Sep 10, 2017 · 7 comments
Assignees
Labels

Comments

@zevilz
Copy link

@zevilz zevilz commented Sep 10, 2017

  • 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.

@kisak-valve
Copy link
Member

@kisak-valve kisak-valve commented Sep 10, 2017

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.

@zevilz
Copy link
Author

@zevilz zevilz commented Sep 10, 2017

~/.steam/error.log

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

crash_20170910135500_1.zip

@kisak-valve
Copy link
Member

@kisak-valve kisak-valve commented Sep 10, 2017

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.

@kisak-valve kisak-valve changed the title Steam client falls after authorization on Ubuntu Mate 16.04 32-bit and Debain 8 32-bit Steam crashes with an illegal instruction on pre-SSE3 processors Sep 10, 2017
@zevilz
Copy link
Author

@zevilz zevilz commented Sep 11, 2017

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.

@Nuzgart
Copy link

@Nuzgart Nuzgart commented Jul 7, 2018

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

@lisikh
Copy link

@lisikh lisikh commented May 27, 2019

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 :)

smcv added a commit to smcv/steam-for-linux that referenced this issue Jan 6, 2020
According to ValveSoftware#5164
the Steam client requires SSE3, although it is not currently clear
whether this is a bug or intentional. These instructions are not
available on earlier revisions of the AMD Opteron, Sempron and Athlon 64.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants