Windows Subsystem for Linux

Use WSL 2

Please use WSL 2 - Salvus does not work with WSL 1. WSL 2 will be installed by default if you don't do anything special.

With Windows 10 and 11, you can run code in a Linux environment by using the Microsoft developed Windows Subsystem for Linux 2 (WSL2). Salvus works well in it, also on Nvidia GPUs on Windows 11.


On Windows 11 it can be installed via the Microsoft store.

Alternatively, follow these instructions. Please note that you require admin rights on the Windows machine to enable the Linux subsystem.

If you have no specific reason to select another one we recommend to choose Ubuntu 20.04 LTS from the Microsoft store page as Linux distribution. But other Linux distributions also work.


Linux Binaries

The WSL enables the direct execution of Linux binaries. So make sure to always install the Linux version of everything (Miniconda, Python, Salvus, ... ) into it.

There is litle overhead and you are ready to use the terminal as if it was a Linux system.

The Windows file system is mounted as if it was an external hard drive under the Linux subsystem. E.g., you can find the Desktop directory here:


Vice versa, newer WSL installation should just show the Linux file system in the the Windows Explorer. Alternatively you can access it via


You can now continue with installing Salvus.

Nvidia GPUs

Salvus greatly benefits from running on Nvidia GPUs which is supported in the WSL as described here:

We recommend to use Windows 11 for this which greatly eases the process.


SSL Connections

TLS/SSL connections (e.g. connections over HTTPS) require a few things to work correctly. A simple way to test if everything works is to run for example


in the WSL which should finish without error. In case you encounter SSH connection problems there are a few likely causes:

Anti-Virus Software

Anti-Virus software running on the Windows host has been reported to block SSL connections in the WSL.

Executing the following command in the windows powerwhell will print all active anti virus programs:

powershell.exe "Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct" | grep displayName

Try disabling them temporarily and see if that helps.

Proxy Settings

This can result in very similar errors. Please see this page for details.