• 0
Sign in to follow this  

KSP 1.3 Broken string substitution, Steam & 64-bit Linux Mint 17


I have been playing through a career game started in KSP 1.2.x   After the 1.3 update, Kerbal names no longer appear in the text.  Instead odd symbols are present which I guess are in the source file and are supposed to be replaced at run-time.  All the Kerbals are now named: 


That's not a weird code, that's the name as it appears on screen.  In addition there multiple choice substitutions that appear such as:

  "Ferry <<n:1[/%d]>> <<n:1[a VIP]/tourists]>> safely to <<n:3[destination/destinations/destinations]>><<n:4[./and back./ and back.]>>"

for contract text. 

Looking in KSP.log I see the related error message (long paths have been shortened to $KSP_ROOT):

      [ERR 01:28:04.883] Couldn't open $KSP_ROOT/KSP_Data/Plugins/x86/liblingoona.grammar.kerbal.so, error: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by $KSP_ROOT/KSP_Data/Plugins/x86/liblingoona.grammar.kerbal.so)

I gotta say, it's pretty impressive that the game is still playable even when a shared object flat out fails to load.  Nice work Squad!

Two questions:

 *  Does anyone know which version of libstdc++ implements the ABI listed above?

 *  Is there any reason that the 32-bit version of the game should be launching instead of the 64-bit version when both are present? 

I have screen shots if needed, thanks for the help.


Share this post

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

I was advised to upgrade to mint 18 to sort out my lingoony problems. I did and the not-found file was able to be found.

I launch mine right from the directory so If I get the 32 bit version, it means I opened the wrong file.


Share this post

Link to post
Share on other sites
  • 0

Hey, thanks for the hint! I had (almost) the same problem on Debian 8; didn't think of looking at the log. I just tried 6.3.0-18 from stretch and it seems to fix the issue, so I guess that version must have whatever is needed.

Share this post

Link to post
Share on other sites
  • 0

 @arctangent: Thank you!

I can confirm that the DLL libstdc++.so.6.0.22 from libstdc++6_6.3.0-18_amd64.deb fixes the issue perfectly on Linux Mint 17.2.

This version of Mint is otherwise problematic: the default libstdc++.so.6 is too old, whereas the one from the ubuntu-toolchain-r PPA (as suggested on StackOverflow as a solution to a similar problem) is too new (libstdc++.so.6.0.23, newer ABI) for KSP 1.3.0.

In case anyone else runs into this problem (and upgrading Mint is not an option for them), instructions:

  • Open your KSP_linux directory in the file manager
  • For 64-bit KSP, download the deb package, for the amd64 architecture, from the Debian site. Link posted by arctangent.
  • Open the downloaded deb package with Archive Manager
  • In Archive Manager, inside the deb package navigate to /usr/lib/x86_64-linux-gnu/
  • Extract libstdc++.so.6.0.22 into your KSP_linux directory
  • Open a terminal in your KSP_linux directory
  • In the terminal, create the symlink, since KSP will look for "libstdc++.so.6":
    ln -s libstdc++.so.6.0.22 libstdc++.so.6

    It is possible to just rename the file to libstdc++.so.6, but this has the advantage of preserving the information about the ABI version in the filename.

  • Create a startup script (run.sh) that tells Linux (technically, the dynamic linker) to prefer this libstdc++.so.6 over the system one when starting KSP:

    LD_LIBRARY_PATH=. ./KSP.x86_64

    Basically, this first tries loading any DLLs (.so) from the current directory before defaulting to the system paths.

  • Set the startup script as executable:

    chmod +x run.sh


  • Then, to start KSP, open the KSP_linux directory in the terminal, and execute ./run.sh


Final note: a startup script can be useful in other non-standard configurations. For example, my run.sh says


which runs the game through primusrun (to run the graphics on the NVIDIA GPU). I'm not sure if __GL_THREADED_OPTIMIZATIONS=0 is needed any more, but I've left it in just in case :)



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this