thaytan / OpenHMD

Free and Open Source API and drivers for immersive technology.
Boost Software License 1.0
142 stars 11 forks source link

Can't access CV1 cameras without sudo #21

Closed hanaral closed 3 years ago

hanaral commented 3 years ago

Which means no steamVR testing without workarounds... Are there any updated permissions I need to setup to let my user and Steam access the cameras?

thaytan commented 3 years ago

I'm using the xrhardware rules on my system, which include:

ATTRS{idVendor}=="2833", ATTRS{idProduct}=="0211", TAG+="uaccess", ENV{ID_xrhardware}="1"

You'll need some variant of that in an /etc/udev/rules.d/ file

hanaral commented 3 years ago

@thaytan even with the xr-hardware rules I set up it seems to not want to do anything without sudo. I’ve added the extra bit in your rules to no avail, I’ll try installing the xr-hardware from git

Edit: OK so the headset rotation is picked up now, but I’m still curious as to why the sensor isn’t getting initialised by my user. Seems to work fine with sudo

Edit 2: Ok so the xr-hardware from source allows the OpenGL and cli test to pick up rotation and tracking without sudo

However building the entire SteamVR-OpenHMD project (obv. with your correspondace-search branch) with cmake causes steamVR to only track with rotation, but with meson it doesn’t detect the headset at all.

thaytan commented 3 years ago

Can you post the output of your SteamVR-OpenHMD configure / build?

hanaral commented 3 years ago

Can you post the output of your SteamVR-OpenHMD configure / build?

Here's the output from meson, it never seems to generate the required /build/bin folder

han@elementary-os:~/SteamVR-OpenHMD$ meson build
The Meson build system
Version: 0.56.0
Source dir: /home/han/SteamVR-OpenHMD
Build dir: /home/han/SteamVR-OpenHMD/build
Build type: native build
Project name: steamvr-openhmd
Project version: 0.0.1
C++ compiler for the host machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the host machine: c++ ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64

|Executing subproject openhmd method meson 
|
|Project name: openhmd
|Project version: 0.3.0
|C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
|C linker for the host machine: cc ld.bfd 2.34
|C++ compiler for the host machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
|C++ linker for the host machine: c++ ld.bfd 2.34
|Library m found: YES
|Found pkg-config: /usr/bin/pkg-config (0.29.1)
|Run-time dependency hidapi-libusb found: YES 0.9.0
|Run-time dependency threads found: YES
|Run-time dependency libusb-1.0 found: YES 1.0.23
|Run-time dependency opencv4 found: YES 4.2.0
|Build targets in project: 3
|Subproject openhmd finished.

Dependency threads found: YES unknown (cached)
Build targets in project: 4

steamvr-openhmd 0.0.1

  Subprojects
    openhmd: YES

Found ninja-1.10.0 at /usr/bin/ninja
han@elementary-os:~/SteamVR-OpenHMD$ cd build/ && ninja
[18/59] Compiling C object subprojects/openhmd/libopenhmd.a.p/src_drv_oculus_rift_rift-tracker.c.o
../subprojects/openhmd/src/drv_oculus_rift/rift-tracker.c: In function ‘rift_tracker_free’:
../subprojects/openhmd/src/drv_oculus_rift/rift-tracker.c:218:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
  218 |    if (dev->debug_metadata != NULL)
      |    ^~
../subprojects/openhmd/src/drv_oculus_rift/rift-tracker.c:220:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
  220 |   ohmd_destroy_mutex (dev->device_lock);
      |   ^~~~~~~~~~~~~~~~~~
[53/59] Compiling C++ object driver_openhmd.so.0.0.1.p/driverlog.cpp.o
In file included from ../driverlog.h:9,
                 from ../driverlog.cpp:3:
../subprojects/openvr/openvr_driver.h:2126:8: warning: ‘class vr::IVRSettings’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2126 |  class IVRSettings
      |        ^~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2590:7: warning: ‘class vr::ITrackedDeviceServerDriver’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2590 | class ITrackedDeviceServerDriver
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2640:8: warning: ‘class vr::IVRDisplayComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2640 |  class IVRDisplayComponent
      |        ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2687:8: warning: ‘class vr::IVRDriverDirectModeComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2687 |  class IVRDriverDirectModeComponent
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2751:8: warning: ‘class vr::ICameraVideoSinkCallback’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2751 |  class ICameraVideoSinkCallback
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2760:8: warning: ‘class vr::IVRCameraComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2760 |  class IVRCameraComponent
      |        ^~~~~~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../driverlog.cpp:3:
../subprojects/openvr/openvr_driver.h:2803:7: warning: ‘class vr::IVRDriverContext’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2803 | class IVRDriverContext
      |       ^~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2816:7: warning: ‘class vr::IServerTrackedDeviceProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2816 | class IServerTrackedDeviceProvider
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2862:7: warning: ‘class vr::IVRWatchdogProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2862 | class IVRWatchdogProvider
      |       ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2878:7: warning: ‘class vr::IVRCompositorPluginProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2878 | class IVRCompositorPluginProvider
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../driverlog.cpp:3:
../subprojects/openvr/openvr_driver.h:2939:7: warning: ‘class vr::IVRProperties’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2939 | class IVRProperties
      |       ^~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../driverlog.cpp:3:
../subprojects/openvr/openvr_driver.h:3364:8: warning: ‘class vr::IVRDriverInput’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3364 |  class IVRDriverInput
      |        ^~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../driverlog.cpp:3:
../subprojects/openvr/openvr_driver.h:3399:7: warning: ‘class vr::IVRDriverLog’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3399 | class IVRDriverLog
      |       ^~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3422:7: warning: ‘class vr::IVRServerDriverHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3422 | class IVRServerDriverHost
      |       ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3472:7: warning: ‘class vr::IVRCompositorDriverHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3472 | class IVRCompositorDriverHost
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3544:7: warning: ‘class vr::IVRWatchdogHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3544 | class IVRWatchdogHost
      |       ^~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3572:8: warning: ‘class vr::IVRVirtualDisplay’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3572 |  class IVRVirtualDisplay
      |        ^~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3594:7: warning: ‘class vr::IVRResources’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3594 | class IVRResources
      |       ^~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3644:8: warning: ‘class vr::IVRIOBuffer’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3644 |  class IVRIOBuffer
      |        ^~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3673:7: warning: ‘class vr::IVRDriverManager’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3673 | class IVRDriverManager
      |       ^~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3725:8: warning: ‘class vr::IVRDriverSpatialAnchors’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3725 |  class IVRDriverSpatialAnchors
      |        ^~~~~~~~~~~~~~~~~~~~~~~
[54/59] Compiling C++ object driver_openhmd.so.0.0.1.p/driver_openhmd.cpp.o
In file included from ../driverlog.h:9,
                 from ../ohmd_config.h:4,
                 from ../driver_openhmd.cpp:3:
../subprojects/openvr/openvr_driver.h:2126:8: warning: ‘class vr::IVRSettings’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2126 |  class IVRSettings
      |        ^~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2590:7: warning: ‘class vr::ITrackedDeviceServerDriver’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2590 | class ITrackedDeviceServerDriver
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2640:8: warning: ‘class vr::IVRDisplayComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2640 |  class IVRDisplayComponent
      |        ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2687:8: warning: ‘class vr::IVRDriverDirectModeComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2687 |  class IVRDriverDirectModeComponent
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2751:8: warning: ‘class vr::ICameraVideoSinkCallback’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2751 |  class ICameraVideoSinkCallback
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2760:8: warning: ‘class vr::IVRCameraComponent’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2760 |  class IVRCameraComponent
      |        ^~~~~~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../ohmd_config.h:4,
                 from ../driver_openhmd.cpp:3:
../subprojects/openvr/openvr_driver.h:2803:7: warning: ‘class vr::IVRDriverContext’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2803 | class IVRDriverContext
      |       ^~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2816:7: warning: ‘class vr::IServerTrackedDeviceProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2816 | class IServerTrackedDeviceProvider
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2862:7: warning: ‘class vr::IVRWatchdogProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2862 | class IVRWatchdogProvider
      |       ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:2878:7: warning: ‘class vr::IVRCompositorPluginProvider’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2878 | class IVRCompositorPluginProvider
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../ohmd_config.h:4,
                 from ../driver_openhmd.cpp:3:
../subprojects/openvr/openvr_driver.h:2939:7: warning: ‘class vr::IVRProperties’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 2939 | class IVRProperties
      |       ^~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../ohmd_config.h:4,
                 from ../driver_openhmd.cpp:3:
../subprojects/openvr/openvr_driver.h:3364:8: warning: ‘class vr::IVRDriverInput’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3364 |  class IVRDriverInput
      |        ^~~~~~~~~~~~~~
In file included from ../driverlog.h:9,
                 from ../ohmd_config.h:4,
                 from ../driver_openhmd.cpp:3:
../subprojects/openvr/openvr_driver.h:3399:7: warning: ‘class vr::IVRDriverLog’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3399 | class IVRDriverLog
      |       ^~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3422:7: warning: ‘class vr::IVRServerDriverHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3422 | class IVRServerDriverHost
      |       ^~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3472:7: warning: ‘class vr::IVRCompositorDriverHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3472 | class IVRCompositorDriverHost
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3544:7: warning: ‘class vr::IVRWatchdogHost’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3544 | class IVRWatchdogHost
      |       ^~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3572:8: warning: ‘class vr::IVRVirtualDisplay’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3572 |  class IVRVirtualDisplay
      |        ^~~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3594:7: warning: ‘class vr::IVRResources’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3594 | class IVRResources
      |       ^~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3644:8: warning: ‘class vr::IVRIOBuffer’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3644 |  class IVRIOBuffer
      |        ^~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3673:7: warning: ‘class vr::IVRDriverManager’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3673 | class IVRDriverManager
      |       ^~~~~~~~~~~~~~~~
../subprojects/openvr/openvr_driver.h:3725:8: warning: ‘class vr::IVRDriverSpatialAnchors’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 3725 |  class IVRDriverSpatialAnchors
      |        ^~~~~~~~~~~~~~~~~~~~~~~
../driver_openhmd.cpp:80:7: warning: base class ‘class vr::IVRWatchdogProvider’ has accessible non-virtual destructor [-Wnon-virtual-dtor]
   80 | class CWatchdogDriver_OpenHMD : public IVRWatchdogProvider
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../driver_openhmd.cpp:160:7: warning: base class ‘class vr::ITrackedDeviceServerDriver’ has accessible non-virtual destructor [-Wnon-virtual-dtor]
  160 | class COpenHMDDeviceDriverController : public vr::ITrackedDeviceServerDriver /*, public vr::IVRControllerComponent */ {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../driver_openhmd.cpp:447:7: warning: base class ‘class vr::ITrackedDeviceServerDriver’ has accessible non-virtual destructor [-Wnon-virtual-dtor]
  447 | class COpenHMDDeviceDriver final : public vr::ITrackedDeviceServerDriver, public vr::IVRDisplayComponent
      |       ^~~~~~~~~~~~~~~~~~~~
../driver_openhmd.cpp:447:7: warning: base class ‘class vr::IVRDisplayComponent’ has accessible non-virtual destructor [-Wnon-virtual-dtor]
../driver_openhmd.cpp:996:7: warning: base class ‘class vr::IServerTrackedDeviceProvider’ has accessible non-virtual destructor [-Wnon-virtual-dtor]
  996 | class CServerDriver_OpenHMD: public IServerTrackedDeviceProvider
      |       ^~~~~~~~~~~~~~~~~~~~~
[59/59] Linking target subprojects/openhmd/openhmd_unittests
han@elementary-os:~/SteamVR-OpenHMD/build$ 

And the output from CMake, which generates the required bin folder, hence why it works (albeit without rotational tracking)

han@elementary-os:~/SteamVR-OpenHMD$ mkdir build
han@elementary-os:~/SteamVR-OpenHMD$ cd build
han@elementary-os:~/SteamVR-OpenHMD/build$ cmake ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Checking for module 'libusb-1.0'
--   Found libusb-1.0, version 1.0.23
-- Found OpenCV: /usr (found version "4.2.0") 
-- Found HIDAPI: /usr/local/lib/x86_64-linux-gnu/libhidapi.so  
SteamVR plugin path: /home/han/SteamVR-OpenHMD/build/bin/linux64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/han/SteamVR-OpenHMD/build
han@elementary-os:~/SteamVR-OpenHMD/build$ make
Scanning dependencies of target openhmd
[  1%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/openhmd.c.o
[  3%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/platform-win32.c.o
[  5%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_dummy/dummy.c.o
[  7%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/omath.c.o
[  9%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/platform-posix.c.o
[ 11%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/fusion.c.o
[ 13%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/shaders.c.o
[ 15%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/correspondence_search.c.o
[ 17%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift.c.o
[ 19%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-hmd-radio.c.o
[ 21%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/packet.c.o
[ 23%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor.c.o
[ 25%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/ext_deps/nxjson.c.o
[ 27%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/led_search.c.o
[ 29%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-esp570.c.o
[ 31%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-esp770u.c.o
[ 33%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-flicker.c.o
[ 35%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-maths.c.o
[ 37%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-debug-draw.c.o
[ 39%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-mt9v034.c.o
[ 41%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-pose-helper.c.o
[ 43%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-ar0134.c.o
[ 45%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-uvc.c.o
[ 47%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-sensor-blobwatch.c.o
[ 49%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift/rift-tracker.c.o
[ 50%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift_s/rift-s.c.o
[ 52%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift_s/rift-s-controller.c.o
[ 54%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift_s/rift-s-firmware.c.o
[ 56%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift_s/rift-s-protocol.c.o
[ 58%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_oculus_rift_s/rift-s-radio.c.o
[ 60%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_deepoon/deepoon.c.o
[ 62%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_deepoon/packet.c.o
[ 64%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_wmr/wmr.c.o
[ 66%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_wmr/packet.c.o
[ 68%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_psvr/psvr.c.o
[ 70%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_psvr/packet.c.o
[ 72%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_htc_vive/vive.c.o
[ 74%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_htc_vive/packet.c.o
[ 76%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_nolo/nolo.c.o
[ 78%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_nolo/packet.c.o
[ 80%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_3glasses/xgvr.c.o
[ 82%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_3glasses/packet.c.o
[ 84%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_vrtek/vrtek.c.o
[ 86%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_vrtek/packet.c.o
[ 88%] Building C object subprojects/openhmd/CMakeFiles/openhmd.dir/src/drv_external/external.c.o
[ 90%] Linking C static library libopenhmd.a
[ 90%] Built target openhmd
Scanning dependencies of target driver_openhmd
[ 92%] Building CXX object CMakeFiles/driver_openhmd.dir/driverlog.cpp.o
[ 94%] Building CXX object CMakeFiles/driver_openhmd.dir/driver_openhmd.cpp.o
[ 96%] Linking CXX shared library bin/linux64/driver_openhmd.so
[ 96%] Built target driver_openhmd
Scanning dependencies of target simple
[ 98%] Building C object subprojects/openhmd/examples/simple/CMakeFiles/simple.dir/simple.c.o
[100%] Linking C executable simple
[100%] Built target simple
han@elementary-os:~/SteamVR-OpenHMD/build$ 
thaytan commented 3 years ago

Ah right - with the meson build you need to run install_files_to_build.sh manually after compiling to copy the files into the bin dir.

It's possible to get meson to do that, but noone has spent the time to implement it yet.

hanaral commented 3 years ago

Alright, but steamvr seems to not detect any headset still. Even with Cmake the camera light comes on, yet with meson both headset and camera look dead (the demos work fine)

Edit: @thaytan Holy sh*t I figured it out. Your script doesn’t move the driver_openhmd.so to the right place - it’s supposed to be in /bin/linux64/ , not actually be /bin/linux64 . The things a typo can do...

thaytan commented 3 years ago

Nice! Want to make an MR for that? :)

hanaral commented 3 years ago

@thaytan done