You are not logged in.

#1 2016-01-17 01:54:59

Cradow
Member
Registered: 2016-01-17
Posts: 6

[SOLVED] ETS2 doesn't start, "version 'GLIBCXX_3.4.21' not found"

Hello dear forum,

this is my first post here. I found really successful and good answers here and have read for a long time (almost two years?) on the Arch Linux forums, which is why I finally decided to register myself here and join this amazing community. Enough of me; now to my problem:

I have problems starting Euro Truck Simulator 2 over Steam. Every time I try to start ETS2 there appears the "Preparing to launch ..." dialog but then happens nothing. I have a Lenovo Y50-70 with Nvidia GTX 860M and Optimus functionality, thus being able to switch between the integrated graphics unit of the processor and the dedicated graphics unit on the graphics card.

To use this functionality, I use bumblebee to let the dedicated graphics dynamically being switched on and off. In order to play ETS2 in a reasonable quality, I start ETS2 with the launch parameter 'primusrun %command%'. I use primus because I read it performs better than virtualgl. From a former problem I knew, that the error back there was that some libraries were missing. So I checked that and look:

fabian@arch-laptop ..n/Euro Truck Simulator 2/bin/linux_x64 % ldd eurotrucks2
	linux-vdso.so.1 (0x00007ffe81d66000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fe78705c000)
	librt.so.1 => /usr/lib/librt.so.1 (0x00007fe786e54000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fe786b12000)
	libsteam_api.so => not found
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fe78690e000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007fe786610000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fe78626c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fe787279000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fe786049000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fe785e45000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fe785c3f000)

So obviously libsteam_api.so is missing but it isn't. It is there in both folders (linux_x64, linux_x86). I checked libsteam_api.so (in linux_x64) with

file libsteam_api.so

and it says that it is a 64-bit executable. The same goes for the 32-bit version. What I noticed though is that the libsteam_api.so in /usr/lib is 32-bit, which is the one invoked when the game starts I guess. When I start the 32-bit version (in linux_x86), it does not start either but there are (at least) no errors. Besides, I am using nvidia-358.16 from the official repos. Without the launch parameter it works fine, although with very few FPS. I tried around with LD_PRELOAD and LD_LIBRARY_PATH but that both don't work or I've just made mistakes. How ever, I don't know what to do anymore now and would appreciate your help. If anything is unclear, please ask or write me an e-mail.

Kind regards,

Cradow

----------------------------------

Edit 1:
I tried to launch it over Steam; the output now is:

Game update: AppID 227300 "Euro Truck Simulator 2", ProcID 22585, IP 0.0.0.0:0
ERROR: ld.so: object '/home/fabian/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/fabian/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/fabian/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/fabian/.local/share/Steam/steamapps/common/Euro Truck Simulator 2/bin/linux_x64/eurotrucks2: /home/fabian/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/primus/libGL.so.1)
Game removed: AppID 227300 "Euro Truck Simulator 2", ProcID 22585

Now, I'm totally confused.

----------------------------------

Edit 2:

I "fixed" it! The error above is

/home/fabian/.local/share/Steam/steamapps/common/Euro Truck Simulator 2/bin/linux_x64/eurotrucks2: /home/fabian/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/primus/libGL.so.1)

I checked both, the libstdc++.so.6 in [...]/x86_64-linux-gnu/ and the libstdc++.so.6.0.21 in /usr/lib with

strings LIBRARY_NAME

and found out that only the one in /usr/lib (libstdc++.so.6.0.21) has "GLIBCXX_3.4.21" in it. I solved the problem by copying libstdc++.so.6.0.21 from

/usr/lib

to

~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/

and symlinking (and thus override the existing symlink) the libstdc++.so.6 in there to the just copied libstdc++.so.6.0.21 (

ln -sf libstdc++.so.6.0.21 libstdc++.so.6

). Before that, the libstdc++.so.6 was symlinked to libstdc++.so.6.0.18. So basically, the steam libraries were a bit ouf of date. The thing with LD_PRELOAD still shows up, but that doesn't seem to affect the problem.
I will mark this thread as [SOLVED], so hopefully people with the same problem will find this and fix the problem. :-)

Kind regards and happy trucking,

Cradow

Last edited by Cradow (2016-01-17 13:00:21)

Offline

Board footer

Powered by FluxBB