How To: Zwift on Debian Linux

How to Zwift on Debian 11

Here’s a guide on how to make Zwift run on Debian 11, together with all the settings.

Using:

Wine 7.18 (Staging)

sudo dpkg --add-architecture i386 

Add winehq repo and run:

sudo apt install wine-staging-amd64 wine-staging-i386 wine-staging winehq-staging

or

sudo apt install --install-recommends winehq-staging

Add Lutris repo and install latest: Lutris 0.5.11

Install Zwift and Wine dependencies using Lutris script, but do not launch Zwift: Zwift - Lutris

Note: If you’re having issues installing, you could install Zwift on a windows PC and copy all the files into the wineprefix. (I did)

Settings:

  • Runner options: Use system wintricks (20220411-next)

  • Download the latest winetricks script (master=“latest version”) from Github:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
  • Mark the winetricks script (we’ve just downloaded) as executable. See:
    File Permissions
chmod +x winetricks
  • Move the winetricks script to a location which will be in the standard user PATH. See:
    Internal Variables
sudo mv winetricks /usr/bin
  • Runner options: Turn on Windowed (virtual desktop) and set resolution.

    • This will allow ALT + TAB to other windows while in game without it minimizing when used with Borderless gaming.
    • System options: Disable Lutris Runtime
  • Run:

WINEPREFIX=/home/tommy/Games/zwift winetricks -q -v d3dcompiler_47 dotnet20 dotnet40 dotnet48

Includes d3dcompiler_47 (workaround crash issue)

  • Download WebView2 Evergreen Standalone installer: WebView2 - Microsoft Edge Developer
  • In Lutris, Run EXE inside Wine prefix and install the downloaded MicrosoftEdgeWebView2RuntimeInstallerX64.exe

Next up:

  • Duplicate the Zwift game in Lutris and edit it
  • Change the name to Zwift Launcher
  • Edit the Executable to the path of ZwiftLauncher.exe (~/Games/zwift/drive_c/Program Files (x86)/Zwift/ZwiftLauncher.exe)
  • Remove the arguments
  • Save

Credits to this Reddit post

Added bonus: Borderless Gaming

  • Download BorderlessGaming9.5.6_admin_setup.exe to wineprefix

  • In Lutris, Run EXE inside Wine prefix and install the downloaded BorderlessGaming9.5.6_admin_setup.exe

  • In Lutris, click on the + sign in top left corner and fill in:

    • Name: Borderless Gaming
    • Runner: Wine
    • Game options:
    • Executable: ~/Games/zwift/drive_c/Program Files (x86)/Borderless Gaming/BorderlessGaming.exe
    • Working Directory: ~/Games/zwift/drive_c/Program Files (x86)/Borderless Gaming
    • Wine prefix: ~/Games/zwift

Download this image and add it in the Game info tab.

Running Zwift

  1. Open Lutris

  2. Open Zwift Launcher

  3. Open Zwift

  4. Open Bordeless Gaming and add Zwift to favorites

  5. Open Zwift Companion app for Bluetooth

  • (Only needed for heart rate monitor if you are running a Kickr V5 or V6 with Direct Connect)

  1. Ride on

Tested (Oct 9, 2022) with a 100 km + ride without fault, and runs way better with less load than on Windows 10.

Enjoy! :sunglasses:

That’s cool. Do updates work once it’s going?

2 Likes

Remains to be seen. Should work.

If not, update/install in windows, copy over the files.

UPDATE
Updating to 1.30.0 went smooth. All working nicely. :+1:

1 Like

Psst. this might pique your interest. GitHub - netbrain/zwift: Easily zwift on linux.

1 Like

Hi! Thanks for the detailed instructions! I’m trying to have it work, but I get error 0xc0000005 when installing MicrosoftEdgeWebView2RuntimeInstallerX64.exe
Neither ZwiftLauncher nor Zwift would work (just start for a few seconds then close (exit code 13568 for ZwiftLauncher and exit code 65280 for Zwift)
Any idea?

Tried the docker image on Fedora36 but did not succeed. It exited with the following lones:

+ echo 'Waiting for zwift to start ...'
+ sleep 1
0184:err:ole:CoGetContextToken apartment not initialised
+ pgrep ZwiftApp.exe
+ echo 'Killing uneccesary applications'
+ pkill ZwiftLauncher
Killing uneccesary applications
+ pkill MicrosoftEdgeUp
+ pkill ZwiftWindowsCra

With a little modification these instructions also worked for Fedora36!

Great!

 $ uname -a
Linux tux 6.0.7-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 3 17:09:02 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux


]$ rpm -q wine lutris winetricks
wine-7.22-2.fc36.x86_64
wine-7.22-2.fc36.i686
lutris-0.5.11-1.fc36.x86_64
winetricks-20220411-1.fc36.noarch

I see no errors in that output. Have you followed the instructions at GitHub?

Doesn’t work here.

Started initial process 27358 from /home/rmorelli/.local/share/lutris/runtime/winetricks/winetricks --unattended dotnet20 win10
Start monitoring process.
------------------------------------------------------
warning: You are running winetricks-20220411-next, latest upstream is winetricks-20230212!
------------------------------------------------------
------------------------------------------------------
warning: You should update using your distribution's package manager, --self-update, or manually.
------------------------------------------------------
Executing mkdir -p /home/rmorelli/Games
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
------------------------------------------------------
WINEPREFIX INFO:
Drive C: totale 28
drwxr-xr-x  7 rmorelli rmorelli 4096 19 feb 16.44 .
drwxr-xr-x  4 rmorelli rmorelli 4096 19 feb 16.45 ..
drwxr-xr-x  3 rmorelli rmorelli 4096 19 feb 16.39 ProgramData
drwxr-xr-x  6 rmorelli rmorelli 4096 19 feb 16.39 Program Files
drwxr-xr-x  7 rmorelli rmorelli 4096 19 feb 16.42 Program Files (x86)
drwxr-xr-x  4 rmorelli rmorelli 4096 19 feb 16.39 users
drwxr-xr-x 23 rmorelli rmorelli 4096 19 feb 16.44 windows

Registry info:
/home/rmorelli/Games/zwift/system.reg:#arch=win64
/home/rmorelli/Games/zwift/user.reg:#arch=win64
/home/rmorelli/Games/zwift/userdef.reg:#arch=win64
------------------------------------------------------
------------------------------------------------------
warning: /home/rmorelli/.local/share/lutris/runners/wine/lutris-7.2-2-x86_64/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message "" 
------------------------------------------------------
Monitored process exited.
Initial process has exited (return code: 256)
All processes have quit
Exit with return code 256
warning: Note: command /home/rmorelli/.local/share/lutris/runners/wine/lutris-7.2-2-x86_64/bin/wine dotNetFx40_Full_x86_x64.exe /q /c:install.exe /q returned status 1. Aborting.

for this error you need do follow this instructions
You need a WINEPREFIX for 32 bit.

$ WINEARCH=win32 WINEPREFIX=~/.wine/32  winecfg 

After that,

$ env WINEPREFIX=~/.wine/32 bash winetricks dotnet20

From linux mint forum
viewtopic.php?t=146587