X-Plane and Linux

Hello y'all! Before I start, this is my very first post in a long time. For those who do not know, I am the former host of flightdeckx.com, which served the community for almost a year until my son was born.

When that happened, I very quickly learned that I would not be able to maintain my own projects towards the community any longer because frankly I do not have the time anymore. Lucky as I am my friend Sérgio invited me to contribute to his exquisite website so yeah, it sure feels good to be back… :)

Anyway, back to the original topic. I am a Linux user since I first installed this Operating System for the first time back in 2005. Ever since that time, I ran a dual boot setup with Windows. With all the hassle I recently experienced with Windows 10 (Candy Crush anyone?) I decided to finally draw a line under this topic.

Before I go into details, please be aware I do not intend to start a flame war here. This is simply to provide some personal experience with running X-Plane 11 on Linux for those who seek an alternative to Windows.

Anyway, a few weeks ago, I completely wiped my system and installed Manjaro Linux, which is based on Arch Linux, but a lot more user friendly. First things first I tried to install X-Plane 11, which (even to my surprise) worked like a charm. All you need to do is download the Linux installer from Laminar’s website. Laminar even provides a comprehensive Linux Installation Walkthrough which helps getting started.

All the libraries necessary for running X-Plane were already installed so the whole process was straightforward. However, I did have problems with activation and the reason for this is so-called MAC-spoofing. Basically, this means, Manjaro is changing the unique address of a WIFI chipset each time you restart your PC.

This led X-Plane to believe that the computer changed after every restart, which ultimately maxed out my activations. After a few mails with Laminar’s support team, I was able to resolve this issue. In case you encounter a similar issue all you need to do is deactivate MAC-spoofing.

To achieve this, create the file /etc/NetworkManager/conf.d/30-mac-randomization.conf with the following content (be aware this could break your internet connectivity so do your homework and make sure this applies to your system):

X-Plane and Linux

After you‘ve done this (and a restart) you‘re good to go. Well almost, because I encountered one more problem. I am the proud owner of the Thrustmaster HOTAS Warthog Throttle and Joystick bundle, as well as Thrustmaster T.Flight Rudder Pedals and the Saitek Cessna Trim Wheel. While the Throttle and Joystick are recognized by X-Plane out-of-the-box, X-Plane failed to recognize my rudder pedals and trim wheel.

The reason for this as far as I understand is actually a security feature of certain Linux distros. If a certain USB device doesn‘t look like a joystick or gamepad (which are defined as devices with at least one axis and one button) the system assumes this certain device may impose a security risk and therefore blocks access to certain features.

As a result X-Plane cannot access these devices as neither a trim wheel nor rudder pedals have buttons. The solution is a bit more tricky but if you‘re used to Linux it doesn‘t take more than 5 minutes to do it. It involves writing a so-called „udev“ rule. udev is a device manager for the Linux kernel and basically manages how the system handles external devices. Anyway for Manjaro this is what you have to do (again, this might break your system, make sure you understand what you‘re doing):

In a terminal window, with your undetected device connected to your PC, type lsusb and press enter. This is an example of what you will get:

X-Plane and Linux

The result is a list of all your USB devices connected to your system. In my case lsusb also displays ID codes for my trim wheel and rudder pedals. Write down these ID codes.

The next step to do is to create the file /etc/udev/rules.d/99-X-Plane_11_Joystick.rules with the following content:

X-Plane and Linux

As you can see you need to insert one line for each undetected device. Within the line you need to enter the ID codes we gathered in the step before in the appropriate space of each line. Basically this allows the system to treat the devices as joysticks. You can now save that file and restart. The next time you fire up X-Plane your device(s) should be detected by the sim.

This is all I had to do to have X-Plane 11 running on my Linux system. In case you wonder if the hassle of setting up the sim on Linux is even worth it. I can tell you, it is. Compared to Windows, X-Plane runs more stable and I even gained some fps (I‘d say no more than 3 to be honest though).

In case you folks liked this post I‘ll write a second post about running X-Plane add-ons under Linux. So leave your thoughts and let us know… :)

Blue skies!