Users with newer Ubuntu versions have reported they can’t get X-Plane to start after the update to 10.30, while it worked fine with 10.25.

Since 10.30, X-Plane links to libudev to discover devices like the Oculus Rift on Linux, and that has caused a few hiccups with some of your Linux installations out there.

No, this post is NOT about the Oculus Rift on Linux!! If you want to know the current state of Oculus Rift development, go and read this one. Though there’s a little update: At OC1, Oculus confirmed they still want to support Linux. They didn’t say when, though.

Back to libudev. X-Plane for Linux is built on a very old Linux distro, Ubuntu 10.04LTS server, which is horrendously outdated by now. But it has the advantage that binaries built on that an old version, will work with basically ANY distro out there today. Basically, the older the distro is we choose for building, the more distros users can run the binary on.

The problem with libudev0 though is, it is so old, that modern distros just don’t ship it anymore! You can only get the newer libudev1. As a work-around, you can simply sym-link libudev.so.0 to libudev.so.1 to make X-Plane find the newer version.

Starting with X-Plane 10.31, we will remove the load-time dependency on libudev again so everything is back to working like it was on 10.25.

In the future, we will load libudev dynamically based on the version the Oculus SDK requires (This is when an Oculus runtime is available for Linux, which currently isn’t).

Summary:

  1. X-Plane 10.30: you need to create a symlink if it doesn’t work
  2. X-Plane 10.31: no need for a symlink because we won’t depend on libudev at all
  3. X-Plane 10.x: X-Plane will ONLY require libudev when you are using the Oculus Rift

As for the sym-link work-around, avid Linux user and plugin developer Bill “Sparker” has created a thread on X-Plane.org where the appropriate paths for the symlinks are posted for a variety of different Linux distros.

UPDATE: The method described here works just as well and has the benefit of limiting the change to one application only.

About Philipp Ringler

Flight instructor on sunny days, software developer on rainy days. Drinks Darjeeling while beating FAA database anomalies into submission.

8 comments on “Linux and Libs – How to get 10.30 working again on Linux

    1. I’m only replying to the first half of your post, the question about why Occulus Rift is taking up so much attention at LR and elsewhere.

      I have not used any of the Oculus Rift prototypes myself, and I haven’t used any other VR headset either. I dip into quite a few tech and gaming blogs though, so I have read the first hand experiences of lots of people who have, and there isn’t a single one of them who doesn’t describe the experience as extraordinary.

      If the guys at Oculus manage to get a release candidate out there in the public’s hands, and the gaming developers manage to get their act together too, then it doesn’t take much imagination to see that Oculus is going to revolutionise gaming and simming.

      Furthermore, field of vision is a big problem in home flight simulation. Most people only have a single monitor and don’t have the resources or the space for anything else. Yet, onto that monitor, we try to squish an entire dashboard, an outside view and the ability to look around, plus maps, charts and any other resources we might need reference to. Any solution is a compromised solution, but you only need to look on the forums to see the 3,4, 5 and 6 monitor rigs people put together to try to solve the problem, let alone projectors and real world hardware.

      True VR solves all of those problems in one fell swoop.

      I just hope LR and Oculus between them can work out a way to solve the interface problems that currently exist.

  1. I will leave it to other users to explain why we care for Oculus Rift, and just say that we are excited about this new technology and it’s potential for an unprecedented VFR flight experience.

    From the technical side, yes, the first method outlined in the linked github page would totally work and is even better than the one suggested on X-Plane.org, because it limits the effect of the symlink to the folder of X-Plane only, rather than making it available system-wide. I do not recommend trying the second method of modifying the binary.

  2. Running such an old LTS distro is not necessarily a good thing, especially if you are using old versions of GCC to build your application. There have been improvements to GCC over the last 4 years (10.04 was EOL’d in 2010). Newer compilers generate better machine code. Better machine code = improved application performance.

    Ps: Disregard what I am saying if you are using a recent compiler backported to 10.04.

    1. We use several different compilers for development, for instance the Steam build of X-Plane is compiled with gcc 4.8 (the Steam runtime itself requires a much more recent Linux environment, so we cannot build X-Plane for Steam on our ancient 10.04 server) and my own development version even with LLVM/clang 3.5. Though the latter will not be for the prime-time release any time soon. We try to minimise changes in runtime environment for X-Plane plugins at least within one major version run, to keep disturbance for third-party developers to a minimum.

      1. Hi Philipp,

        Its good to see Clang being used. It’s actually become the default compiler in FreeBSD, Clang blitzes GCC when it comes to compile times (compile a large project via GCC then do the same in Clang and you will see what I mean).

        So the steam version of X-Plane is compiled with a newer GCC? That is interesting. I wonder if any noticeable performance improvements are evident by this?

        Cheers,
        Alex.

  3. Oculus Rift is indeed a technology I would love to see and use with X-Plane, personal opinion I think it’s not all there yet.. Thanks for your reply Phillip, will try the first method then..

Comments are closed.