Got a beta invite for ESO and of course I wanted to get it running in Linux.

Little about my setup: I use PlayOnLinux on ArchLinux to manage my wine versions and to contain the bottles. I do not use it to do anything else honestly.

Here is how I got it running on my install…

I installed the game on a Windows machine at first, as wine has some bugs with the installer. There is a patch available to your wine version if you want to install it directly. This site might help you with that patch http://blog.internetz.me/2014/02/28/eso-install-linux-kali-also-works-ubuntudebian/

I then copied over the entire folder structure to my system to my revodrive I have mounted in /revodrive. (You can skip this. It is for me specifically.)

I told PlayOnLinux to download 1.7.11 x86 version of wine.

I then create the prefix to hold this bottle.


$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine winecfg

I then create a link from that bottle to my revodrive. (You can skip this. It is for me specifically.)


$ cd ~/home//.PlayOnLinux/wineprefix/ESO/drive_c/Program\ Files
$ ln -s /revodrive/Zenimax\ Online Zenimax\ Online

You can copy your entire “Zenimax Online” folder to the bottles Program Files directory.

I needed to install a few things.


$ sudo pacman -S lib32-libxml2

We need to install VC Runtimes 2010 into the bottle, you can have PlayOnLinux do this.
We need to install DirectX into the bottle, you can have the Installer do this.

I used PlayOnLinux to install the vcruntime2010 in the bottle.

We should now re-run the ESO installer to set some stuff up.


$ cd ~/Downloads
$ wget https://elderscrolls-a.akamaihd.net/products/BNA_Launcher/Install_ESO_Beta.exe
$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine ~/Downloads/Install_ESO_Beta.exe

Tell it to install in the default path, and it will complain that it already exists. This is fine, just continue. Once it’s done installing uncheck the VS2010 runtimes box, uncheck the Play Game box and keep the DirectX box checked. Click finish and let it install DirectX into the bottle for you.

Now we need to create a script file to run the game correctly, just like we did with Skyrim on Linux.


$ nano ~/.PlayOnLinux/wineprefix/ESO/drive_c/eso.cmd

Place this in the eso.cmd file


C:
CD \Program Files\Zenimax Online\The Elder Scrolls Online\game\client
eso.exe

Then we can run the game with (I put this in a shell script to make it easy.)


$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine cmd.exe /c C://eso.cmd

Run the command or script, you should get some errors and the game might run. Once you can close the game, do so. It should create a folder in the My Documents called “Elder Scrolls Online” under here we have two folders now “ESO_BUILD_BRANCH” and “live” go into the “live” folder and edit or create a file named “UserSettings.txt”. If it does not exist create it and add one line


SET GraphicsDriver.7 "OPENGL"

If the file does exist open it and find a similar line, change it to the above.

Load up the game and check your resolution settings. I set mine but it did not take effect. Exit the game, edit the “UserSettings.txt” file again and find the resolution lines, change to your preference.

You should be able to run the game now.

I had some trouble after logging in joining the game world, it seems like other games it does not like running through my VPN. I bypassed my VPN and used my direct WAN by allowing 198.20.200.0/24 to bypass the VPN.

If you get an error similar to the following you need to change to OPENGL mode as it’s trying DirectX mode. Also, the last error is resolved by running with the script above, or another way that changes to the working directory and running the eso.exe


fixme:d3d11:D3D11CreateDevice stub: adapter (nil), driver_type D3D_DRIVER_TYPE_HARDWARE, swrast (nil), flags 0x20, feature_levels 0x33fccc, levels 0x1, sdk_version 7, device 0x28e4dd8, feature_level 0x28e4ddc, context 0x33fcd0
fixme:win:EnumDisplayDevicesW ((null),0,0x33f6d8,0x00000000), stub!
fixme:d3d:swapchain_init The application requested more than one back buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if possible.
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub!
fixme:wbemprox:client_security_SetBlanket 0xf3c82318, 0x3934ed8, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0xf3c82318
fixme:win:EnumDisplayDevicesW ((null),0,0x33eec8,0x00000000), stub!
Launching Crash Handler:
EXE : ZoCrashReporter.exe
Args: en \\.\pipe\ZoCrashReport\eso\c06c67ad Local\ZoCrashReport.SyncEvent.eso.c06c67ad "C:/users/username/My Documents/Elder Scrolls Online/live/Errors/"
PID: 22
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
Registering
Requesting Dump
Waiting on Child Process
Saving the details of your error...

Some people might have issues with a certificate error. Here is what you do.


$ cd /usr/share/ca-certificates/
$ sudo mkdir custom
$ sudo nano /usr/share/ca-certificates/custom/Thawte_CS_CA_G2.crt

Paste this into the file


-----BEGIN CERTIFICATE-----
MIIEnDCCA4SgAwIBAgIQR5dNeHOlvKsNL7NwGS/OXjANBgkqhkiG9w0BAQUFADCB
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
MjA3MjM1OTU5WjBKMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
MSQwIgYDVQQDExtUaGF3dGUgQ29kZSBTaWduaW5nIENBIC0gRzIwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3i891W58l2n45sJPbONOpI9CC+ukkflwL
joP45npZ5qPFmKeZ0kT/AKalOQSK2imI6tui8xyZFSbCsfT84QxHqQkRBgogkrnH
oASMXJQZq1slLB1ifnANzmFs3SuCyc5dSF/3wr68QSMeTyld10+89MUq/GPmfCZO
mad5QZ4QSnp5ycaG94aV0ibOPBgq1nzOr82tu/eCLHAmN0XlD0cixgEovS6DXGqk
R8Hn0NhrgUY/IRf1B8VDWqZnLLh7YBG1g+71dApycUQ9WP7oGqs4w1nbf244fXbH
cmmYNpZX02Yc0lSRBC5UGbDcPbUiXobVKn4g313merFl/sUCTjEtAgMBAAGjggEc
MIIBGDASBgNVHRMBAf8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6
Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAy
BggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5j
b20wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCkGA1UdEQQiMCCkHjAc
MRowGAYDVQQDExFWZXJpU2lnbk1QS0ktMi0xMDAdBgNVHQ4EFgQU1A1lP3q9NMb+
R+dMDcC98t4Vq3EwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
KoZIhvcNAQEFBQADggEBAFb+U1zhx568p+1+U21qFEtRjEBegF+qpOgv7zjIBMnK
Ps/fOlhOsNS2Y8UpV/oCBZpFTWjbKhvUND2fAMNay5VJpW7hsMX8QU1BSm/Td8jX
OI3kGd4Y8x8VZYNtRQxT+QqaLqVdv28ygRiSGWpVAK1jHFIGflXZKWiuSnwYmnmI
ayMj2Cc4KimHdsr7x7ZiIx/telZM3ZwyW/U9DEYYlTsqI2iDZEHZAG0PGSQVaHK9
xXFnbqxM25DrUaUaYgfQvmoARzxyL+xPYT5zhc5aCre6wBwTdeMiOSjdbR0JRp1P
uuhAgZHGpM6UchsBzypuFWeVia59t7fN+Qo9dbZrPCU=
-----END CERTIFICATE-----

Save the file and exit. Then edit


$ sudo nano /etc/ca-certificates.conf

add to the bottom of the file


custom/Thawte_CS_CA_G2.crt

Then update the certificates store.


$ sudo update-ca-certificates