This guide assumes you've compiled the LG-R100 branch of OpenHMD on your Steam Deck.

We will be compiling the wrapper that lets SteamVR use OpenHMD devices. https://github.com/ChristophHaag/SteamVR-OpenHMD

We should install some SteamVR software now. These are free.
steam://install/250820 SteamVR
steam://install/613220 Steam 360 Video Player
steam://install/630980 LEGO Batman: The Batmersive Experience
steam://install/450220 Overload Playable Teaser
Ideally, this should work with the headset and using the Steam Deck as a gamepad. We're limited to 3DoF without tracked controllers.

I'll be continuing to use the LGVR/ directory we made to consolidate everything.

Before we dive further, we should go ahead and set up the R100 with udev rules, so that we don't need root to enable.

1
2
3
4
5
sudo pacman -S python3
git clone https://gitlab.freedesktop.org/monado/utilities/xr-hardware.git xr-hw
cd xr-hw
make
sudo make install

Now we check perms.

ls -l /dev | grep hidraw
getfacl /dev/hidraw*

ls -l will tell us vaguely the details, but the + sign indicates they're part of an ACL, and thus, have more complex permissions than just "only root uses this". getfacl will list each device and should indicate that deck has rw permission.

Now to the fun stuff. Return to LGVR/ and...

1
2
3
4
5
6
7
8
git clone --recursive https://github.com/ChristophHaag/SteamVR-OpenHMD.git
rm -rf SteamVR-OpenHMD/subprojects/openhmd
cp -r LG-R100 SteamVR-OpenHMD/subprojects/openhmd
cd SteamVR-OpenHMD
mkdir build
cd build
cmake ..
make

If you're curious, we need to rm the openhmd subproject because the one included doesn't have our branch-specific changes that support the R100. If you built ChristophHaag's LG-R100-new branch, use that directory instead of LG-R100 when cping.

cd ..
./register.sh

With this, ~/LGVR/SteamVR-OpenHMD has just been set as the SteamVR plugin directory, existing plugins for Vive, Oculus, etc, have been disabled. Only devices that work with OpenHMD will work in SteamVR now. To undo this (if for some reason, you can use a different natively supported HMD on your Steam Deck) you can return to that directory, and run ./unregister.sh to restore the default plugins.

Now we need to finalize the settings to tell SteamVR we will use the R100 as a display with 3DoF tracking, and no tracked controllers, to instead set the Deck as a gamepad.
nano ~/.ohmd_config.txt and write in the following

1
2
3
4
hmddisplay 0
hmdtracker 0
leftcontroller -1
rightcontroller -1

Ctrl+X, hit Y, and enter/return.

Now we can start SteamVR in terminal.

OHMD_VENDOR_OVERRIDE=Oculus ~/.steam/steam/steamapps/common/SteamVR/bin/vrstartup.sh

It will ask you for superuser to finish setup. Accept, enter your password, and SteamVR will ask you to complete the room setup. Select Standing Only, calibrate, set height to 36 in and finish. Finally, close out of SteamVR, and in the terminal, do a quick Ctrl+C to fully stop the Bash script. Finally, in Steam, locate SteamVR, and open SteamVR's properties. Add OHMD_VENDOR_OVERRIDE=Oculus %command% to Launch Options.

You should now be ready to plug in the R100, launch SteamVR from Steam, and enjoy VR at a blistering... 30-40fps with very bad axis drift and incorrect pitch, yaw and roll. You'll also notice that your controls don't work a lick. Despite our best efforts, Valve's all but broken gamepad support within SteamVR, as it doesn't appear to hook with its own Steam Input APIs at all. Whether I set the desktop configuration to gamepad, set SteamVR to gamepad, connect a gamepad via bluetooth, toggle Xbox controller support in BPM, or anything of the like, it refuses to work.

At this point, there isn't much else you can do except gently rotate in home or dashboard. You'll have to navigate with the Steam client on your Deck screen to launch software. If you want to stop the rotation, you can nano ~/.ohmd_config.txt and change hmdtracker to -1 and just use the glasses as a glorified VR projection.

All of this has been focused on the LG R100s, but that doesn't mean you couldn't use OpenHMD in tandem with another headset. The problem is that OpenHMD's currently supported devices are not a simple one-cable solution like this. Much more work needs to be done to achieve that. Still, this is a stepping stone to more magic with the Deck. Here's hoping Linux support with SteamVR will continue to improve in the coming years as well.

Edit
Pub: 04 Sep 2022 07:17 UTC
Views: 630