How to run Shadowrun: Dragonfall on Ubuntu Linux

I’m very happy that Harebrained Schemes chose to release its Shadowrun game series (Shadowrun Returns, Shadowrun: Dragonfall, and Shadowrun: Hong Kong) for Linux. It can be a little difficult to get this stuff running on Linux. In this post, I will explain the errors you may see when trying to run Shadowrun on Linux.

Installation Procedure

I purchased and downloaded Shadowrun:Dragonfall on sale from Humble Bundle.

1. Verify file integrity. The md5 checksum is provided on Humble’s download page-check the output from this command against what Humble provides. This is how you make sure that you aren’t installing a corrupted or infected application on your system:


2. Unzip the downloaded file:


Continue reading How to run Shadowrun: Dragonfall on Ubuntu Linux


Running Unity games via Steam in Linux

There seems to be a lot of confusion about how to run games built on the Unity engine distributed by Steam on a Linux system. I recently solved this problem after backing the promising survival sandbox game Planet Nomads on Kickstarter. Here is how to configure an Ubuntu Linux system and launch Planet Nomads successfully.


If you have an Nvidia card, you must download and install the official proprietary drivers provided by Nvidia. I could not get Unity to launch with the open-source drivers. Once I installed the proprietary (closed source) drivers, I was able to launch Planet Nomads from the Steam application.

Launching on Linux

When you need to troubleshoot something, there is no substitute for using the command line. At this point, forget about Steam altogether. Open a terminal and run the following command. Once you get it working, you can create a “launcher” or shortcut in your desktop environment so that you won’t have to remember the command. It also may run directly from Steam once you’ve solved the underlying problem.

Open a terminal and type the following command to launch Planet Nomads. For other games build on Unity and distributed using Steam, use a similar command, but change the command to reflect the actual path to the game binary:

~/.steam/steam/steamapps/common/Planet\ Nomads/PlanetNomads.x86_64

I’m assuming you are already familiar with running commands in a terminal. If this Unix/Bash syntax is confusing, please post a comment and I will explain.

When the game launches successfully, the output looks like this:

Found path: /home/your_username/.steam/steam/steamapps/common/Planet Nomads/PlanetNomads.x86_64
Mono path[0] = '/home/your_username/.steam/steam/steamapps/common/Planet Nomads/PlanetNomads_Data/Managed'
Mono path[1] = '/home/your_username/.steam/steam/steamapps/common/Planet Nomads/PlanetNomads_Data/Mono'
Mono config path = '/home/your_username/.steam/steam/steamapps/common/Planet Nomads/PlanetNomads_Data/Mono/etc'
displaymanager : xrandr version warning. 1.5
client has 4 screens
displaymanager screen (0)(DVI-D-0): 1920 x 1080
Using libudev for joystick management

Importing game controller configs


You can specify a log file to hold full output from the game launch:

~/.steam/steam/steamapps/common/Planet\ Nomads/PlanetNomads.x86_64 -logfile ~/planetnomads_log.txt

Note that even a successful launch of the game will create some misleading errors in the log, such as:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at Database.SQLite.Finalize () [0x00000] in :0 
[Steamworks.NET] SteamAPI_Init() failed. Refer to Valve's documentation or the comment above this line for more information.
(Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Note that these “error” messages do not impact your ability to play the game!

Configure CentOS/RedHat VMs with Kickstart files on Virtualbox

Kickstart is a type of file that’s used to automatically install RedHat or CentOS Linux on a physical or virtual server. If you are managing more than a few servers, it’s a good idea to configure the servers via kickstart files instead of logging in and configuring each one manually. However, some unfortunate choices were made when defining the Kickstart file format, and it’s not the easiest thing to use. When creating a new Kickstart or making major changes, it’s good to have way to quickly iterate and test your changes. Iterating on a Kickstart file is slow and inconvenient in an enterprise environment in which a freshly booted server obtains an image and Kickstarter file via PXEboot. To speed up Kickstart testing and debugging, I’ve developed a simple way to use Kickstart files with CentOS/RedHat guest virtual machines that run in VirtualBox on my Mac. This process should also work with Windows or Linux hosts.

Continue reading Configure CentOS/RedHat VMs with Kickstart files on Virtualbox

General error: 2006 MySQL server has gone away

“MySQL Server has gone away” is a cryptic error that can be hard to troubleshoot (look at all the various responses on Stack Overflow!) Many problems can cause this error; I would like to document one specific case. In this example, the client is a PHP app using the Phalcon framework:

[Mon, 09 Apr 18 03:34:08 -0400][ERROR]  SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /path/to/ModelBase.php:
Stack trace:
#0 [internal function]: PDOStatement->execute()
#17 {main}

Continue reading General error: 2006 MySQL server has gone away