WiVRn linux VR quest

Tutorial – VR on Linux with WiVRn

WiVRn is a tool that lets you connect a VR headset to a Linux computer without using wires. It’s similar to ALVR but uses OpenXR for interaction with VR applications, instead of relying on Steam’s buggy VR alternative.

What You Need

  • Linux PC (Ubuntu, Mint, Fedora, Arch, etc.)
  • Standalone VR headset: Meta Quest 1/2/3/3S/Pro, Pico Neo 4, HTC Vive Focus 3 or XR Elite, or other Android-based headsets
  • Good network: 5 GHz Wi-Fi strongly recommended
  • Alternative: USB cable + ADB for wired mode
  • Optional: Steam installed for SteamVR titles
  • Optional: WLX-Overlay-s, an overlay solution similar to steamvr’s that works with WiVRn

Step 1: Install WiVRn on Your PC

Option A: Flatpak (Recommended)

  1. Ensure Flatpak is installed on your distro.
  2. Add Flathub & install: flatpak install flathub io.github.wivrn.wivrn
  3. Launch the dashboard: flatpak run io.github.wivrn.wivrn

Alternatively you can download it here.

Option B: Native Packages

  • Arch (AUR): yay -S wivrn-dashboard wivrn-server
  • Fedora: sudo dnf install wivrn
  • Gentoo (Guru overlay): layman -a guru emerge --ask wivrn-dashboard

Step 2: Install the Headset Client

  1. Open the WiVRn dashboard on your PC.
  2. Follow the setup wizard:
    • Quest 2/3/Pro: installs directly from the Meta Store.
    • Other headsets: download or sideload the APK as guided.

Step 3: Prepare Your System

  1. Enable Avahi (network discovery): sudo systemctl enable --now avahi-daemon
  2. Open firewall ports (if applicable):
    • UDP 5353 (Avahi)
    • UDP & TCP 9757 (WiVRn)

Step 4: Connect and Play

  1. Start the server on your PC: launch “WiVRn Server” or run the dashboard.
  2. Launch the client on your headset: find “WiVRn” in your app library (under “Unknown Sources” if sideloaded).
  3. Pair: select your PC from the list. Wait for “Connection ready. Start a VR application on your computer.”
  4. Run your VR app on the PC.

SteamVR / OpenVR Games

WiVRn uses OpenComposite to bridge OpenVR titles into OpenXR.

  • If you run Steam as a Flatpak, grant it access to WiVRn & OpenXR: flatpak override --user \ --filesystem=xdg-run/wivrn:ro \ --filesystem=xdg-data/flatpak/app/io.github.wivrn.wivrn:ro \ --filesystem=xdg-config/openxr:ro \ --filesystem=xdg-config/openvr:ro \ com.valvesoftware.Steam
  • Link your OpenXR config into Steam’s sandbox: mkdir -p ~/.var/app/com.valvesoftware.Steam/.config/openxr ln -s ~/.config/openxr/1 ~/.var/app/com.valvesoftware.Steam/.config/openxr/1
  • Copy the per-game launch options shown in the WiVRn dashboard into Steam’s Properties → Launch Options.

Audio & Mic Setup

  • Audio output: WiVRn exposes a virtual sink named “WiVRn.” In PulseAudio (pavucontrol) or PipeWire, route your game’s output to it.
  • Microphone: enable mic streaming in the headset’s WiVRn settings and grant permission. A virtual source “WiVRn (microphone)” will appear—select it in your system’s input settings.

Troubleshooting

Headset doesn’t discover PC

  • Verify both on same network/subnet.
  • Check systemctl status avahi-daemon.
  • Ensure UDP 5353 is open.

Connection fails

  • Confirm UDP & TCP 9757 are open.
  • Match WiVRn versions on PC and headset.

Wired USB mode

  1. Connect headset via USB.
  2. On PC, run: adb reverse tcp:9757 tcp:9757 adb shell am start -a android.intent.action.VIEW \ -d "wivrn+tcp://localhost" org.meumeu.wivrn
  3. If you installed a different package flavor (e.g. nightly), replace org.meumeu.wivrn with the correct identifier.

Enjoy your VR setup on Linux with WiVRn! Feel free to leave a comment if you hit any snags or reach out on their github!

2 Comments

  1. vertman

    I also write this comment for the public.

    I tried it on linux mint(based on 22.04) and ubuntu 24.04.
    ubuntu required to install flatpak. (which mint has default)

    but the flatpak itself was error too. after 10 reddit posts searching, found solution.
    something like sudo nano /etc/..apparmor.. and write some text.

    and specially, I have VEGA64, seems no support for H265 HW encode.
    no errors, but link disconnected. I checked the log of server program, found it was related with the codec.

    So finally I changed the quest app, to h264.
    and it keeps the link !

  2. rob

    Not sure why this seems to be the only useful source of WiRVn install and configuration.

    But I do feel obligated to comment as it was instrumental for me to get my own Gentoo linux WiVRn installed and use it with Meta Quest 2 with both Blender (VR scene viewer add-on, built in) and Godot.

    Now I have the PoC working with Godot I can start creating my own OpenXR games!

    Thanks for taking the time to put this page up !!

Leave a Reply

Your email address will not be published. Required fields are marked *