Skip to content
Christoph Haag edited this page May 28, 2020 · 4 revisions

udev rules

On Linux, OpenHMD (and other XR runtimes like SteamVR and Monado) require direct access to the USB interface of HMDs. For this purpose, respective udev rules have to be installed. After installing udev rules with any method, udev has to be told to reload rules:

udevadm control --reload-rules
udevadm trigger

It might be necessary to re-plug the HMD, and if everything fails a reboot should do the trick.

xr-hardware

A well maintained and consistent set of udev rules for popular XR hardware can be found in xr-hardware.

xr-hardware has been packaged for these distributions:

On other distributions the udev rules from xr-hardware can be installed by copying 70-xrhardware.rules into /usr/lib/udev/rules.d/70-xrhardware.rules or running sudo make install.

Creation and manual installation of udev rules

If your HMD is not supported by xr-hardware or you want to create your own rules instead, here is how.

You can utilize these devices with hidapi via libusb:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2833", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/83-hmd.rules
udevadm control --reload-rules

or hidraw:

echo 'KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2833", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/83-hmd.rules
udevadm control --reload-rules

In this case the idVendor is 2833, which is the vendor ID from Oculus used for their HID devices. This can be replaced by any vendor to add permission to use those devices. The required ID can also be found when running lsusb and then looking at the vendor.

Ignoring Windows Mixed Reality Controller input on the desktop

Windows Mixed Reality Motion Controllers produce touchscreen events, which can cause spurious selections, window movement, and onscreen keyboard popups on the desktop when touching the touchpad. To avoid this, they can be blacklisted from libinput:

echo 'ENV{LIBINPUT_DEVICE_GROUP}=="5/45e/65b*", ENV{LIBINPUT_IGNORE_DEVICE}="1"' >> /etc/udev/rules.d/83-hmd.rules
udevadm control --reload-rules

Device list

If more than one ID is listed, this means multiple vendors have worked on a device and require all IDs to function properly.

Device ID
Oculus 2833
Vive 0bb4
28de
Deepoon 0483
Sony PSVR 054c
OSVR 1532
Pimax 4K 2833
0483
NOLO CV1 0483
Samsung GearVR 04E8
Samsung Odyssey+ 04e8
045e
HP Mixed Reality 03F0
Lenovo Mixed Reality 045e
DreamWorld DreamGlass AR 0483
Dell Visor 04b4
045e
Clone this wiki locally