mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2025-07-03 01:55:31 +02:00
Merge branch 'main' of https://gitlab.com/lvra/lvra.gitlab.io
This commit is contained in:
commit
e2707c859b
33 changed files with 966 additions and 167 deletions
|
@ -12,7 +12,7 @@ If you want an alternative to SteamVR, there are a few options you can use, depe
|
|||
|
||||
In either case, here are some related projects you might want to check out:
|
||||
|
||||
- [OpenComposite](/docs/fossvr/opencomposite/) allows you to run OpenVR games
|
||||
- [xrizer](/docs/fossvr/xrizer/) and [OpenComposite](/docs/fossvr/opencomposite/) allow you to run OpenVR games
|
||||
- [Envision](/docs/fossvr/envision/) is a GUI to setup and run either Monado or WiVRn
|
||||
- [Stardust XR](/docs/fossvr/stardust/) is an XR environment to run 2D and (eventually) 3D apps
|
||||
- [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) is an overlay to access your desktop from VR + playspace mover
|
||||
|
|
|
@ -16,16 +16,14 @@ Envision is a graphical app that acts as an orchestrator to get a full [Monado](
|
|||
Envision attempts to construct a working runtime with both a native OpenXR and an OpenVR API, provided by [OpenComposite](/docs/fossvr/opencomposite/), for client aplications to utilize. Please note the OpenVR implementation is incomplete and contains only what's necessary to run most games for compatibility. If you plan to implement software, utilize the OpenXR API, specification [here](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html).
|
||||
|
||||
{{% hint danger %}}
|
||||
**Warning**
|
||||
|
||||
Envision is still considered alpha-quality and highly experimental.
|
||||
We recommend **against** using Envision if your distro is NixOS. See [our NixOS page](/docs/distros/nixos/#envision) for more info.
|
||||
{{% /hint %}}
|
||||
|
||||
You can download the latest AppImage snapshot from [GitLab Pipelines](https://gitlab.com/gabmus/envision/-/pipelines?ref=main&status=success).
|
||||
|
||||
If you are on Arch, You can use the [AUR package](https://aur.archlinux.org/packages/envision-xr-git) `envision-xr-git`
|
||||
|
||||
## Getting Started
|
||||
## Getting started
|
||||
|
||||
Upon launching Envision, you will need to select a profile on the bottom of the left side bar.
|
||||
|
||||
|
@ -40,7 +38,57 @@ Profiles that are available by default:
|
|||
|
||||
Monado does not have a launcher app, and so after connecting your headset, you will likely see a solid color. This means you can now start your VR title.
|
||||
|
||||
You may want to launch [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) first and use it to access your desktop and other VR titles. You can even start it automatically alongside the Monado session: just enter `wlx-overlay-s --openxr` into the "Autostart" field of your Envision profile.
|
||||
You may want to launch [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) first and use it to access your desktop and other VR titles. You can even start it automatically alongside the Monado/WiVRn session, by enabling it in the [Plugins](#plugin-system) menu.
|
||||
|
||||
## Plugin system
|
||||
|
||||
The plugin system for Envision allows you to launch anything (usually OpenXR overlays) alongside the Monado/WiVRn session.
|
||||
|
||||
Open the Plugins window by clicking the kebab menu (three dots) at the top of the Envision window, and clicking "Plugins". Here, you can install overlays like [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) or [Stardust XR](/docs/fossvr/stardust/) (or a custom plugin — see below). After installing plugins and toggling them on, once you start a profile, the enabled plugins will start alongside it.
|
||||
|
||||
Plugins are the replacement for the "autostart" feature from older versions.
|
||||
|
||||
### Adding a custom plugin
|
||||
|
||||
The plugins included in the store are just a quick front-end to the latest release AppImages. For everything else, you can create a custom plugin that runs any given executable script or binary.
|
||||
|
||||
For example, if you installed WlxOverlay-S from AUR or built it from source, you can disable the original WlxOverlay-S plugin and create a custom plugin to run it:
|
||||
|
||||
1. Create a new file `~/.local/bin/wlx-but-newer` (creating the `~/.local/bin` directory if it does not exist).
|
||||
2. Give it the content:
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
/usr/bin/wlx-overlay-s --openxr
|
||||
```
|
||||
3. `chmod +x ~/.local/bin/wlx-but-newer`
|
||||
4. In Envision, open the Plugins window.
|
||||
5. Add a custom plugin by clicking the ➕ plus button.
|
||||
6. For the executable file, point it to the script you just created.
|
||||
7. Name the plugin "Wlx but newer".
|
||||
8. Save, and then enable the new plugin.
|
||||
|
||||
Now starting the profile will also start your custom or AUR version of WlxOverlay-S.
|
||||
|
||||
### Plugin troubleshooting
|
||||
|
||||
On some systems, a built-in plugin may not launch. This can happen for a number of reasons, but one in particular is so obtuse that it's worth a mention:
|
||||
|
||||
Please *uninstall* AppImageLauncher. It intercepts the normal AppImage starting behavior in a dirty way that we can't predict.
|
||||
|
||||
You can tell if you are affected if, when you run the WlxOverlay-S AppImage in terminal (whether in plugin form in `~/.local/share/envision/plugins`, or downloaded directly from GitHub), you only get the output `execv error: No such file or directory`.
|
||||
|
||||
## Steam Flatpak
|
||||
|
||||
To use Envision with the Flatpak version of Steam, you'll need to add the following filesystem overrides to Steam using an application like Flatseal:
|
||||
- `xdg-data/envision:ro`
|
||||
- `xdg-run/monado_comp_ipc`
|
||||
- `xdg-config/openxr:ro`
|
||||
- `xdg-config/openvr:ro`
|
||||
|
||||
Alternatively, you can use the following command:
|
||||
```shell
|
||||
flatpak override --filesystem="xdg-data/envision:ro" --filesystem="xdg-run/monado_comp_ipc" --filesystem="xdg-config/openxr:ro" --filesystem="xdg-config/openvr:ro" com.valvesoftware.Steam
|
||||
```
|
||||
|
||||
## Experimental feature settings
|
||||
|
||||
|
@ -48,7 +96,7 @@ The following resources can be entered into your Envision profile repo and branc
|
|||
|
||||
### Full body Lighthouse tracking
|
||||
|
||||
Full body is now provided by default in Monado & OpenComposite through the XR_MNDX_xdev_space OpenXR vendor extension. This allows any tracked "xdev" in Monado to be forwarded as a raw pose without bindings to applications. OpenComposite exposes these as fake Vive FBT trackers for use.
|
||||
Full body is no longer experimental; it is enabled by default in Monado & OpenComposite through the XR_MNDX_xdev_space OpenXR vendor extension. This allows any tracked "xdev" in Monado to be forwarded as a raw pose without bindings to applications. OpenComposite exposes these as fake Vive FBT trackers for use.
|
||||
|
||||
### WMR & Rift S controller tracking
|
||||
|
||||
|
@ -79,4 +127,10 @@ The Oculus Rift CV1 is supported on the OpenHMD profile of Envision.
|
|||
|
||||
Start the profile with your headset placed on the floor in clear view of all bases to generate this file as your calibrated playspace origin first run and delete it to reset the configuration.
|
||||
|
||||
A calibration of base stations will be saved to disk at `~/.config/openhmd/rift-room-config.json`.
|
||||
A calibration of base stations will be saved to disk at `~/.config/openhmd/rift-room-config.json`.
|
||||
|
||||
### Fix View
|
||||
|
||||
In Steam OpenVR games, the eye's are not calibrated properly, and result in double vision or cross eye effect.
|
||||
|
||||
You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this.
|
||||
|
|
|
@ -67,3 +67,12 @@ paru -S envision-xr-git
|
|||
- Leave Monado open.
|
||||
- Start the new game.
|
||||
- Always turn on the controllers **before** starting Envision.
|
||||
|
||||
- Update controller firmware while running Windows. It's necessary for controllers to work in Linux, updating them from Linux is currently impossible.
|
||||
- Make sure that you **don't factory-reset the controllers** (performed by long-pressing the pairing button when controllers are off). This action restores the factory firmware version.
|
||||
- If monado fails to start with the following error, you likely need to update the firmware in Mixed Reality Portal:
|
||||
```
|
||||
WARN [wmr_controller_send_fw_cmd] Controller fw read timed out after 250 ms
|
||||
ERROR [wmr_bt_controller_create] WMR Controller (Bluetooth): Failed to create controller
|
||||
ERROR [wmr_create_bt_controller] Failed to create WMR controller (Bluetooth)
|
||||
```
|
||||
|
|
|
@ -33,6 +33,24 @@ In order to use the SteamVR lighthouse driver in Monado, you just need to set th
|
|||
|
||||
OpenComposite is REQUIRED to operate Monado in conjunction with Steam games. Proton requires a functional OpenVR API to utilize OpenXR at all and Proton itself is required for VR to function as normal wine does not carry any of the needed patches nor does "protonified" wine something like Lutris would provide.
|
||||
|
||||
### Fix View
|
||||
|
||||
In Steam OpenVR games, the eye's are not calibrated properly, and result in double vision or cross eye effect.
|
||||
|
||||
You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this.
|
||||
|
||||
## Envision
|
||||
|
||||
[Envision](/docs/fossvr/envision/) provides a fairly low-barrier setup and development of both Monado and OpenComposite on most any modern distro.
|
||||
[Envision](/docs/fossvr/envision/) provides a fairly low-barrier setup and development of both Monado and OpenComposite on most any modern distro.
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## [NVIDIA-specific] "NVIDIA: No allowlisted displays found!"
|
||||
|
||||
This may be caused by a few different issues:
|
||||
- NVIDIA driver misnaming the display: If you see a display simply named "NVIDIA" in the output, the NVIDIA driver may be using a fallback name.
|
||||
This can be worked around by setting the environment variable `XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="NVIDIA"`.
|
||||
- HMD display completely missing from the list: Try unplugging and replugging the power adapter.
|
||||
|
||||
## "vkAcquireXlibDisplayEXT: VK_ERROR_UNKNOWN (0x000058b7a0764a80)"
|
||||
Try unplugging and replugging the power adapter. If the issue still occurs and you are on a Wayland session, try setting the environment variable `XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT=1`.
|
|
@ -17,7 +17,21 @@ OpenComposite is required for Steam Play games to work in VR regardless of API.
|
|||
|
||||
Contributions to improve the OpenVR to OpenXR mapping are welcome.
|
||||
|
||||
## Rebinding Controls
|
||||
## Forcing additional devices as trackers
|
||||
|
||||
OpenComposite has the environment variable `OPENCOMPOSITE_TRACKER_SERIALS` to allow using non-tracker devices as trackers in SteamVR games. The expected format is as follows: `serial1;serial2` where each 'serial' is a device serial like `LHR-00000000` or `WiVRn HMD`. You can set this on games by setting this launch option in Steam: `env OPENCOMPOSITE_TRACKER_SERIALS="LHR-00000001;LHR-00000002" %command%`.
|
||||
|
||||
To obtain info for lighthouse devices, you may look at the top of the Monado stdout when using steamvr_lh. For other types of devices there are multiple ways of obtaining device serials:
|
||||
|
||||
- OpenComposite log file
|
||||
|
||||
The OpenComposite log file at `~/.local/state/OpenComposite/logs/opencomposite.log` will log all seen devices when checking for trackers, so you can search for `Checking for generic trackers...` in the log file and look below for `Found usable xdev`.
|
||||
|
||||
- motoc
|
||||
|
||||
motoc has the `show` subcommand for viewing all device names, serials, and positions relative to the space origin.
|
||||
|
||||
## Rebinding controls
|
||||
|
||||
> Changing OpenVR bindings is currently a very manual process. This will change in the future.
|
||||
|
||||
|
|
|
@ -9,19 +9,23 @@ weight: 52
|
|||
- [Github Organization](https://github.com/StardustXR/)
|
||||
|
||||
A system UI to make using all your 2D—and eventually OpenXR—apps together intuitive, accessible, and fun by using community-made virtual objects as interfaces.
|
||||
Stardust provides a 3D environment, where anything from 2D windows (including your existing apps!), to 3D apps built from objects, can exist together in physical space.
|
||||
|
||||

|
||||
|
||||
## Setup
|
||||
|
||||
First you need to install and run the server from https://github.com/StardustXR/server. Follow the README. If you have issues getting OpenXR to work, try running https://gitlab.freedesktop.org/monado/demos/xrgears first.
|
||||
For full installation instructions and a deeper dive into setting it up with various linux distributions, visit the [Stardust XR website](https://stardustxr.org/docs/get-started/What-is-Stardust)
|
||||
The quickest way to try out Stardust XR is to install [Telescope](https://stardustxr.org/docs/get-started/Quickstart). It comes with the Stardust XR server, an app launcher called Hexagon Launcher,
|
||||
and some helpful apps like Flatland to use your 2D apps inside Stardust, and Black Hole to quickly tuck away your objects and apps (kind of like desktop peek on Windows). Note that you'll need to have
|
||||
the [Terra repository](https://terra.fyralabs.com/) installed.
|
||||
|
||||
After the server is running, you'll need to run some clients. Here's a demo showing some off:
|
||||

|
||||
```
|
||||
sudo dnf install telescope
|
||||
```
|
||||
|
||||
Non-exhaustive list of clients:
|
||||
- [Flatland](https://github.com/StardustXR/flatland): A panel item UI (XR equivalent of a window manager) so you can interact with your apps using virtual touchscreens. To show Wayland apps, run them with the proper `WAYLAND_DISPLAY` environment variable, in the server's startup script, or use a stardust launcher such as gravity or protostar. Flatland works great in 3DoF or 6DoF with direct touch and pointer interaction.
|
||||

|
||||
- [Gravity](https://github.com/StardustXR/gravity): Command line tool to launch programs inside of stardust at a particular offset in space. This is nestable so you can run a script using gravity, and then gravity inside that script to make a whole composed setup out of thin air! It also ensures that everything launched through it will properly connect to the stardust server, such as wayland clients.
|
||||
- [Protostar](https://github.com/StardustXR/protostar): Prototype app launcher library/examples. Grab app icons and drop them in space to launch apps where they're dropped.
|
||||
- [Magnetar](https://github.com/StardustXR/magnetar): Workspaces in 3D. Any object inside the rings will move with them, so you can move a bunch of stuff out of the way temporarily when you don't need it.
|
||||
Here's a demo showing some off some of what Stardust XR is like:
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/v2WblwbaLaA" frameBorder={0} allow="autoplay; encrypted-media" allowFullScreen style={{maxWidth: '100%', aspectRatio: '16/9'}} ></iframe>
|
||||
|
||||
The full installation of Stardust XR centers around the Stardust XR server, which can run a variety of clients. For a full list of what is available,
|
||||
check out the [Github repository](https://github.com/StardustXR).
|
||||
|
|
|
@ -11,13 +11,42 @@ title: WiVRn
|
|||
|
||||
> WiVRn wirelessly connects a standalone VR headset to a Linux computer. You can then play PCVR games on the headset while processing is done on the computer.
|
||||
|
||||
WiVRn is based on [Monado](/docs/fossvr/monado/) and can be used with [OpenComposite](/docs/fossvr/opencomposite/) to support a majority of titles available for SteamVR. A wide range of standalone headsets are supported.
|
||||
WiVRn is based on [Monado](/docs/fossvr/monado/) and can be used with [xrizer](/docs/fossvr/xrizer/) or [OpenComposite](/docs/fossvr/opencomposite/) to support a majority of titles available for SteamVR. A wide range of standalone headsets are supported.
|
||||
|
||||
## Installing WiVRn
|
||||
|
||||
We recommend using [Envision](/docs/fossvr/envision/) to install and launch WiVRn & OpenComposite. Envision will handle all configuration seamlessly and avoids many of the pitfalls of a manual setup.
|
||||
We recommend using distribution packages when available (see below) or the [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) when one is unavailable.
|
||||
|
||||
Alternatively, you can use the [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) which includes OpenComposite as part of it. Processes in flatpak cannot take advantage of setcap, and so your performance may suffer when compared to Envision.
|
||||
### Arch Linux
|
||||
|
||||
Packages are available on [AUR](https://wiki.archlinux.org/title/Arch_User_Repository), you will need the following packages:
|
||||
|
||||
* `wivrn-server` and `wivrn-dashboard` for base feature + GUI (latest release), or `wivrn-full-git` for development version
|
||||
* `opencomposite-git` or `xrizer-git` for compatibility with OpenVR and proton
|
||||
|
||||
### Fedora
|
||||
|
||||
The `wivrn` package will automatically pull `wivrn-dashboard` and `opencomposite` as dependencies, it can be installed with `sudo dnf install wivrn`.
|
||||
|
||||
To make use of patented codecs for video encoding like H264/H265, you must [install the codecs from RPMFusion](https://rpmfusion.org/Howto/Multimedia).
|
||||
|
||||
### Gentoo Linux
|
||||
|
||||
Packages are available on [Guru](https://wiki.gentoo.org/wiki/Project:GURU), you will need `media-libs/wivrn` and `media-libs/opencomposite`.
|
||||
|
||||
### NixOS
|
||||
|
||||
See [`services.wivrn`](https://search.nixos.org/options?channel=24.11&size=50&sort=relevance&type=packages&query=services.wivrn).
|
||||
|
||||
### Flatpak (all distributions)
|
||||
|
||||
The [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) has the latest released version and can be installed with `flatpak install io.github.wivrn.wivrn` or via your software centre application.
|
||||
|
||||
For development releases, you can download the `wivrn-flatpak-x86_64` artifact from the GitHub [Build](https://github.com/WiVRn/WiVRn/actions/workflows/Build.yml?query=branch%3Amaster) action.
|
||||
|
||||
### Envision (guided build)
|
||||
|
||||
You can use [Envision](/docs/fossvr/envision/) to install and launch WiVRn & OpenComposite - this may be the easier route if you use SteamVR Lighthouse-tracked devices or SlimeVR trackers.
|
||||
|
||||
## General WiVRn Notes
|
||||
|
||||
|
@ -25,43 +54,96 @@ WiVRn uses Avahi for network discovery. Ensure it is running with the following
|
|||
```bash
|
||||
systemctl enable --now avahi-daemon
|
||||
```
|
||||
(If Avahi is not available, the IP address of the server must be entered into the client.)
|
||||
If Avahi is not available, `--no-publish-service` bypasses it, and the IP address of the server must be entered into the client.
|
||||
|
||||
If a firewall is installed, make sure ports 5353/UDP and 9757/UDP+TCP are open for Avahi and WiVRn itself, respectively.
|
||||
If a firewall is installed, make sure ports 5353/UDP and 9757/UDP+TCP are open for Avahi and WiVRn respectively.
|
||||
|
||||
If using Nvidia proprietary drivers, have [Monado Vulkan Layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) installed, otherwise games will crash with a segmentation fault.
|
||||
If using Nvidia proprietary drivers older than 565, install the [Monado Vulkan Layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers), otherwise games will crash with a segmentation fault.
|
||||
|
||||
For audio in WiVRn, you will need to assign applications, or the system as a whole, to output audio to the virtual output "WiVRn" which is created upon connection between the server and the headset.
|
||||
|
||||
## Steam Flatpak
|
||||
|
||||
It is possible to use WiVRn Flatpak with Steam Flatpak, though Steam Flatpak isn't generally recommended for VR. If you are using Steam Flatpak, you just need to grant it access to the relevant paths:
|
||||
|
||||
```bash
|
||||
flatpak override --user --filesystem=xdg-config/openxr:ro com.valvesoftware.Steam
|
||||
flatpak override --user --filesystem=xdg-config/openvr:ro com.valvesoftware.Steam
|
||||
flatpak override --user --filesystem=xdg-run/wivrn com.valvesoftware.Steam
|
||||
flatpak override --user --filesystem=/var/lib/flatpak/app/io.github.wivrn.wivrn:ro com.valvesoftware.Steam
|
||||
```
|
||||
|
||||
As an added bonus to the above, this command will save you the effort of having to set launch options for every single VR game in your Steam library:
|
||||
|
||||
```bash
|
||||
flatpak override --user --env=PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/wivrn/comp_ipc:/var/lib/flatpak/app/io.github.wivrn.wivrn com.valvesoftware.Steam
|
||||
```
|
||||
|
||||
## Wired WiVRn
|
||||
|
||||
Use WiVRn with a cable instead of Wifi. Use a 5Gbps cable & port at the very least.
|
||||
You can use WiVRn with a cable instead of Wi-Fi. Use a 5Gbps cable & port at the very least.
|
||||
|
||||
WiVRn version: 0.19+
|
||||
- Install adb on your system - usually the package is named `android-tools` or something similar.
|
||||
- Connect the headset via USB.
|
||||
- Run `adb devices` in your terminal.
|
||||
- If you have never authorised USB debugging from this computer before, put the headset on shortly and select 'Always allow USB debugging from this computer'.
|
||||
Then depending on your installation method, follow these steps:
|
||||
|
||||
Using the dashboard:
|
||||
- The 'Connect via USB' button under the pairing toggle should have a list of devices - select any one to initiate a wired connection.
|
||||
|
||||
Using Envision:
|
||||
- Connect the headset via USB
|
||||
- Click the `Start WiVRn Client (Wired)` button in Envision.
|
||||
- If it's not there, an Envision update might be necessary.
|
||||
|
||||
Manual steps:
|
||||
- Connect the headset via USB
|
||||
- If WiVRn is running on the headset, close it now.
|
||||
- While in the system lobby of the headset, run the following `adb` commands on the PC:
|
||||
```bash
|
||||
adb reverse tcp:9757 tcp:9757
|
||||
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://127.0.0.1" org.meumeu.wivrn
|
||||
```
|
||||
Manual steps: See the [README](https://github.com/WiVRn/WiVRn/blob/master/README.md?plain=1#L114).
|
||||
|
||||
## WiVRn + SlimeVR trackers
|
||||
|
||||
To use SlimeVR trackers through WiVRn, you currently must use a [fork](https://github.com/notpeelz/WiVRn) of WiVRn:
|
||||
|
||||
### Usage with Envision
|
||||
|
||||
To use this fork within Envision, edit these fields in your profile:
|
||||
- XR Service Repo: `https://github.com/notpeelz/WiVRn.git`
|
||||
- XR Service Branch: `solarxr-patches`
|
||||
- XR Service CMake Flags: Add `WIVRN_FEATURE_SOLARXR=ON`
|
||||
|
||||
Then save and clean build the profile.
|
||||
|
||||
### NixOS setup
|
||||
Override the `wivrn` package from nixpkgs with something resembling the following, replacing `[COMMIT HASH HERE]` with the latest commit hash from https://github.com/notpeelz/WiVRn/commits/solarxr-patches and filling in the correct src hash. Do note you may need to adapt this depending on how you install WiVRn:
|
||||
```nix
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
services.wivrn = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
package = pkgs.wivrn.overrideAttrs (old: rec {
|
||||
version = "[COMMIT HASH HERE]";
|
||||
src = lib.fetchFromGitHub {
|
||||
owner = "notpeelz";
|
||||
repo = "WiVRn";
|
||||
rev = version;
|
||||
# This will throw an error when evaluating and give you the correct hash - put that here
|
||||
hash = "";
|
||||
};
|
||||
cmakeFlags = old.cmakeFlags ++ [
|
||||
(lib.cmakeBool "WIVRN_FEATURE_SOLARXR" true)
|
||||
];
|
||||
});
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## WiVRn + Lighthouse driver
|
||||
|
||||
This section covers using WiVRn with any lighthouse-tracked device: Index/Vive controllers, Vive/Tundra trackers, etc.
|
||||
This section covers using WiVRn 0.19 and newer with any Lighthouse-tracked device (such as Index/Vive controllers, Vive/Tundra trackers, etc.)
|
||||
|
||||
WiVRn version: 0.19+
|
||||
You must have SteamVR installed (no need to run it).
|
||||
|
||||
Have SteamVR installed (no need to run it).
|
||||
|
||||
In Envision, set WiVRn Profile as such:
|
||||
### Envision
|
||||
Set WiVRn Profile as such:
|
||||
- XR Service CMake Flags:
|
||||
- `WIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON`
|
||||
- Environment Variables:
|
||||
|
@ -70,20 +152,41 @@ In Envision, set WiVRn Profile as such:
|
|||
|
||||
Perform a **Clean Build** after changing the CMake flags!
|
||||
|
||||
If not using Envision, simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to cmake and export the env variables before starting `wivrn-server`.
|
||||
### NixOS
|
||||
Override the `wivrn` package and launch wivrn-server with the required environment variables:
|
||||
```nix
|
||||
{
|
||||
services.wivrn = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
package = pkgs.wivrn.overrideAttrs (old: {
|
||||
cmakeFlags = old.cmakeFlags ++ [
|
||||
(lib.cmakeBool "WIVRN_FEATURE_STEAMVR_LIGHTHOUSE" true)
|
||||
];
|
||||
});
|
||||
monadoEnvironment = {
|
||||
WIVRN_USE_STEAMVR_LH = "1";
|
||||
LH_DISCOVER_WAIT_MS = "6000";
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
[Motoc](/docs/fossvr/motoc/) will be used to calibrate the two tracking technologies to work together.
|
||||
### Manual
|
||||
Simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to CMake and export the above environment variables before starting `wivrn-server`.
|
||||
|
||||
Discovery happens only on first connection, so be sure to **have all lighthouse devices powered on and in line of sight of base stations before connecting the headset!**
|
||||
### Usage tips
|
||||
|
||||
Once a device is discovered, it may be powered off and then back on later.
|
||||
Discovery happens only on first connection, so be sure to **have all Lighthouse devices powered on and in line-of-sight of your base stations before connecting the headset!** Once a device is discovered, you may power it off and on at-will.
|
||||
|
||||
You can use [Motoc](/docs/fossvr/motoc/) to calibrate the two tracking technologies to work together.
|
||||
|
||||
Once video appears in the headset, check `motoc monitor` to make sure your devices all show up.
|
||||
|
||||
If one or more devices are missing, try:
|
||||
- Spread the devices out more; lighthouse devices get discovered quicker if they're not piled up on each other. Simply strapping them on is good, too.
|
||||
- Spread the devices out more; Lighthouse devices get discovered quicker if they're not piled up on each other. Simply strapping them on is good, too.
|
||||
- Increase `LH_DISCOVER_WAIT_MS`, though this delays the client on first connection.
|
||||
|
||||
To re-discover devices, restart WiVRn server.
|
||||
|
||||
At this point, your lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the [Motoc README](https://github.com/galister/motoc/blob/main/README.md).
|
||||
At this point, your Lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the [Motoc README](https://github.com/galister/motoc/blob/main/README.md).
|
||||
|
|
102
content/docs/fossvr/wmr_lighthouse_hacky.md
Normal file
102
content/docs/fossvr/wmr_lighthouse_hacky.md
Normal file
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
title: WMR Lighthouse (No SteamVR)
|
||||
weight: 9000
|
||||
---
|
||||
# WMR Lighthouse (No SteamVR)
|
||||
|
||||
This describes a WMR Lighthouse setup using the `steamvr_lh` driver.
|
||||
|
||||
It's different from [WMR Lighthouse](/docs/steamvr/wmr-lighthouse/)
|
||||
|
||||
This doesn't use steamvr to re-map the head from some lighthouse tracking device.
|
||||
Instead it does this natively in monado, so SteamVR is only necessary for the proprietary `steamvr_lh` driver.
|
||||
|
||||
For now this is a hacky approach requiring a Monado fork, as Monado's builders don't support the functionality yet:
|
||||
|
||||
* https://gitlab.freedesktop.org/monado/monado/-/issues/459
|
||||
* https://gitlab.freedesktop.org/monado/monado/-/issues/288
|
||||
|
||||
This is made for WMR based headsets and has been tested with a Reverb G2 & Vive1 (Vive1 used only for it's 2 watchman dongles needed for the lighthouse controllers).
|
||||
|
||||
You can easily adapt this for other headsets in a hacky way, until these issues are closed.
|
||||
|
||||
Tested working on Arch Linux with NVIDIA RTX 2060S.
|
||||
|
||||
## Setup:
|
||||
Setup your lighthouse system on SteamVR Windows. The Linux SteamVR version does not work well. On windows: Update everything, pair everything & setup your room boundaries.
|
||||
|
||||
Linux Setup:
|
||||
* install Steam
|
||||
* Download SteamVR on Steam (try non beta version first)
|
||||
* Configurations from Windows copied over
|
||||
|
||||
### How To Copy Your Windows Steam Configurations To Linux
|
||||
* mount your windows drive (e.g. at `/mnt`)
|
||||
* `cp -r "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/`
|
||||
|
||||
### Linux Only Setup
|
||||
It may be possible to use SteamVR on Linux to setup your room boundaries, pair and update everything. This is untested, but try at least.
|
||||
You may need playspace moving via Wlx to fine tune the floor if you don't have a Windows install.
|
||||
|
||||
## Build
|
||||
|
||||
### Manually
|
||||
Use this fork of Monado
|
||||
|
||||
`git clone https://gitlab.freedesktop.org/Zuzka/monado`
|
||||
|
||||
(if it's too old for you, try to merge upstream into it and fix it)
|
||||
|
||||
Ensure you have all required dependencies installed beforehand (Envision or Monado docs might help)
|
||||
|
||||
* `cmake -G Ninja -B build -DCMAKE_INSTALL_PREFIX=/usr -DXRT_BUILD_DRIVER_SURVIVE=0 -DXRT_BUILD_DRIVER_VIVE=0 -DXRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE=1`
|
||||
* `sudo ninja -C build install`
|
||||
|
||||
Set following environment variable in your e.g. bash_profile:
|
||||
|
||||
`export LH_DEVICE_SERIAL="{YourSerial}"`
|
||||
|
||||
Replace `{YourSerial}` with [your actual serial](#how-to-find-your-serial)
|
||||
|
||||
### Envision
|
||||
In Envision, set Profile as such:
|
||||
|
||||
XR Service Repo:
|
||||
```
|
||||
https://gitlab.freedesktop.org/Zuzka/monado.git
|
||||
```
|
||||
|
||||
XR Service CMake Flags:
|
||||
```
|
||||
XRT_BUILD_DRIVER_SURVIVE=0
|
||||
XRT_BUILD_DRIVER_VIVE=0
|
||||
XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE=1
|
||||
```
|
||||
Environment Variables:
|
||||
```
|
||||
LH_DEVICE_SERIAL="{YourSerial}"
|
||||
```
|
||||
|
||||
Replace `{YourSerial}` with [your actual serial](#how-to-find-your-serial)
|
||||
|
||||
Perform a Clean Build after changing the CMake flags!
|
||||
|
||||
## How To Find Your Serial
|
||||
You can find out the actual tracking device serial by:
|
||||
|
||||
1. At monado startup look if you see anything starting with `LHR-` e.g. `LHR-FC2E9BC3`. Try a bunch to find the tracker attached to your headset.
|
||||
2. running this command and trying a bunch: `ls ~/.steam/steam/config/lighthouse/ | tr '[:lower:]' '[:upper:]'`
|
||||
3. Running `motoc show` in a terminal
|
||||
|
||||
## Notes
|
||||
* Turn on all your trackers & controllers and ensure the light is green, before starting monado.
|
||||
* If you decide to use another lighthouse tracker mount, you'd need to figure the new tracker offset math in the Monado source code.
|
||||
* If you use a Vive 1 as controller connection dongles *only connect power and USB*.
|
||||
* Fork works fine without a Vive 1 for dongles, usb dongles work aswell.
|
||||
|
||||
## Useful Resources:
|
||||
* https://monado.freedesktop.org/getting-started.html#installation-from-source
|
||||
* https://monado.freedesktop.org/valve-index-setup.html
|
||||
* check the commits on the fork for more info https://gitlab.freedesktop.org/Zuzka/monado
|
||||
* vive tracker 3.0 3d printable mount
|
||||
* model: https://www.printables.com/model/107654-hp-reverb-g2-vive-tracker-mount
|
58
content/docs/fossvr/xrizer.md
Normal file
58
content/docs/fossvr/xrizer.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
weight: 300
|
||||
title: xrizer
|
||||
---
|
||||
|
||||
# xrizer
|
||||
- [xrizer Git repository](https://github.com/Supreeeme/xrizer)
|
||||
|
||||
> xrizer is a reimplementation of OpenVR on top of OpenXR. This enables you to run OpenVR games through any OpenXR runtime without running SteamVR.
|
||||
|
||||
{{% hint warning %}}
|
||||
**Application developers**: The OpenVR implementation is incomplete and contains only what's necessary to run most games for compatibility and may omit certain information - if you plan to implement software, utilize the [OpenXR API](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html).
|
||||
{{% /hint %}}
|
||||
|
||||
## Using full body trackers
|
||||
|
||||
{{% hint warning %}}
|
||||
**This branch is a work-in-progress!** Unexpected problems may occur while in use, if you encounter issues while using this fork you should not report it upstream unless reproducible on the `main` branch of xrizer.
|
||||
|
||||
If you would like a battle-tested solution, see [OpenComposite](/docs/fossvr/opencomposite/).
|
||||
{{% /hint %}}
|
||||
|
||||
Currently xrizer does not support full body tracking, however there is a **work-in-progress** [fork by RinLovesYou](https://github.com/RinLovesYou/xrizer/tree/experimental2) with support while using Monado.
|
||||
|
||||
To use the above fork, follow these steps:
|
||||
|
||||
### Envision
|
||||
- Click the three dots next to the profile selector and select 'Edit profile'
|
||||
- If a popup asks if you would like to duplicate the profile, click yes.
|
||||
- Scroll down to 'OpenVR Compatibility' and set the following fields:
|
||||
- OpenVR Compatibility Repo: `https://github.com/RinLovesYou/xrizer.git`
|
||||
- OpenVR Compatibility Branch: `experimental2`
|
||||
- Clean build your profile from the menu at the top right, or use the Ctrl+F5 keybind.
|
||||
|
||||
### NixOS
|
||||
Apply an overlay over nixpkgs to override the xrizer src:
|
||||
|
||||
```nix
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
xrizer = prev.xrizer.overrideAttrs {
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "RinLovesYou";
|
||||
repo = "xrizer";
|
||||
# IMPORTANT: Fill the below field with the latest commit hash from https://github.com/RinLovesYou/xrizer/commits/experimental2 (click the Copy full SHA button on the right side)
|
||||
rev = "";
|
||||
# IMPORTANT: Replace the below field with the correct hash, the error when building with this empty will give you the expected hash.
|
||||
hash = "";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
## Rebinding controls
|
||||
The process is mostly the same as [OpenComposite](/docs/fossvr/opencomposite/#rebinding-controls), but replace the `OpenComposite` directory name with `xrizer`.
|
Loading…
Add table
Add a link
Reference in a new issue