Skip to content

Instantly share code, notes, and snippets.

@squarism
Last active September 15, 2023 16:23
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save squarism/2aa822f204a67a375244 to your computer and use it in GitHub Desktop.
Save squarism/2aa822f204a67a375244 to your computer and use it in GitHub Desktop.
Kerbal Space Program Linux Box

Kerbal Space Program on Linux

KSP is delaying the 64-bit windows port for a while, at least past 1.0. The 32-bit Windows KSP version is a bit cramped. You install too many mods and the game will crash. It's hard to work out the balance point. On the KSP forums and on reddit, sometime people suggest switching to Linux. Someone is having problems playing a game and someone basically suggests learning Unix. Then the thread dies.

Linux (even if you've used it for a decade) is hard. Especially getting all the things to work properly. I used three different distros until I got AMD video drivers to work correctly and even now I'm not sure. You can have an easy time installing Linux. Maybe you got lucky on your hardware. Having a bad time in Linux is crazy-pants-party-time. You have to know a lot of commands just to collect information on what is going on.

Try a sprinkle of empathy.

So I wrote down what I did since I'm wiping my Linux partition over and over again. I hope this helps someone. Maybe you can link this.

15.10 has removed the need for the following sections:

  • video card setup (on my R290)
  • mono-complete from apt will load ckan (so you don't need to do the install, but you might need to do moz-imports)
  • steam updates will make steam not launch. remove the .so file as stated below.

Video Card Setup

This is for a 2xx series Radeon so this might be useless. I found these steps pretty different than the old school xorg.conf stuff we used to have to do in Linux. Pretty nice now! 🍰

sudo apt-add-repository ppa:oibaf/graphics-drivers
sudo apt-get update
sudo apt-get install mesa-vdpau-drivers
sudo apt-get dist-upgrade
sudo reboot

Instructions for nvidia (I hear) are easier? Idk.

Fix Steam

Steam complains about GLX context even though everything is fine. Great! Let's fix their legacy problem. 🐛

rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6

Install Mono for CKAN

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list

sudo apt-get update
sudo apt-get install mono-complete

mozroots --import --ask-remove

CKAN Setup

# current bug with SSL certs
# Error getting response stream - SendFailure
# no mozroots commands will change anything
apt-get install libcurl4-openssl-dev

CKAN (kerbal space program mods) can't see hidden folders. 🌀

mono ckan.exe ksp add default \
~/.local/share/Steam/steamapps/common/Kerbal\ Space\ Program/

Mouse Speed

Maybe you have one of those gaming mice? You have set mouse sentivitiy all the way down in Ubuntu or Linux Mint and it's still too sensitive?

## fix mouse sensitivity
#cat ~/bin/mouse-fix.sh`

#!/bin/bash

# For some reason, I get two mouse devices here.
DEVIDS=`xinput list | grep "Gaming Mouse" | sed -e "s/^.*id=\([0-9]\+\).*/\1/"`
DEVID=($DEVIDS)

if [ "${DEVID[0]}" != "" ]; then
  xinput --set-prop $DEVID "Device Accel Constant Deceleration" 2
  echo Set device deceleration for device $DEVID.
fi

# Then add this to startup applications on login 
# (Menu->Preferences->Startup Applications)
# This will differ based on what Ubuntu flavor you picked.  I went with Xubuntu.

Mod List

Name this file selections.txt. Change this list to whatever you want. I was unable to load this many mods under Windows. So I assume you might have a huge list like this too. 🐯

AstronomersPack
AstronomersPack-AtmosphericScattering
AstronomersPack-Auroras-4K 
AstronomersPack-Clouds-High
AstronomersPack-DistantObjectEnhancement 
AstronomersPack-Eve-Jool-Clouds-4K
AstronomersPack-PlanetShine 
AstronomersPack-Snow 
AstronomersPack-SurfaceGlow 
B9
CommunityTechTree
DMagicOrbitalScience
EnvironmentalVisualEnhancements-HR
InfernalRobotics
Karbonite
KarbonitePlus 
KAS
KerbalEngineerRedux
KWRocketry
MemoryUsage
MFS
NEAR
NearFutureConstruction
NearFutureElectrical
NearFutureProps
NearFuturePropulsion
NearFuturePropulsionExtras
NearFutureSolar
NovaPunch
PlanetShine
RemoteTech
SCANsat
TweakScale
UniversalStorage
USI-ART
USI-EXP
USI-FTT
USI-SRV
USITools

You should have already configured ckan with a default install from above.

Download CKAN from their releases page. Put ckan.exe and selections.txt in the same folder and open a shell. Run this.

for mod in `cat selections.txt`; do mono ckan.exe install --no-recommends \
--headless $mod; done

KSP Mun Forever Mod List

A recent long play through on 1.0.5 before the (HOPEFULLY AWESOME AAAAA 1.1)

000_FilterExtensions          JSI                        PlanetaryBaseInc
000_FilterExtensions Configs  KAS                        ProceduralParts
000_Toolbar                   KerbalEngineer             ProgressParser
000_USITools                  KerbalJointReinforcement   RCSBuildAid
AdjustableLandingGear         KerbalStats                RcsSounds
B9_Aerospace                  Kethane                    RealPlume
B9_Aerospace_HX               KIS                        RemoteTech
B9AnimationModules            Klockheed_Martian_Gimbal   SCANsat
B9PartSwitch                  Kopernicus                 scatterer
BahaSP                        KPlus                      ShipManifest
Chatterer                     KWCommunityFixes           SmokeScreen
CoherentContracts             KWRocketry                 SpaceY-Expanded
ColorCodedCans                MagicSmokeIndustries       SpaceY-Lifters
CommunityResourcePack         MarkIVSystem               Squad
CommunityTechTree             MenuStabilizer.dll         SurfaceLights
ContractConfigurator          ModRocketSys               TarsierSpaceTech
ContractsWindow               ModuleManager.2.6.20.dll   toolbar-settings.dat
CrossFeedEnabler              ModuleManager.ConfigCache  TriggerTech
Diazo                         ModuleManager.ConfigSHA    TweakScale
DMagicOrbitalScience          ModuleManager.Physics      UmbraSpaceIndustries
DPSoundFX                     ModuleManager.TechTree     UniversalStorage
EditorExtensionsRedux         NavyFish                   VanguardAstrodynamics
EngineLight                   NearFutureConstruction     WarpPlugin
EnhancedNavBall               NearFutureElectrical       WaterSounds
ExtraplanetaryLaunchpads      NearFutureProps            WaypointManager
Firespitter                   NearFuturePropulsion       WheelSounds
FreedomTex                    NearFutureSolar            WiderContractsApp
FuelTanksPlus                 NearFutureSpacecraft       Workshop
InterstellarFuelSwitch        PartCommander

All installed through ckan. These aren't the top level names. They are everything ... so ...

Here's the ckan file which is probably more useful.

{
	"kind": "metapackage",
	"abstract": "A list of modules installed on the default KSP instance",
	"name": "installed-default",
	"license": "unknown",
	"version": "2016.03.25.01.20.14",
	"identifier": "installed-default",
	"spec_version": "v1.6",
	"recommends": [
		{
			"name": "B9"
		},
		{
			"name": "B9AerospaceHX"
		},
		{
			"name": "Chatterer"
		},
		{
			"name": "CommunityTechTree"
		},
		{
			"name": "SpaceY-Lifters"
		},
		{
			"name": "DMagicOrbitalScience"
		},
		{
			"name": "DockingPortAlignmentIndicator"
		},
		{
			"name": "EnhancedNavBall"
		},
		{
			"name": "InfernalRobotics"
		},
		{
			"name": "NearFutureElectrical"
		},
		{
			"name": "USI-MKSLite"
		},
		{
			"name": "KerbalAlarmClock"
		},
		{
			"name": "KIS"
		},
		{
			"name": "NearFutureConstruction"
		},
		{
			"name": "ShipManifest"
		},
		{
			"name": "NearFutureSolar"
		},
		{
			"name": "WaypointManager"
		},
		{
			"name": "RealPlume"
		},
		{
			"name": "ProceduralParts"
		},
		{
			"name": "PartCommander"
		},
		{
			"name": "KarbonitePlus"
		},
		{
			"name": "EditorExtensionsRedux"
		},
		{
			"name": "AdjustableLandingGear"
		},
		{
			"name": "B9-PWings-Fork"
		},
		{
			"name": "SCANsat"
		},
		{
			"name": "CommunityResourcePack"
		},
		{
			"name": "KAS"
		},
		{
			"name": "KerbalStats"
		},
		{
			"name": "Toolbar"
		},
		{
			"name": "CoherentContracts"
		},
		{
			"name": "WiderContractsApp"
		},
		{
			"name": "UniversalStorage"
		},
		{
			"name": "NearFutureElectrical-Core"
		},
		{
			"name": "NearFutureSpacecraft"
		},
		{
			"name": "EngineLighting"
		},
		{
			"name": "surfacelights"
		},
		{
			"name": "RasterPropMonitor"
		},
		{
			"name": "B9-props"
		},
		{
			"name": "RasterPropMonitor-Core"
		},
		{
			"name": "NearFuturePropulsion"
		},
		{
			"name": "FirespitterCore"
		},
		{
			"name": "KWRocketry-CommunityFixes"
		},
		{
			"name": "SmokeScreen"
		},
		{
			"name": "B9AnimationModules"
		},
		{
			"name": "ContractsWindowPlus"
		},
		{
			"name": "InterstellarFuelSwitch-Core"
		},
		{
			"name": "AlternateResourcePanel"
		},
		{
			"name": "BDAnimationModules"
		},
		{
			"name": "CrossFeedEnabler"
		},
		{
			"name": "NearFutureProps"
		},
		{
			"name": "CustomClusters"
		},
		{
			"name": "KerbalJointReinforcement"
		},
		{
			"name": "SpaceY-Expanded"
		},
		{
			"name": "DockingSounds"
		},
		{
			"name": "MenuStabilizer"
		},
		{
			"name": "USI-UKS-Shared"
		},
		{
			"name": "USI-NuclearRockets"
		},
		{
			"name": "RCSSounds"
		},
		{
			"name": "RealPlume-StockConfigs"
		},
		{
			"name": "RoverWheelSounds"
		},
		{
			"name": "TarsierSpaceTechnologyWithGalaxies"
		},
		{
			"name": "WaterSounds"
		},
		{
			"name": "ContractConfigurator"
		},
		{
			"name": "ModuleManager"
		},
		{
			"name": "KWRocketry"
		},
		{
			"name": "KlockheedMartian-Gimbal"
		},
		{
			"name": "ColorCodedCans"
		},
		{
			"name": "FreedomTex"
		},
		{
			"name": "USITools"
		},
		{
			"name": "USI-Core"
		},
		{
			"name": "Karbonite"
		},
		{
			"name": "FuelTanksPlus"
		},
		{
			"name": "ModularRocketSystem"
		},
		{
			"name": "RCSBuildAid"
		},
		{
			"name": "Workshop"
		},
		{
			"name": "KPlus"
		},
		{
			"name": "KSPInterstellarExtended"
		},
		{
			"name": "FilterExtensions"
		},
		{
			"name": "Kopernicus"
		},
		{
			"name": "InterstellarFuelSwitch"
		},
		{
			"name": "TweakScale"
		},
		{
			"name": "KerbalPlanetaryBaseSystems"
		},
		{
			"name": "B9PartSwitch"
		},
		{
			"name": "ProgressParser"
		},
		{
			"name": "KaribouExpeditionRover"
		},
		{
			"name": "Scatterer"
		},
		{
			"name": "Kethane"
		},
		{
			"name": "ExtraPlanetaryLaunchpads"
		},
		{
			"name": "MarkIVSpaceplaneSystem"
		}
	]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment