-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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.
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.
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.
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.
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.
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:
- Start with a clean prefix by deleting the current (
rm -rf $WINEPREFIX
) - Run ED from Steam once (this will create the prefix and install a number of components before exiting quietly)
- Run
wine64 uninstaller
and remove 'Wine Mono Windows Support' - Run
wine64 winecfg
and set 'Windows Version' to 'Windows XP' - Install dotnet40 by running
wine64 dotNetFx40_Full_x86_x64.exe
from the path where dotNetFx40_Full_x86_x64.exe was downloaded - 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.
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):
Or select this option to use the custom build only for Elite Dangerous:
Please note that you use this release at your own risk with no guarantees. Please see the LICENSE for full terms and conditions.
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.
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.
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.
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
.
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
).
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'
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
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).
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.
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
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.