From e153586db3f3be9ec0e0aa69a2f52b19c5c80161 Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sat, 15 Feb 2025 00:49:04 +0100 Subject: [PATCH 1/8] Add WMR Lighthouse hacky wiki entry --- content/docs/fossvr/wmr_lighthouse_hacky.md | 73 +++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 content/docs/fossvr/wmr_lighthouse_hacky.md diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md new file mode 100644 index 0000000..31a2e9d --- /dev/null +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -0,0 +1,73 @@ +--- +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, so SteamVR is only necessary for the proprietary `steamvr_lh` driver. + +For now this is a hacky approach 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 + +I made this for WMR as i have a reverb G2 & vive 1 (used only for it's 2 watchman dongles) + +you can easily adapt this for other headsets in a hacky way, until these issues are closed. + +I use this as my only vr setup on arch and it works fine. + +## 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 "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/ -r` + +## Build +Grab my hacky Monado + +`git clone https://gitlab.freedesktop.org/Zuzka/monado` + +(if it's too old, 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` + +You may get this error: + +``` +CMake Error at cmake/OptionWithDeps.cmake:141 (message): + XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE specified but not available: failed + check XRT_HAVE_STEAM +Call Stack (most recent call first): + CMakeLists.txt:327 (option_with_deps) +``` + +In which case it's okay to just comment (put # at beginning of line) of line 372. + +## USAGE: +* set following environment variables in your e.g. bash_profile: +* export LH_DEVICE_SERIAL="{YourSerial}" +* get the actual tracking device serial via `motoc monitor` or by another way. + +## USEFUL RESOURCES: +* https://monado.freedesktop.org/getting-started.html#installation-from-source +* https://monado.freedesktop.org/valve-index-setup.html +* check the commits on my branch 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 + From 27907076dc5b904d7095f4feedf0560b6b93cb8a Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sun, 16 Feb 2025 00:59:13 +0100 Subject: [PATCH 2/8] Change wording (lvra/lvra.gitlab.io!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index 31a2e9d..770c6d5 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -16,7 +16,7 @@ For now this is a hacky approach as Monado's builders don't support the function * https://gitlab.freedesktop.org/monado/monado/-/issues/459 * https://gitlab.freedesktop.org/monado/monado/-/issues/288 -I made this for WMR as i have a reverb G2 & vive 1 (used only for it's 2 watchman dongles) +I made this for WMR as I have a reverb G2 & vive 1 (used only for it's 2 watchman dongles) you can easily adapt this for other headsets in a hacky way, until these issues are closed. @@ -30,12 +30,12 @@ Linux setup: * Download SteamVR on Steam (try non beta version first) * configurations from windows copied over -## How to copy your windows steam configurations to Linux +## How to copy your Windows steam configurations to Linux * mount your windows drive (e.g. at `/mnt`) * `cp "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/ -r` ## Build -Grab my hacky Monado +Grab my custom Monado `git clone https://gitlab.freedesktop.org/Zuzka/monado` From 59ca9ee2461fb322093dad145dd2db551de2186a Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sun, 16 Feb 2025 01:11:00 +0100 Subject: [PATCH 3/8] Fix trailing slash? (!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index 770c6d5..c237c11 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -6,7 +6,7 @@ weight: 9000 This describes a WMR Lighthouse setup using the `steamvr_lh` driver. -It's different from [WMR Lighthouse](/docs/steamvr/wmr-lighthouse) +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, so SteamVR is only necessary for the proprietary `steamvr_lh` driver. From b6ec0472c19271bbc6e2b65490c25f891e1058b0 Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sun, 16 Feb 2025 01:13:51 +0100 Subject: [PATCH 4/8] Remove whitespace (!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index c237c11..fd66517 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -34,7 +34,7 @@ Linux setup: * mount your windows drive (e.g. at `/mnt`) * `cp "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/ -r` -## Build +## Build Grab my custom Monado `git clone https://gitlab.freedesktop.org/Zuzka/monado` From cf791d85e3036bc2fa2078a9d88fb1bff9c39bdd Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sun, 16 Feb 2025 01:14:28 +0100 Subject: [PATCH 5/8] Another whitespace (!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index fd66517..928dd68 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -69,5 +69,4 @@ In which case it's okay to just comment (put # at beginning of line) of line 372 * https://monado.freedesktop.org/valve-index-setup.html * check the commits on my branch 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 - + * model: https://www.printables.com/model/107654-hp-reverb-g2-vive-tracker-mount From 7bea74d97c335f0b6aaeb10ee1bed286f312373d Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sun, 16 Feb 2025 01:19:07 +0100 Subject: [PATCH 6/8] No spaces anymore pls (!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index 928dd68..cb2e7cc 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -69,4 +69,4 @@ In which case it's okay to just comment (put # at beginning of line) of line 372 * https://monado.freedesktop.org/valve-index-setup.html * check the commits on my branch 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 + * model: https://www.printables.com/model/107654-hp-reverb-g2-vive-tracker-mount From 12041e65eeffa5891424f59b13126540f2c25650 Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Sat, 22 Feb 2025 11:54:34 +0100 Subject: [PATCH 7/8] Improve WMR lighthouse hacky (!70) --- content/docs/fossvr/wmr_lighthouse_hacky.md | 51 +++++++++++++-------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index cb2e7cc..4aa36e9 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -9,33 +9,40 @@ 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, so SteamVR is only necessary for the proprietary `steamvr_lh` driver. +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 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 -I made this for WMR as I have a reverb G2 & vive 1 (used only for it's 2 watchman dongles) + +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. +You can easily adapt this for other headsets in a hacky way, until these issues are closed. -I use this as my only vr setup on arch and it works fine. +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 +* install Steam * Download SteamVR on Steam (try non beta version first) -* configurations from windows copied over +* Configurations from Windows copied over -## How to copy your Windows steam configurations to Linux +### How to copy your Windows steam configurations to Linux * mount your windows drive (e.g. at `/mnt`) -* `cp "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/ -r` +* `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 boundries, 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 -Grab my custom Monado + +### Manually +Use this fork of Monado `git clone https://gitlab.freedesktop.org/Zuzka/monado` @@ -47,26 +54,34 @@ Ensure you have all required dependencies installed beforehand (Envision or Mona `sudo ninja -C build install` -You may get this error: +### Envision +WiVRn version: 0.19+ +Use this fork of Monado: https://gitlab.freedesktop.org/Zuzka/monado + +In Envision, set Profile as such: + +XR Service CMake Flags: ``` -CMake Error at cmake/OptionWithDeps.cmake:141 (message): - XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE specified but not available: failed - check XRT_HAVE_STEAM -Call Stack (most recent call first): - CMakeLists.txt:327 (option_with_deps) +XRT_BUILD_DRIVER_SURVIVE=0 +XRT_BUILD_DRIVER_VIVE=0 +XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE=1 +``` +Environment Variables: +``` +LH_DEVICE_SERIAL="{YourSerial}" ``` -In which case it's okay to just comment (put # at beginning of line) of line 372. +Perform a Clean Build after changing the CMake flags! ## USAGE: * set following environment variables in your e.g. bash_profile: -* export LH_DEVICE_SERIAL="{YourSerial}" +* `export LH_DEVICE_SERIAL="{YourSerial}"` * get the actual tracking device serial via `motoc monitor` or by another way. ## USEFUL RESOURCES: * https://monado.freedesktop.org/getting-started.html#installation-from-source * https://monado.freedesktop.org/valve-index-setup.html -* check the commits on my branch for more info https://gitlab.freedesktop.org/Zuzka/monado +* 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 From 5f07665b79afddc705c5bc03195e023813e0b269 Mon Sep 17 00:00:00 2001 From: Zuzka Varga <*> Date: Tue, 4 Mar 2025 20:24:35 +0100 Subject: [PATCH 8/8] Add improved guide --- content/docs/fossvr/wmr_lighthouse_hacky.md | 55 +++++++++++++-------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index 4aa36e9..e602db0 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -1,8 +1,8 @@ --- -title: WMR Lighthouse (no SteamVR) +title: WMR Lighthouse (No SteamVR) weight: 9000 --- -# WMR Lighthouse (no SteamVR) +# WMR Lighthouse (No SteamVR) This describes a WMR Lighthouse setup using the `steamvr_lh` driver. @@ -11,12 +11,11 @@ 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 as Monado's builders don't support the functionality yet: +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. @@ -26,17 +25,17 @@ 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: +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 +### 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 boundries, pair and update everything. This is untested, but try at least. +### 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 @@ -46,21 +45,27 @@ Use this fork of Monado `git clone https://gitlab.freedesktop.org/Zuzka/monado` -(if it's too old, try to merge upstream into it and fix it) +(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` +* `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` -`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 -WiVRn version: 0.19+ - -Use this fork of Monado: https://gitlab.freedesktop.org/Zuzka/monado - 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 @@ -72,14 +77,24 @@ 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! -## USAGE: -* set following environment variables in your e.g. bash_profile: -* `export LH_DEVICE_SERIAL="{YourSerial}"` -* get the actual tracking device serial via `motoc monitor` or by another way. +## How To Find Your Serial +You can find out the actual tracking device serial by: -## USEFUL RESOURCES: +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