Jump to content

HTC Vive Trackers with SteamVR on Linux (using HMD Null Driver)


Recommended Posts


i want to use a HTC Vive Tracker to track the head pose of a user. I got the full HTC Vive Pro [1] kit, but i want to omit the HMD itself. To do so, i activated the HMD Null driver in steam.vrsettings and in default.vrsettings in the null driver settings directory. So far this works. My system is a Kubuntu 23.04 OS, with a NVidia GPU. This is the output of the SteamVR system report:

SteamVR Version 1.26.7 (1690491041)
Steam:    Public (beta)
Tracking:    null driver for HMD
OS:    Linux version 6.2.0-26-generic (buildd@lcy02-amd64-091) (x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-17ubuntu1) 12.2.0, GNU ld (GNU Binutils for Ubuntu) 2.40) #26-Ubuntu SMP PREEMPT_DYNAMIC Mon Ju (
Direct Mode Graphics:    Unknown ()

Admin:    Yes
Async Reprojection:    Disabled
Performance drops:    17/1 5/2 4/3 0/4 16847/16901
User IPD (m):    0.063

Displays - Extended Display

Now i have some questions:

1. How is the pairing information stored?
 - i see entries in "/home/tt/.steam/steam/config/lighthouse/lighthousedb.json" as well as in folders next to this file. however, if i use the tool "/home/tt/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_console" with "unpairall", the device (tracker as well as controller) automatically reconnects when i push the connection buttons, but this is not reflected in the SteamVR window itself. where can i look for debugging infos about the USB devices that are really really accepted in the SteamVR runtime (due to my observation i mentioned in the last sentence)?

2. Why does it run better on Ubuntu, but not on Fedora or vanilla Debian? i can't get the pairing done at all on another distribution...

3. When do i have to run Steam in background? I want to use (even though deprecated) OpenVR, through pyopenvr. Sometimes there is a message that libcurl or libpangoft2 is missing.

Greetings, Thomas Thron

[1] https://www.vive.com/de/product/vive-pro/

Link to comment
Share on other sites

Howdy @throni3,

I'm unsure what the issue would be, but I would guess that config files and services can be in different places on different distros. Or maybe there's a driver incompatibility or a dependency like libcurl or libpangoft2 not being satisfied. I am unsure who runs this configuration internally, but is an interesting one!  Information about steam config files/setup might be more readily available on the steamvr linux forums or similar https://steamcommunity.com/app/250820/discussions/5/

Steamvr is needed for setup and integration. The device is a part of the steamvr suite, which also captures other parts of the setup like boundary, onboarding, rendering, user interface and managing other devices as well. I think there are some ways that are fairly unsupported for getting things to work without steamvr, but those are typically for very narrow use cases to my understanding.

There may be some way to get this sort of setup in another way by using vive trackers and/or third party accessories. We do expose electrical pins that can simulate much of the controller, which might be another approach apart from side-stepping steamvr.


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...