[bug][linux] game do not start

We’ve moved over to the paradox forums. Please come visit us there to discuss:
You can still read the collective wisdom - and lolz - of the community here, but posting is no longer possible.

Home Forums Update v1.5 – Open Beta Linux Specific [bug][linux] game do not start

Tagged: ,

This topic contains 8 replies, has 2 voices, and was last updated by  tezeriusz 6 years, 8 months ago.

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #174825

    tezeriusz
    Member

    Hi

    Today update(31.03.2015 – build number is unknown for me) messed a bit. Game/luauncher do not start.
    This is console output that I got after ‘play’ button was pressed in steam:

    Installing breakpad exception handler for appid(steam)/version(1427176184)
    Game update: AppID 226840 “Age of Wonders III”, ProcID 8380, IP 0.0.0.0:0
    ERROR: ld.so: object ‘/home/t0/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    [may that same lines]
    ./AoW3Launcher: /usr/lib32/libssl.so.1.0.0: no version information available (required by ./AoW3Launcher)
    ./AoW3Launcher: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by ./AoW3Launcher)
    Game removed: AppID 226840 “Age of Wonders III”, ProcID 8380
    Installing breakpad exception handler for appid(steam)/version(1427176184)

    cheers

    #174835

    Lascha
    Moderator

    The problem is that it cannot find libssl.so.1.0.0 and libcrypto.so.1.0.0. They should be present in your steam install directory. When you start steam and then press ‘play’ there should be an environment variable named LD_LIBRARY_PATH containing path to steam libs. For some reason your environment variable is incorrect.

    In AoW3 install dir edit AoW3Launcher.sh and before exec write: env

    Then check output for LD_LIBRARY_PATH

    #175223

    tezeriusz
    Member

    This is only partial true ;]

    In linux there are few lib’s directory that do not need to be present in LD_LIBRARY_PATH. I try to create symlin to specific libs and put it in AoW3 ‘exe’ directory. However there is still problem and downgrading this lib to libssl3 didn’t worked too.

    Maybe this will be more clear:
    $ ldconfig -p | grep ssl
    libssl3.so (libc6,x86-64) => /usr/lib/libssl3.so
    libssl3.so (libc6) => /usr/lib32/libssl3.so
    libssl.so.1.0.0 (libc6,x86-64) => /usr/lib/libssl.so.1.0.0
    libssl.so.1.0.0 (libc6) => /usr/lib32/libssl.so.1.0.0
    libssl.so (libc6,x86-64) => /usr/lib/libssl.so
    libssl.so (libc6) => /usr/lib32/libssl.so
    libgnutls-openssl.so.27 (libc6,x86-64) => /usr/lib/libgnutls-openssl.so.27
    libgnutls-openssl.so.27 (libc6) => /usr/lib32/libgnutls-openssl.so.27
    libgnutls-openssl.so (libc6,x86-64) => /usr/lib/libgnutls-openssl.so
    libgnutls-openssl.so (libc6) => /usr/lib32/libgnutls-openssl.so
    libevent_openssl-2.0.so.5 (libc6,x86-64) => /usr/lib/libevent_openssl-2.0.so.5

    cheers and pls fix it and can play the game….uh…test the game;]

    btw I to not have LD_LIBRARY_PATH defined in system at all.
    btw2 the problem is not that game can not find lib but that version of lib is not working with game.

    #175415

    Lascha
    Moderator

    Steam sets LD_LIBRARY_PATH when you have runtime enabled. Then LD_LIBRARY_PATH will point to correct libraries, including libssl.so.1.0.0. Steam does this to ensure everyone has the same version libraries. So it should just work.

    Could you try to start steam like this?

    STEAM_RUNTIME=1 steam

    #175437

    tezeriusz
    Member

    LD_LIBRARY_PATH from AoW3Launcher point to current directory only (adding ‘.’ is bad idea in my opinion – what will be added if I call script from different directory?). Current directory do not contain libssl or libcrypto so system want to load default from binary architecture(32bit) and It does that.

    But to the point I played with it a little and there are my findings:
    – Script called from ‘stream’ play button (terminal output look at _64 dirs) – launcher do not start:

    
    ERROR: ld.so: object '/home/t0/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    LD_LIBRARY_ENV .:/home/t0/.local/share/Steam/ubuntu12_32:/home/t0/.local/share/Steam/ubuntu12_32/panorama:/usr/lib:/usr/lib32:/home/t0/.local/share/Steam/ubuntu12_32:/home/t0/.local/share/Steam/ubuntu12_64:/run/media/t0/Dane_lin/SteamLibrary/SteamApps/common/AoW3:/run/media/t0/Dane_lin/SteamLibrary/SteamApps/common/AoW3/bin
    ERROR: ld.so: object '/home/t0/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
    ./AoW3Launcher: /usr/lib32/libssl.so.1.0.0: no version information available (required by ./AoW3Launcher)
    ./AoW3Launcher: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by ./AoW3Launcher)
    Game removed: AppID 226840 "Age of Wonders III", ProcID 6266 
    

    – Script called from game dir -launcher is working and game too when steam is turned off (if not I got hard crash of launcher)

    
    LD_LIBRARY_ENV .:
    ./AoW3Launcher: /usr/lib32/libssl.so.1.0.0: no version information available (required by ./AoW3Launcher)
    ./AoW3Launcher: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by ./AoW3Launcher)
    [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
    [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
    UserPath: \home\t0\.local\share\AoW3\
    Working Directory: \run\media\t0\Dane_lin\SteamLibrary\SteamApps\common\AoW3\\
    [ERROR]NetGetRegion() not implemented!
    

    – STEAM_RUNTIME=1 env added before steam was started produced (working fine):

    
    LD_LIBRARY_ENV .:/home/t0/.local/share/Steam/ubuntu12_32:/home/t0/.local/share/Steam/ubuntu12_32/panorama:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/i386/
    lib:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/hom
    e/t0/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/t0/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib:/usr/lib:/usr/lib32:/home
    /t0/.local/share/Steam/ubuntu12_32:/home/t0/.local/share/Steam/ubuntu12_64:/run/media/t0/Dane_lin/SteamLibrary/SteamApps/common/AoW3:/run/media/t0/Dane_lin/SteamLibrary/SteamApps/common/AoW3/bin
    ERROR: ld.so: object '/home/t0/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
    

    Just to be on safe side I attached steam log

    cheers

    #175747

    Lascha
    Moderator

    The last one is correct, because it enables steam runtime. Which is a MUST-have. The problem with linux is that there are many different versions, and we cannot support all of them because each version has its own version of libs. So basically I can fix it for some versions of linux, but other versions might not work. That is why we need steam runtime. To understand better, read this:

    https://wiki.archlinux.org/index.php/Steam#Steam_runtime_issues

    I think if you start steam from command line using
    steam
    then it will not enable steam runtime. Therefore you must start it via the launcher/applications menu etc. If you still want to start it via the command-line, then the only way I know is to add the env variable like so:
    STEAM_RUNTIME=1 steam

    When steam runtime is enabled, steam adds paths to LD_LIBRARY_PATH. These libs can be found here:
    /home/<username>/.local/share/Steam/ubuntu12_32/steam-runtime

    Then AoW3Launcher.sh also adds ‘.’ to that. So if you start steam without runtime, then there will be only ‘.’ added, but not the steam paths.

    PS. The last issue I’m not sure about. It looks like there’s a graphics lib conflict but that shouldn’t affect the game. It only disables the in-game steam overlay. There’s more info about this error in the above link.

    #175774

    tezeriusz
    Member

    Got that all but please answer why game can start when I run script without steam running? (this is not rly important just curiosity;)

    I never had any problem with game on steam and it looks like I was using it wrong way all the time.

    About that overlay I was thinking that same so I did quick check and cs:go is working fine with overlay.

    #175895

    Lascha
    Moderator

    Not 100% sure but I think it can start because the game also searches in your system libs. Steam only overrides LD_LIBRARY_PATH to change search order so that it tries to look in Steam folder BEFORE it looks in your system folder.

    Not every games on steam correctly uses steam runtime, some games provide all libs with their game. But with linux there are many licensing issues if we try to do this. Steam devs told us that its recommended that we use steam runtime instead.

    Thanks about overlay. I’ll add it to my list 🙂

    #175923

    tezeriusz
    Member

    Point from steam devs looks good when you consider that game should work for long lime in independent way from system libs.
    AFAIK there is no license that will forbids to link dynamic lib. Problem starts when you want to embed lib into your project.

Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.