Difference between revisions of "Linux"

From Kerbal Space Program Wiki
Jump to: navigation, search
m (Source of the problem: -many (no need to stress that, the reader will know if it applies); *in Steam it's simply a placeholder nothing thaaaat special;)
(accomplished, check grammar!)
Line 36: Line 36:
 
== 64-bit version ==
 
== 64-bit version ==
 
===Source of the problem===
 
===Source of the problem===
 +
The [[KSP]] sometimes can run out of memory, especially if you use many mods - the 32-bit application cannot handle memory over 4GB, and the 64-bit Linux version has a small bug, but can be cured before use.
 +
===Solution===
 +
At first ensure about your system is 64-bit version (if you not sure). For the command <code>uname --hardware-platform</code> it has to reply <code>x86_64</code>.
 +
 +
In the game directory there has to be a file named <code>KSP.x86_64</code>. This file needs a repair. Open a console in the game directory.
 +
 +
If you are not in the game directory, go there:
 +
 +
<code>cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"</code>
 +
 +
''($HOME - your personal home directory)''
 +
 +
:The correction commands for the KSP different versions:
 +
{| class="wikitable"
 +
|-
 +
! version !! commands
 +
|-
 +
| 0.24 — 0.24.2||
 +
<code>echo "0099f587: 00" | xxd -r - KSP.x86_64<br>
 +
echo "0099f58c: 00" | xxd -r - KSP.x86_64</code>
 +
|-
 +
| 0.23.5 ||
 +
<code>echo "090f377: 00" | xxd -r - KSP.x86_64<br>
 +
echo "090f37c: 00" | xxd -r - KSP.x86_64</code>
 +
|-
 +
| 0.23 ||
 +
<code>echo "838077: 00" | xxd -r - KSP.x86_64<br>
 +
echo "83807c: 00" | xxd -r - KSP.x86_64</code>
 +
|}
 +
 +
====the universal patcher from [https://github.com/Voidi/proprietary_installer/blob/master/ksp_installer Voidi]====
 +
<syntaxhighlight enclose="div" lang="text">
 +
#!/bin/sh
 +
position1=$(echo "obase=16; $(perl -n0777e 'print pos()-1,"\n" while /\x01\x00\x00\x00\xB8\x01\x00\x00\x00\xC3\x41\x56\x41\x55\x49/g' "./KSP.x86_64") - E" | bc)
 +
if [ $position1 != "-E" ]
 +
then
 +
echo "Patching Segfault out of the Rockets ..."
 +
cp -n "./KSP.x86_64" "./KSP.x86_64.unpatched"
 +
position2=$(echo "obase=16;ibase=16; $position1 + 5" | bc)
 +
echo "$position1: 00" | xxd -r - "./KSP.x86_64"
 +
echo "$position2: 00" | xxd -r - "./KSP.x86_64"
 +
else
 +
echo "This seems to be not a vanilla KSP executable"
 +
fi</syntaxhighlight>
 +
 +
From now, only your <u>hardware</u> limits the usable memory. Install as many mods as you wish.
 +
 +
Start: <code>KSP.x86_64</code>
 +
 +
Start with localization: <code>LC_ALL=C ./KSP.x86_64</code>
 +
 +
In case of '''Steam''': <code>LC_ALL=C %command%_64</code>
 +
 +
==Joystick==
 +
The joystick has to work by default. If your joystick is not available for the game, check the availability for Linux: <code>ls -l /dev/input/js* /dev/js*</code>. If the command is not replied with any file, that means there is noe driver installed. If you have driver install it, for example in case of Fedora install <code>kernel-modules-extra</code> package. If the driver is installed, plug in the joystick, and try again!
 +
 +
==External Links==
 +
[http:////forum.kerbalspaceprogram.com/threads/24529-The-Linux-compatibility-thread!?highlight=linux+compatibility/|A KSP Linux compatibility forum]
 +
 +
https://wiki.archlinux.org/index.php/Kerbal_Space_Program - KSP on Archwiki

Revision as of 07:57, 26 August 2014

This section contains information about Kerbal Space Program on operation systems based on GNU/Linux.

Running on non-English localized systems

Source of the problem

KSP doesn't work on some localization, because the English writes the decimal fractions with points (3.1415), and in other languages uses comma (3,1415). As a result of this, the Unity engine is attempting to use one method for writing and tries another method to read.

Command line on Steam

For starting in English localization use this command line:

LC_ALL=C ./KSP.x86

for the 64-bit version:

LC_ALL=C ./KSP.x86_64

The command lines can be used in console, placed in shell file or in the command or in the command line of menus. For Steam version the file name has to be replaced with the %command%:

<code>LC_ALL=C %command%

for the 64-bit version:

LC_ALL=C %command%_64

(See the picture on the right)

Text is missing in menus and the game

Source of the problem

The game needs Arial and Arial Black fonts not installed.

Solution

In case of Debian based systems (Ubuntu, Mint) install the "Microsoft TrueType core fonts" package (or something like this), in case of AchLinux "ttf-ms-fonts" package, and so in case of other distros too.

Mods

Source of the problem

There are no problems. The mods are usually compatible with each-others, and you do not have to pay special attention of compatibility of mod.dll -s.

64-bit version

Source of the problem

The KSP sometimes can run out of memory, especially if you use many mods - the 32-bit application cannot handle memory over 4GB, and the 64-bit Linux version has a small bug, but can be cured before use.

Solution

At first ensure about your system is 64-bit version (if you not sure). For the command uname --hardware-platform it has to reply x86_64.

In the game directory there has to be a file named KSP.x86_64. This file needs a repair. Open a console in the game directory.

If you are not in the game directory, go there:

cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"

($HOME - your personal home directory)

The correction commands for the KSP different versions:
version commands
0.24 — 0.24.2

echo "0099f587: 00" | xxd -r - KSP.x86_64
echo "0099f58c: 00" | xxd -r - KSP.x86_64

0.23.5

echo "090f377: 00" | xxd -r - KSP.x86_64
echo "090f37c: 00" | xxd -r - KSP.x86_64

0.23

echo "838077: 00" | xxd -r - KSP.x86_64
echo "83807c: 00" | xxd -r - KSP.x86_64

the universal patcher from Voidi

#!/bin/sh
position1=$(echo "obase=16; $(perl -n0777e 'print pos()-1,"\n" while /\x01\x00\x00\x00\xB8\x01\x00\x00\x00\xC3\x41\x56\x41\x55\x49/g' "./KSP.x86_64") - E" | bc)
if [ $position1 != "-E" ]
then
        echo "Patching Segfault out of the Rockets ..."
        cp -n "./KSP.x86_64" "./KSP.x86_64.unpatched"
        position2=$(echo "obase=16;ibase=16; $position1 + 5" | bc)
        echo "$position1: 00" | xxd -r - "./KSP.x86_64"
        echo "$position2: 00" | xxd -r - "./KSP.x86_64"
else
        echo "This seems to be not a vanilla KSP executable"
fi

From now, only your hardware limits the usable memory. Install as many mods as you wish.

Start: KSP.x86_64

Start with localization: LC_ALL=C ./KSP.x86_64

In case of Steam: LC_ALL=C %command%_64

Joystick

The joystick has to work by default. If your joystick is not available for the game, check the availability for Linux: ls -l /dev/input/js* /dev/js*. If the command is not replied with any file, that means there is noe driver installed. If you have driver install it, for example in case of Fedora install kernel-modules-extra package. If the driver is installed, plug in the joystick, and try again!

External Links

KSP Linux compatibility forum

https://wiki.archlinux.org/index.php/Kerbal_Space_Program - KSP on Archwiki