Skip to content
Brendan McGrath edited this page Nov 13, 2021 · 76 revisions

The official build of Proton 6.3-6 and later runs ED

A custom build is no longer required. No modifications are required.

The rest of this wiki is here for legacy reasons

If you're new to Linux, the steps provided here (for installing Steam and Elite Dangerous) may prove useful.

Legacy

With older versions of Proton, the ED prefix required a manual updated to at least wine-mono version 6.2.0.

Proton 6.3-4 came with wine-mono version 6.1.2, so you would need to install version 6.2.0 manually. Instructions on how to do so were found here [still there under the legacy section].

As an alternative to wine-mono, you can try to install dotnet40:

Using protontricks is the easiest solution, but does require the installation of some python tools.

The manual approach has more steps, but does not require installation of any additional software. If you already have wine and winetricks installed; then I recommend using the winetricks method over the manual install.

Setting the Wine prefix

This step is not required with protontricks (it will set the WINEPREFIX for you). But the other two install methods require the setting of the WINEPREFIX environment variable.

The WINEPREFIX tells wine where to install software and apply configuration changes.

To set the WINEPREFIX, run the following:

STEAMAPPS=~/.steam/steam/steamapps # see comment below about this value
export WINEPREFIX=$STEAMAPPS/compatdata/359320/pfx

The value of STEAMAPPS may be different for your system. To confirm, right-click ED (in your Steam library) and go to Properties -> Local Files (the tab) -> Browse Local Files. The value of STEAMAPPS should be this path up until (and including) the steamapps directory.

Using protontricks

You will need:

  • protontricks; and
  • winetricks (20190615-next or higher).

How to install these will depend on your distribution. But for Ubuntu 20.04, run the following commands (credit to Duke on ProtonDB):

sudo apt install python3-pip python3-venv winetricks
python3 -m pip install --user pipx
PATH=~/.local/bin:"$PATH" # note that ~/.profile by default adds this path if it existed when you logged in
pipx install protontricks # use 'upgrade' instead of 'install' if protontricks was already installed

In order for protontricks to work, the Wine prefix must already exist. To do this, simply run the game once (you may get an error or it will just silently exit).

Once winetricks and protontricks are installed (and you've tried to run Elite Dangerous at least once), run:
protontricks 359320 -q dotnet40 # use full path if command not found. e.g. ~/.local/bin/protontricks

You can now launch the game (click 'Play' from within the Steam client).

Note that much of the troubleshooting section below still applies; although most issues are related to:

  • incorrect wine or winetricks version (see above); or
  • incorrect graphics driver (see the DXVK wiki for recommended versions)

ProtonDB is also a useful resource.

Using winetricks

You will need:

  • wine (4.0 stable is recommended for Proton 4.2, but anything higher should also work. For Proton 4.11, try using wine 4.11. For Proton 5.0, use wine 5.0 stable); and
  • winetricks (20190615-next or higher).

How to get these depends on your distro. Please see the Wine section of this wiki for more information.

Instructions for obtaining winetricks can be found here. Note that how wine-mono was installed changed with Wine version 4.6. wine-mono needs to be uninstalled to install dotnet40, and only a more recent version of winetricks will do this correctly.

With these installed, make sure your WINEPREFIX is set (as shown above) and run the following:

rm -rf $WINEPREFIX
winetricks -q dotnet40 win7

You can now launch the game (click 'Play' from within the Steam client).

Note that the errors that pop-up when you first launch ED can be safely ignored.

Also note that much of the troubleshooting section below still applies; although most issues are related to:

  • incorrect wine or winetricks version (see above); or
  • incorrect graphics driver (see the DXVK wiki for recommended versions)

ProtonDB is also a useful resource.

Manual install

Make sure your WINEPREFIX is set (as shown above) and update your PATH to include the Proton version of wine.

For example:

PROTONSTEAMAPPS=~/.steam/steam/steamapps # see comment below about this value
PATH="$PROTONSTEAMAPPS/common/Proton 4.11/dist/bin:$PATH"

The value of PROTONSTEAMAPPS may be different for your system. To confirm, right-click the Proton version you will use to run ED (for example 'Proton 4.11'). This is found in Steam under Library -> Tools. Go to Properties -> Local Files (the tab) -> Browse Local Files. The value of PROTONSTEAMAPPS should be this path up until (and including) the steamapps directory.

You will also want the dotnet40 installer. If you have used winetricks, this will most likely be located here:

  • ~/.cache/winetricks/dotnet40/dotNetFx40_Full_x86_x64.exe

Otherwise you can download it with:

  • wget https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

Now:

  1. Start with a clean prefix by deleting the current (rm -rf $WINEPREFIX)
  2. Run ED from Steam once (this will create the prefix and install a number of components before exiting quietly)
  3. Run wine64 uninstaller and remove 'Wine Mono Windows Support'
  4. Run wine64 winecfg and set 'Windows Version' to 'Windows XP'
  5. Install dotnet40 by running wine64 dotNetFx40_Full_x86_x64.exe from the path where dotNetFx40_Full_x86_x64.exe was downloaded
  6. Run wine64 winecfg again and set 'Windows Version' back to 'Windows 7'

You should now be able to launch and play ED from within Steam.

To install the legacy custom build:

Warning: If updating from a previous custom version of Proton for Elite Dangerous - please ensure you have completed the install before deleting the old custom version. Deleting a Proton version that is still configured for use by Steam causes all Proton games to be deleted.

  • create a 'compatibilitytools.d' directory under your steam 'root' dir. This is usually under ~/.steam/root (e.g: mkdir ~/.steam/root/compatibilitytools.d) but it appears to be under ~/.local/share/Steam/compatibilitytools.d on some other distros and installs.
  • copy Proton_3.16-8_Beta_ED.tar.gz to this directory
  • extract the contents (e.g: tar xf Proton_3.16-8_Beta_ED.tar.gz)
  • run ./fixED.sh - which can be found in the root of the extracted directory (this step is optional if you have dotnet40 installed in the ED prefix. As of Proton 3.16-8 Beta ED, vcrun2015 is no longer needed)
  • restart Steam
  • select this release from your Steam Play settings (as shown below) or force it just for Elite Dangerous (also shown below)

Select this option to use the custom build for all games (images are for older release - but process is the same):

steamplay

Or select this option to use the custom build only for Elite Dangerous:

forceED

Please note that you use this release at your own risk with no guarantees. Please see the LICENSE for full terms and conditions.

Troubleshooting:

Launcher doesn't show the 'Play' button

This is a known issue under some configurations with Proton 5.0-1 thru 5.0-3. From Proton 5-0, dxvk is used to implement d3d9 (d3d9 being used by WPF within DotNet). This issue has been fixed in DXVK v1.5.5 which is included in Proton 5.0-4. See https://github.com/doitsujin/dxvk/issues/1459 for additional details.

So you can upgrade to the latest Proton version, or you can try the following work-arounds:

If you have multiple GPUs, one solution is to use the DXVK_FILTER_DEVICE_NAME environment variable to ensure the correct device is being used. For example:

Another option is to install dotnet48 (instead of dotnet40) and to run the following (with your WINEPREFIX set):

wine64 reg ADD 'HKLM\Software\Microsoft\Avalon.Graphics\MultiAdapterSupport' /v 'Z:\path\to\steamapps\common\Elite Dangerous\EDLaunch.exe' /t REG_DWORD /d 0 /f

If you don't have multiple GPUs (or none of these options resolve the issue) the recommendation is to use Proton 4.11.

Launcher doesn't... launch

If your logs show:

0009:err:module:fixup_imports_ilonly mscoree.dll not found, IL-only binary L"EDLaunch.exe" cannot be loaded 0009:err:module:LdrInitializeThunk Importing dlls for 

then dotnet40 has not installed correctly. Check that wine-mono was successfully removed by running:

wine64 uninstaller

If it is listed, you can manually remove it and try installing dotnet40 again.

After clicking Launch on the launcher, the game never starts

Make sure the driver for your graphics card is installed correctly and can run Vulkan. You can check with vulkaninfo or vulkan-cube.

If vulkaninfo returns:

failed with VK_ERROR_INITIALIZATION_FAILED

Then vulkan is not working correctly. If you are using Radeon on Ubuntu, please see here for details on how to resolve the issue.

When trying to login it says there was no or empty response

Check your internet connection. If you are using IPv6, check that it is working correctly.

I have also ran in to this issue when one of the addresses being returned by a DNS lookup was not reachable. A workaround was to add my own DNS entry to /etc/hosts.

Shader issues with Horizons

Make sure your graphics driver meets Proton's minimum requirements: https://github.com/ValveSoftware/Proton/wiki/Requirements#graphics-drivers-requirements---general

Also note that nvidia-driver-410 and xorg-x11-server 1.19 combinations have a compatibility issue.

Game launches but I get an error "Make sure you start the game from the launcher so that you are up to date"

Note: As of Proton 3.16-8 Beta ED, vcrun2015 is no longer required; therefore this error should no longer occur. If you are running an older version, then it should be noted vcrun2015 was recently added to the ED Steam Depot and so it is now recommended to delete your existing prefix (example: rm -rf ~/.steam/steam/steamapps/compatdata/359320) if this is the first time running the game with a ED custom build

This error occurs when vcrun2015 is not installed. If you have ran ./fixED.sh then you may have to install it manually.

If using winetricks; make sure you set the WINEPREFIX environment variable as described here.

For example:

WINEPREFIX=~/.steam/steam/steamapps/compatdata/359320/pfx winetricks vcrun2015 win7

If the install of vcrun fails with an error like "Another version is installed", then it may be best to start clean and try again (by deleting your prefix, example: rm -rf ~/.steam/steam/steamapps/compatdata/359320).

Can't change display settings to Fullscreen

You can manually change your configuration by editing the file located at: <steam_home>/steamapps/compatdata/359320/pfx/drive_c/users/steamuser/Local Settings/Application Data/Frontier Developments/Elite Dangerous/Options/Graphics/DisplaySettings.xml

Change the value of the 'FullScreen' setting to '1'

Unable to initialise network. Please check your connection

If your netLog (which can be found under .../steamapps/common/Elite Dangerous/Products/elite-dangerous-64/Logs) has an entry:

IPv4 is enabled, but address not found

then this is likely caused by a missing hostname entry in your /etc/hosts file. Add a new entry to /etc/hosts with your hostname resolving to a localhost address. For example:

127.0.1.1 mydesktop

Internal error creating window

A window pops up saying "Internal error creating window: Add value to collection of type 'System.Windows.Controls.UIElementCollection' threw an exception."

You need to set your Wine prefix to use Windows 7. You can do this via:

winetricks win7

or

winecfg and then change it in the 'Windows Version' drop down.

In both cases you will need to set the WINEPREFIX environment variable first (via an export for example). The value of WINEPREFIX will be <steam_install_loc>/steamapps/compatdata/359320/pfx where the steam_install_loc is the location you installed Elite Dangerous (as listed under Steam -> Settings -> Downloads -> STEAM LIBRARY FOLDERS).

Keyboard does not work at all

Sometimes, after the game is loaded and the main menu is shown, the mouse will work properly but no keystroke will be recognized. Ctrl+Alt+F might enable showing the framerate. Trying to enter Options -> Controls with mouse will not work.

This kind of input failure is usually worked around by simply re-launching the game. Usually 2-3 attempts are enough.

Note that if your keyboard works for navigation (WS keys) in the menu but you have other problems with bindings, this is not the same issue and will likely not be solved by mere reloading.

Game is crashing a lot, or getting stuck in black screen after launcher

By default, Proton uses esync. esync with Elite Dangerous uses a lot of file descriptors, and running out of file descriptors can result in a game crash (as noted here).

See the esync readme for additional details (including how to increase your limit):
https://github.com/zfigura/wine/blob/esync/README.esync

Custom version not showing in Steam

The compatibilitytools.d dir needs to be created under the root of your steam install. This can be found by running ps ux | grep steam.sh whilst steam is running. Further troubleshooting can be performed by referring to the compat_log.txt found under the <steamroot>/steam/logs dir.

Alternatives