Elite Dangerous on Linux
Headless servers? I’m a Debian, or more recently an Ubuntu, person. But way back when my old operating system of choice became untenable, I had to make a decision; use the Windows desktop I supported at work, or find another option. The Linux desktop back in 2003 wasn’t somewhere I wanted to be and I found myself wishing there was some other operating system with UNIX underpinnings, maybe a nice Bash shell, but with a really polished user interface…
I’ve been a Mac user since then and have watched as desktop Linux has slowly closed the gap between its commercial rivals. Though Windows 10 is one of the more polished releases in years, it’s not without its problems and there are so many great distributions of desktop Linux these days it’s hard to ignore the pull of open source life.
I’m a goal-oriented sort of person, so I looked at why I found myself booting my Mac into Windows more often these days. One reason is driver support for some capture hardware I use. The other is Elite Dangerous. I’d wanted to investigate the Wine compatibility layer to get this working, but my first solo attempt ended badly. There are some great instructions out there, but after making my own way through them I like to slim things back as far as possible, so this is what I came up with.
Before we start, I only have Nvidia hardware so can’t comment on the AMD side, though the instructions I originally used talk through how to disable the Radeon driver and preferentially use the AMDGPU one.
The general trick is to set up the graphics drivers, then add in Steam and install Elite, launch it once to create its ‘prefix’, then delete all installed compatibility packages within that prefix and install our own updated ones; then allow Steam to add back in anything missing on next launch. If you already have Elite Dangerous installed through Steam for Linux use the ‘Backup and Restore Games’ feature so you’re not having to download over 20 GB of files if things go awry.
These instructions have been tested with Ubuntu Disco.
Add the latest Nvidia graphics driver:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-430 libnvidia-gl-430 libnvidia-gl-430:i386 libnvidia-compute-430 nvidia-dkms-430 nvidia-kernel-source-430 libnvidia-compute-430 nvidia-compute-utils-430 libnvidia-decode-430 libnvidia-encode-430 nvidia-utils-430 xserver-xorg-video-nvidia-430 sudo reboot
Remove any old leftovers and ensure Vulkan support is installed:
sudo apt remove --purge nvidia-*-418 sudo apt autoremove sudo apt install libvulkan1 libvulkan1:i386
Add repository keys and install the very latest Wine.
cd ~/Downloads mkdir winekeys cd winekeys wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_19.04/Release.key sudo apt-key add Release.key sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_19.04/ ./' sudo dpkg --add-architecture i386 wget -nc https://dl.winehq.org/wine-builds/winehq.key sudo apt-key add winehq.key sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ disco main' sudo apt update sudo apt install --install-recommends winehq-staging wine-staging wine-staging-i386 wine --version cd rm -rf ~/Downloads/winekeys
Again, the very latest version is required.
sudo apt install git mkdir Development cd Development git clone https://github.com/Winetricks/winetricks.git cd winetricks sudo make install cd rm -rf Development/winetricks
Install Steam and cabextract, which Proton is going to need in a minute:
sudo apt install steam-installer cabextract
To configure things:
- Run Steam from your launcher, let it install and then authorise it with your account.
- Go to Steam > Settings > Steam Play and tick “Enable Steam Play for all other titles”, leaving Proton 4.11-3 chosen.
- Restart Steam when prompted.
- Choose Elite Dangerous from your Library and install.
- Steam will instll Proton 4.11, Steamworks Common Redistributables and Elite Dangerous.
- Launch Elite Dangerous from Steam after downloads complete.
- Choose ‘Play Elite Dangerous’.
- Allow first time setup to complete.
- Elite Dangerous will show as running, then close itself.
- Wine prefix will now be configured here: ~/.steam/steam/steamapps/compatdata/359320/pfx
Then throw away all of Steam’s hard work from within the prefix path and use winetricks to install what we need:
rm -rf ~/.steam/steam/steamapps/compatdata/359320/pfx/* ~/.steam/steam/steamapps/compatdata/359320/pfx/.* WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/359320/pfx/ winetricks -q dotnet40 vcrun2015 win7
- Follow prompts for Wine Mono Installer and Wine Gecko Installer, the latter of which will appear twice (32-bit and 64-bit).
- When the ‘Program Error’ windows appear, click OK on them all to allow the install to continue. There’s about twenty.
- Hit Play on Elite Dangerous again.
- Hit ‘OK’ on rundll32.exe error “Unable to find a version of the runtime to run this application” twice.
- Allow Steam to install support libraries for the second time.
- Frontier Hardware Report should appear!
- Launcher should appear!
In my testing once you have the Launcher appearing there should be no issues running the game itself.
To give some context, my system is an Apple Mac Pro (Mid 2012) with a GTX 1080 Ti; in other words, a machine with what is these days a low-to-average CPU (though with 12 cores available) coupled to a reasonably powerful GPU. Monitoring system resources showed that CPU power was never a bottleneck, but the GPU was certainly being worked hard, for a lower number of frames per second overall.
I usually play the game at 3840×2160 with Ultra settings and achieve >60 fps the vast majority of the time with V-sync switched on under Windows 10, with a 120 Hz maximum frame rate to prevent the GPU going too wild. On Ubuntu under Wine 4.15 I was getting a pretty consistent 46 fps in planetary rings with the same settings, though performance was much better in supercruise and even in stations.
You may also notice a few rendering glitches, such as odd shadows or square lighting effects from limpets – but in all honesty I’m amazed at just how well, and reliably, the game runs without official support. Depending on your hardware and expectations this may well enough.
While just at this moment I can’t honestly say Ubuntu will entirely replace Windows for me, I’m going to be keeping this installation and checking progress regularly. Natively supported games run incredibly well and Valve deserves a huge amount of recognition for their work supporting the Linux platform. They’ve brought the Linux desktop dream a big leap forward.