Quick Start

Getting Started with SteamVR on Linux #

Check your Video Drivers #

  • Nvidia users: use the version that’s officially listed as production. new feature/beta versions tend to have issues.
  • AMD users: use Mesa 24+ radeonsi, kernel 6.7.3+ if possible, stay away from amdpro.

Dual-GPU Systems #

  • AMD+AMD laptop or desktop: Amazing choice, you have nothing to do.
  • Desktop with iGPU and dGPU of different brands: Disable your iGPU in BIOS.
  • Laptop with Nvidia dGPU:
    • Option 1 (Ubuntu-derivatives): Try the official Ubuntu solution prime-select nvidia before launching Steam.
    • Option 2: Use optimus-manager-qt (AUR) and switch to Nvidia before launching Steam.
    • Option 3: Launch steam, steamvr and all games with prime-run (Launch options: prime-run %command%)
    • Extra tips:
      • Make ABSOLUTELY sure you don’t have weird stuff like amdvlk, including lib32 installed when you have Nvidia (check ls /usr/share/vulkan/icd.d)
      • Stick to the PRODUCTION branch of Nvidia drivers, newer ones may or may not work.

Installing Steam #

If the steam system package is available on your distro, we recommend starting with that.

Flatpak Steam is not recommended, as there are be capabilities that cannot be granted inside Flatpak, resulting in ghosting/stutter.

Launch Steam and install SteamVR. If it repeatedly nags you about sudo upon launch, setcap the vrcompositor manually:

sudo setcap CAP_SYS_NICE=eip ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher

(Default install location on most distros)

Setting up your HMD #

Valve Index, Vive, Vive Pro: These will work just by plugging in.

Vive Pro 2 will need the driver from here: VivePro2-Linux-Driver on GitHub

Bigscreen Beyond requires a patched kernel: Bigscreen Beyond Kernel Patch

If you use any of the above headsets with Nvidia , you may get a smoother experience with Monado + OpenComposite (use Envision for easy setup), albeit this combo does not work with all VR titles.

For many games, you might want experiment with “Legacy Reprojection” in the per-app video settings.

Quest 1/2/3/Pro, Pico 3/4, Vive Focus 3/XR Elite:

Your best bet is the latest ALVR release

Also check the ALVR wiki, especially the Linux Troubleshooting section.

Optional: Auto-Restart Script #

The startvr script here is meant to make launching SteamVR less tedious.

It can be used with both ALVR and wired headsets.

What it does:

  • Whitelist drivers for SpaceCal and ALVR so these will never get blocked
  • Apply bindings spam patch by Plyshka
  • Setcap the compositor after a SteamVR update
  • Start SteamVR and restart it for you in case of a crash
  • Prevent SteamVR processes from getting stuck and putting SteamVR in an inconsistent state

Extra steps when using with ALVR:

  • Under Installation tab, register the ALVR driver
  • Under Settings, Steamvr Launcher section, set Driver launch action to No action.

None: Cloud sync can get stuck and prevent SteamVR from launching. I recommend disabling cloud sync for SteamVR.

If you’ve installed Steam in a non-standard location, change the variable on the top of the script.

To use the script, simply launch it from a terminal. It will ask for sudo password in case your SteamVR has been freshly installed or updated and it needs to setcap the compositor.

ALVR-only: If you get a SteamVR error after this, Ctrl-C the script, open ALVR dashboard and launch SteamVR from there once. You then don’t have to open ALVR until there’s a SteamVR update.

If you need to restart SteamVR, simply exit it using your overlay and it’ll be restarted for you. To really exit SteamVR, first Ctrl-C the script.

Optional: Disable SteamVR dashboard #

Since the SteamVR dashboard has some major issues with high CPU usage, occasional freezing and sometimes going completely unresponsive.

Many choose to disable SteamVR dashboard and use something like WlxOverlay-S instead for desktop + game library access.

To do this, simply remove the execute permission from vrwebhelper:

chmod -x ~/.steam/steam/steamapps/common/SteamVR/bin/vrwebhelper/linux64/vrwebhelper

(To re-enable, run the same command but with +x instead of -x.)