Virtual reality - ArchWiki

Jump to content

# Virtual reality

From ArchWiki

This article or section needs expansion.

Reason: Rewrite in progress: many things in this article are outdated (Discuss in Talk:Virtual reality)

Virtual reality is the process of simulating an environment for a user, using a variety of peripherals, head mounted displays or CAVEs, and trackers. Instead of showing you a static viewpoint from a screen, it renders your viewpoint relative to where you are standing, on a head-attached or projected surface, to give an effect identical to your own eyes.

A number of peripherals have been released or are about to be released recently which have brought affordable, extremely immersive virtual reality to everyone. Most of these peripherals have full or partial Linux support, and many have AUR packages.

## Hardware compatibility

The following is a non-exhaustive list of currently supported VR/XR devices, and what software supports them.

### PCVR HMDs

Device | SteamVR | Monado
--- | --- | ---
Valve Index | Yes | Yes
HTC Vive/Vive Pro | Yes | Yes
HTC Vive Pro Eye | Yes (eye tracking WIP) | Yes (eye tracking WIP)
HTC Vive Pro 2 | Yes (custom driver and patches needed) | Yes (AMD GPUs only, 2 kernel patches required: 1 2)
Bigscreen Beyond | Yes (AMD GPUs only, kernel patch required) | Yes (AMD GPUs only, kernel patch required)
Pimax HMDs | No (planned) | WIP (might work with kernel patch)
WMR | Yes (common HMDs, Monado SteamVR plugin) | Yes (6DoF controllers experimental)
Oculus Rift CV1 | Yes (OpenHMD recommended) | Yes (OpenHMD recommended)
Oculus Rift S | Yes (Monado SteamVR plugin) | Yes (6DoF controllers experimental)
Varjo HMDs | Yes*see notes | Untested

Most Varjo HMDs will work out of the box. However on XR/VR series HMDs may not track correctly if you are not using the lighthouse tracking mode. On XR series headsets, they will not have all cameras active. This is because a custom driver is needed for these to work correctly This also includes LIDAR if your headset supports it. eye tracking WIP.

In addition, there's an experimental PC-PC stream client for WiVRn that might work with the above HMDs that are supported by Monado.

### Standalone HMDs

Entries marked with "Yes" but without store links can be sideloaded from their corresponding project websites.

Device | WiVRn | SteamVR through ALVR | SteamVR through Steam Link
--- | --- | --- | ---
Meta Quest 2/3/3S/Pro | Yes (Meta Quest Store) | Yes (Meta Quest Store) | Yes (Meta Quest Store)
Meta Quest 1 | Yes | Yes (Sidequest) | No
Pico 4/4 Ultra | Yes | Yes | Yes (Pico Store)
Pico Neo 3 | Yes | Yes | Yes (Pico Store)
HTC Vive Focus 3 | Yes | Yes | Yes (Viveport)
HTC Vive XR Elite | Yes | Yes | Yes (Viveport)
Lynx R1 | Yes | Yes | No
Apple Vision Pro | No | Yes (Apple App Store) | No
Samsung Galaxy XR | Yes | No (partially working) | No

### Tracking devices

Device | SteamVR | Monado | WiVRn
--- | --- | --- | ---
Vive/Tundra trackers | Yes (native or spacecal) | Yes (native or motoc) | Yes (motoc)
SlimeVR trackers | Yes | Yes | Yes
Project Babble | Yes (oscavmgr) | Yes (oscavmgr) | Yes (oscavmgr)
Eyetrack VR | Yes (oscavmgr) | Yes (oscavmgr) | Yes (oscavmgr)
Mercury hand tracking | No | Yes (survive driver only) | No
Lucid VR gloves | ? | Yes (survive driver only) | No
Kinect based FBT | Yes | Yes (experimental) | WIP
Standable FBT | possible* see note | No | No

Note on Standable FBT: Depending on your SteamVR setup.It may require modifications to SteamVR and/or Proton to allow the proper communication.

## Supported runtimes and toolkits

### OpenXR

OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is maintained by the Khronos Group and adopted by most of the industry. Most runtimes support OpenXR.

### Monado

Monado is an open source OpenXR runtime developed by Collabora. It is under heavy development and aims to provide a common runtime supporting most headsets. Current progress can be found here: https://monado.freedesktop.org/

Install using monadoAUR.

#### Envision

Envision is a graphical app that acts as an orchestrator to get a full Monado setup up and running with a few clicks. Envision attempts to construct a working runtime with both a native OpenXR and an OpenVR API, provided by XRizer or OpenComposite, for client applications to utilize.

#### WiVRn

WiVRn is a runtime based on Monado, capable of streaming to standalone headsets. It currently supports most available Android based HMDs, and also has experimental support for PC to PC streaming.

Upstream recommends to install wivrn-serverAUR, xrizerAUR or xrizer-gitAUR (for compatibility with Steam games and OpenVR applications), and optionally wivrn-dashboardAUR for the dashboard. It is also available via Flatpak. You can install the Android client from your devices' store, download the prebuilt Android client from the GitHub releases to sideload, or compile it yourself according to the build documentation.

### OpenVR / SteamVR

OpenVR is an effort by Valve to create an open API for VR development. Unfortunately, while the API is open, the actual default implementation (SteamVR) is not. SteamVR also provides an OpenXR runtime.

#### Setting up SteamVR

Install Vulkan and Steam. If using NVIDIA drivers, you may need to set the VK_DRIVER_FILES environment variable. Required dependencies for 32-bit packages are: lib32-gtk2AUR, lib32-libva, lib32-libvdpau.

From Steam, install SteamVR from the tools menu.

#### ALVR

ALVR is a SteamVR driver which allows streaming to standalone headsets like the Meta/Oculus Quest. It is available in the alvrAUR package.

#### Steam Link

Valve's closed-source Steam Link App allows streaming games from a PC running SteamVR to supported headsets without relying on third-party software. It supports both a VR mode for proper VR games and a flat-screen mode for desktop games. If the App finds your PC but fails to connect to SteamVR, you may have to open some ports in your firewall as described here.

### OpenHMD

OpenHMD is currently not maintained, and should be treated as deprecated for all but older HMD's. It aimed to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. The aim was to implement support for as many devices as possible in a portable, cross-platform package.

OpenHMD only supports older devices such as Oculus Rift, HTC Vive, Sony PSVR, Deepoon E2 and others, so it is not needed for newer devices, and should not be considered. Most of the HMD driver efforts are now going towards Monado. There's a fork focusing on Oculus Rift CV1 tracking, and it's still recommended for that specific headset; use Monado otherwise.

#### SteamVR support

It is possible to use OpenHMD with SteamVR. To do that, you need to install steamvr-openhmd-gitAUR and create a symlink that points to the OpenHMD SteamVR driver inside your SteamVR drivers directory, for example:

    $ ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd

## Other software

### vr-video-player

A simple tool to view any X11 window inside your VR headset. vr-video-player supports stereoscopic/180°/360° videos/games. vr-video-player also lets you view regular videos/games/windows inside VR as a flat screen.

Available as vr-video-playerAUR.

#### xr-video-player

A fork of vr-video-player for OpenXR and wayland that uses pipewire to capture a window or screen/s.

Available as xr-video-player-gitAUR.

### SideQuest

SideQuest can be used to install APK files to your Oculus Quest. It is available as sidequest-binAUR.

See https://sidequestvr.com/setup-howto for installation steps:

1. Create an Oculus developer account.
2. Turn on Quest in developer mode (e.g., with your phone) and connect your Quest via cable.
3. Press Allow USB debugging inside Quest.

See the SideQuest website for more information.

### WayVR

WayVR is a lightweight OpenXR/OpenVR overlay that can mirror and control X11/Wayland desktops. It can also act as a Wayland compositor.

Available as wayvrAUR and wayvr-gitAUR.

### Stardust XR

Stardust XR (GitHub) is a modular XR display server. It can act as an overlay (and can run side by side with wlx-overlay-s) or as a standalone application. It can provide a Wayland compositor using stardust-xr-flatlandAUR, an application launcher with stardust-xr-protostarAUR, skyboxes/home environments with stardust-xr-atmosphereAUR and several other features using other packages. Install the server with stardust-xr-serverAUR; you can also install stardust-xr-telescopeAUR for a premade startup script.

### Standable

Standable: Full Body Estimation is a paid application specifically to help with full body tracking and estimation. In some areas, Standable can be quite useful mostly in the terms of tracker calibration. Standable is well known for not being easy to work with on Linux. This is because of how SteamVR handles loopback/virtual devices on Linux. Multiple things have to be modified for Standdable work correctly. Namely the correct SteamVR directories have to be told to Standable & Proton . It is also notable that Standable only works on SteamVR due to the fact that it is a SteamVR plugin and requires SteamDRM.

## Troubleshooting

### SteamVR support

#### Configuration or startup errors

SteamVR/OpenVR creates a directory `~/.openvr` that can get misconfigured over the various versions. Delete that directory and completely uninstall/reinstall SteamVR.

It can also apparently have trouble accessing different HMD's under some configurations. Please refer to the HMD compatibilty chart to see if your headset is compatible.

### Games/Programs

Most XR applications run without major issues through Proton or Proton GE. Proton-GE-RTSP, which provides targeted fixes for VRChat and other social VR platforms, can be installed using protonup-qtAUR or protonup-rsAUR. If a game has issues running through Proton, please refer to the game's Linux/Wine compatibility information, ProtonDB and documentation for the XR runtimes and compatibility layers in use for possible fixes.

### Other Issues

Because of the nature of VR on Linux it is very common for a wide variety of issues to pop up, and because of the sheer amount of possible issues, it is not possible to write out everything here. Instead, please refer to either the software's respective documentation, the Linux VR Adventures Wiki, or the Linux VR Adventures Discord for help on any possible issue you are facing.

Category:

- Graphics

Hidden category:

- Pages or sections flagged with Template:Expansion

Virtual reality
Add topic