Difference between revisions of "Installing EVE on Linux"

From EVE University Wiki
Jump to: navigation, search
m (the symlink in example is no .sh just corrected to have the launcher work. also it should not be "edit" but "gedit" maybe?)
Line 99: Line 99:
 
#Install generic fonts
 
#Install generic fonts
 
#:{{code|sudo apt-get install libfontconfig1}}
 
#:{{code|sudo apt-get install libfontconfig1}}
 +
 +
<br>
 +
 +
===libxcb dependencies===
 +
Evelauncher comes with its own libxcb. In some instances it fails to find xcb in its launch directory as well as to find libxcb installed in the system. This is indicated by message in console:<br>
 +
''This application failed to start because it could not find or load the Qt platform plugin "xcb" in ""''
 +
 +
To solve this problem just delete all files located in the directory of eve launcher, that have "libxcb" as part of their names.
  
 
<br>
 
<br>

Revision as of 05:43, 12 May 2021

Much of this guide is adapted from the official forum post by CCP Snorlax, which can be found here. Questions about the information found in this article are best asked on the official EVE forums.

While Linux is not officially supported by CCP, a side project by CCP Snorlax has yielded a native Linux application that downloads a prebundled version of Wine (also built by CCP Snorlax) which allows Linux to run the EVE launcher more easily. The launcher requires a 64-bit installation of Linux, but should work with most distributions.

Alternatively, for a more visual installation and cleaner management of multiple WINEPATHs, you can use Lutris.

Basic Setup

Tux, the mascot

(Terminal commands are displayed in code blocks)

  1. Download the launcher binaries either manually (found here) or via terminal command:
    Note: These can be put wherever the user prefers, but the home directory ~/ is recommended.
    wget https://binaries.eveonline.com/evelauncher-1747682.tar.gz
    If this file no longer exists or is outdated, check for an updated link in CCP Snorlax's forum post which should be stickied here.
  2. Extract the compressed files (.tar.gz)
    tar -xvf evelauncher-1747682.tar.gz
  3. Move to the newly-extracted folder
    cd evelauncher
  4. Set the script as being executable
    chmod u+x evelauncher.sh
  5. The launcher can now be run via terminal command.
    ./evelauncher.sh
    This is a good point to check if the launcher works and whether any errors are output to the terminal before continuing to any more advanced steps.

Custom Launcher Shortcut

(The following additional steps are not strictly necessary, but can make running the launcher more convenient through the use of a custom launcher shortcut. See the Troubleshooting section below if you encounter any issues.)

Launcher icon
  1. Create a symbolic link (symlink) to the script in the user binaries folder
    sudo ln -s /Path/To/evelauncher.sh /usr/bin/evelauncher
  2. And make it executable
    sudo chmod u+x /usr/bin/evelauncher
  3. Download the icon file
    wget https://wiki.eveuniversity.org/images/a/af/Evelauncher.png
  4. Move the icon file to the correct directory
    sudo mv Evelauncher.png /usr/share/pixmaps/
  5. Create the launcher file with your preferred editor
    sudo edit /usr/share/applications/eve.desktop
  6. Insert the following text and then save it:
    [Desktop Entry]
    Name=EVE Online
    Comment=EVE Online by CCP Games
    Exec=/usr/bin/evelauncher
    Icon=Evelauncher
    Terminal=false
    Type=Application
    Categories=Game;
  7. Run the game through the newly-created launcher shortcut!

Using a Custom Wine Version

The copy of wine bundled with the launcher is quite outdated, but thankfully you can use your distribution's own wine runtime instead which gives access to things like DirectX11 support.

Note: Make sure to untick 'Run clients with DX9' if you want to use DX11.
  1. Open the launcher settings with the small "E" symbol in the top right, tick "Use custom Wine", and in the box below it enter the path of your wine executable, eg.
    /usr/bin/wine
  2. Remove EVE's existing wine and wineenv folder
    rm -Rd ~/.eve/wineenv ~/.eve/wine
  3. Reopen the launcher and start the game as normal.
  4. EVE's wine prefix should rebuild itself with the custom version.

Lutris

Lutris is a gaming platform for Linux. It offers Wine builds that are pre-configured for specific games, and allows for a graphical installation of various games and applications. Those that are unable to use the methods above, or are weary on the process, may find this solution more viable.

Install Lutris via your packet manager, and then head to the EVE Online page on the Lutris website to pick an install script. As of May 2020, there are four main install scripts: a DXVK variant, a non-DXVK (OpenGL-based) one, one with Steam, and a Chinese distribution. The DXVK version offers generally better performance.

After picking your script from the Lutris website and following the installation procedure, an EVE Online icon will show up in your Lutris client UI. From this point, you can click on "EVE Online" to start the EVE Launcher. You may configure options for the game, runner or system. For troubleshooting, make sure Run Client with Logging is enabled in the EVE Launcher options.

Troubleshooting

Incompatible OpenSSL library

The EVE launcher requires the 1.0.x version of the openssl library in order to function, however, some newer versions of Linux distributions and those that use rolling releases include the 1.1.x version by default (this will be evident by the launcher simply not appearing at all when the script is run), so some extra steps to install the older compatibility library may be necesssary.

Note: The following example is for Ubuntu - paths and package names will likely be different on other distributions.
  1. Download the older library from your distribution's repos
    sudo apt-get install libssl1.0.0
  2. Add symbolic links to the libraries in the launcher's folder
    sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /Path/To/evelauncher/libssl.so
    sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /Path/To/evelauncher/libcrypto.so


This should correct the issue temporarily, but the symlinks will be removed when the launcher is updated. A solution to this is to make your own script which checks for the existence of the symlinks, remakes them if they are missing and then triggers the launcher's script.

  1. Create the wrapper script in your preferred editor
Note: The wrapper script cannot be located in the launcher's own folder, or it will be deleted when the launcher updates.
  1. $EDITOR /Path/To/Wrapper/evewrapper.sh
  2. Insert the following text and then save it:
    dirname=/Path/To/evelauncher/

    if [ ! -e $dirname/libssl.so.1.0.0 ]; then
    ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 $dirname/libssl.so
    fi
    if [ ! -e $dirname/libcrypto.so.1.0.0 ]; then
    ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 $dirname/libcrypto.so
    fi
    exec $dirname/evelauncher.sh
  3. If you made a custom launcher file as above, you will need to change the path of the symlink in step 1
    sudo ln -s /Path/To/Wrapper/evewrapper.sh /usr/bin/evelauncher


Qt Dependencies

In some rare instances on Ubuntu, you may be lacking the required Qt dependences for the launcher, This will manifest as some QT files not be located and the launcher window opening but not displaying anything.
Instructions for this install are taken from here: https://wiki.qt.io/Install_Qt_5_on_Ubuntu

  1. Download the installer
    Note: These can be put wherever the user prefers, but the home directory ~/ is recommended.
    wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run
  2. Adjust permissions
    chmod +x qt-opensource-linux-x64-5.7.0.run
  3. Install QT
    ./qt-opensource-linux-x64-5.7.0.run
  4. Install g++
    sudo apt-get install build-essential
  5. Install generic fonts
    sudo apt-get install libfontconfig1


libxcb dependencies

Evelauncher comes with its own libxcb. In some instances it fails to find xcb in its launch directory as well as to find libxcb installed in the system. This is indicated by message in console:
This application failed to start because it could not find or load the Qt platform plugin "xcb" in ""

To solve this problem just delete all files located in the directory of eve launcher, that have "libxcb" as part of their names.


Launcher Shortcut Issues

Your EVE launcher shortcut may fail with the following message:

/bin/sh: warning: shell level (1000) too high, resetting to 1

This, and other errors, are likely due to the fact that the 'dirname' and 'pwd' commands will return the location of the soft link, not of the shell script itself. Hence, we need to use readlink to follow every symlink in the path. Make the following changes to /path/to/evelauncher/evelauncher.sh:

#!/bin/sh
appname="evelauncher"

dirname=$(dirname "$(readlink -f "$BASH_SOURCE")")
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname="$PWD/$dirname"
fi

LD_LIBRARY_PATH="$dirname:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
export QTDIR=$dirname
export QT_PLUGIN_PATH=$dirname/plugins
"$dirname/$appname" "$@"

Note: The first change is necessary only if you choose to give your soft link a different name.


X Server

If Eve Online fails to launch, try running it from the terminal. Check for the following error message:

user@localhost > ./evelauncher.sh
...
Invalid MIT-MAGIC-COOKIE-1

As explained here, an X program needs (1) the address of the display (typically ":0") and (2) the password for the display. The second requirement is known as the "Magic Cookie". One workaround to sidestep this access problem is to use xhost, which is an X server access control program. Make the following changes to /path/to/evelauncher/evelauncher.sh:

#!/bin/sh
appname="evelauncher"

dirname=$(dirname "$(readlink -f "$BASH_SOURCE")")
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname="$PWD/$dirname"
fi

xhost +local:

LD_LIBRARY_PATH="$dirname:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
export QTDIR=$dirname
export QT_PLUGIN_PATH=$dirname/plugins
"$dirname/$appname" "$@"

Note: xhost here is granting temporary access to any local application running as the current user. It is not allowing any kind of remote access.