X-Plane on Linux

X-Plane is the world’s most comprehensive and powerful flight simulator for personal computers, and it offers the most realistic flight model available. X-Plane is not a game, but an engineering tool that can be used to predict the flying qualities of fixed- and rotary-wing aircraft with incredible accuracy. X-Plane includes 19 aircraft in the default installation, spanning the aviation industry and its history. The full scenery package covers the Earth in stunning resolution from 74° north to 60° south latitude and includes over 34,000 airports.

It is available for Windows, MAC and Linux!

I don't really care about MAC, and very happy to be able to get rid of Windows. So in my current simulator building project I decided to try out the Linux version in a hope that I can save some money and a lot of pain about the maintenance :)

Installation

At first, you should check the Hardware Requirements!

Then  You can download a single .zip file as an installer. This means it will not integrated to your package manager for sure. This in fact can be good and bad at the same time. Good because it is not bound to a specific distribution (however It maybe statically linked to specific version of libs which may not mach with your distribution) Bad because it may mess up your system pretty badly. I have very bad experience with Linux "ports" of commercial products, so I was very skeptic about the final result. To be on the safe side, I chose Ubuntu 16.04 LTS - because they build the Linux port on that distro...

  • The zip contains a confusing '__MACOSX' directory and a single binary file containing annoying whitespaces. But at least it is a real 64-bit executable, not a fake 32bit windows executable wrapped by some shitty emulator.
  • The installer should be run with user privileges! This is good because it can't mess with the system. And at the same time it is bad because the user may mess up the X-Plane installation itself. So preparing a dedicated user is a wise choice before starting the installer.
  • The downloaded package actually just an installer that needs internet access to get most of the needed files. As it was expected because of the very small (~20Mb) installer package size. So offline install is not an option here.
  • The default target directory contains annoying whitespaces. It is a good practice to modify that at install time, and get rid of whitespaces.
  • There is an option for a trial install, so you can test before buy. This is a huge advantage. Thank you Laminar Research!

During a single trial install I was able to found out these issues, and was able to prepare and design accordingly. So Laminar Research made a great job overall,  with some minor defects they should correct.

Input devices

Gaming on Linux is not just hard because of the very limited number of games available but there is no real support for advanced input devices. For the current project I was using a modified Jeppesen FS-200 and a Saitek Pro Flight Yoke. While the Saitek Yoke has no official Linux support, it is just works under X-Plane11 :)

The modified FS-200 needs some custom udev rules to be seen as a joystick:

SUBSYSTEMS=="input", ATTRS{name}=="Unknown Jeppesen1", ENV{ID_INPUT_JOYSTICK}="1", TAG+="uaccess", SYMLINK+="input/js-jeppesen1"
SUBSYSTEMS=="input", ATTRS{name}=="Unknown Jeppesen 2", ENV{ID_INPUT_JOYSTICK}="1", TAG+="uaccess", SYMLINK+="input/js-jeppesen2"

Autostart

As I noted earlier: the installer was not mess up with the OS at all, it was only placed files to it's destination directory (and the '.x-plane/' hidden folder for some settings) However it is not even creating any .desktop file for an easy and standard starting possibility. Yeah, this means you have to start the program from the Command Line - or you may create a desktop file.

I was going one step further, and created a custom X session instead. This means If I login with my 'xplane' user (the dedicated one I prepared before install), the X-Plane program will start automatically instead of the default Ubuntu Desktop. This way it is also runs faster because there is no window manager, gnome session, or any other not needed fancy thing. Just a the pure X-Plane 11 in full screen. To achieve this you need a wrapper file: '/usr/local/bin/X-Plane' whit this content:

#!/bin/bash
$HOME/X-Plane/X-Plane-x86_64

And a session file: '/usr/share/xsessions/X-Plane.desktop' whit the following content:

[Desktop Entry]
Name=X-Plane
Comment=X-Plane 11
Exec=/usr/local/bin/X-Plane
TryExec=/usr/local/bin/X-Plane
Type=Application

You will need root privileges to prepare those files, but the later is actually a working .desktop file which can be used as an application starter as soon as you copy it to '.local/share/applications/' folder as an unprivileged user.

Passwordless Login

As the simulator gonna be used by non IT staff, so passwordless login is really user friendly. Yes this is "insecure". However it needs physical access to the device. And this device will be operated by only the authorized staff. So passwordless login here is really not an issue, but a nice feature :) To achieve this you need to run this command with root privileges:

sudo gpasswd -a xplane nopasswdlogin

After those modifications, you can choose the newly created 'X-Plane' session for your simulator user, and just click on login to start it. When you finished your simulator session, just exit from X-Plane, and you will be placed back to the login screen.

KIOSK mode

After you configured the simulator to your needs, you can enable the just announced KIOSK mode - for a more error prone simulator experience.


You may need intermediate Linux skills to achieve the mentioned results. There was no intention to make a step-by-step guide for beginners, however if you contact me I'm happy to help You :)