Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Linux support #4
Comments
rpavlik
added the
enhancement
label
Mar 23, 2016
|
I tested this out. Configuration with cmake worked fine, but compiling did not work (as expected). I thought you might be interested in the error received:
For convenience, the error comes from here. I am interested in getting this to work, but I am not experienced with C++. If there is anything I can help with (or if someone wants to point me in the right direction to implement it myself), let me know. |
|
I got this to compile by commenting out some stuff in the openvr header. If I can figure out why that if block isn't working, I will submit a pull request to them. My changes can be found in this github gist. In addition, the install target should probably be adjusted on Linux. osvr_server_config.vive.sample.json, README.md, and LICENSE are installed in Unfortunately, it does not yet run, though I have not looked into it further. Here is the output:
Edit: libaitcamlib.so is from SteamVR. Adding it to the LD_LIBRARY_PATH fixes this error. The new error appears to be a mismatch between the SteamVR header and the SteamVR driver. May be my fault, will try to work this out. |
|
So I fixed my own library issues as mentioned in my previous comment. The problem after that is definitely a version mismatch, as right now OpenVR is at version 0.9.21 and the submodule in this project is at 0.9.19. The following is the output from running it:
After updating the submodule with my workaround patch, compiling fails. Looks like some changes need to be made for compatibility with the new version:
As before, I will look into this further when I get the chance. Edit: Just noticed that some of the stuff I reported was already known. Maybe, once it is working, the readme should be updated to include this information. In any case, OpenVR needs to be updated (probably on Windows also). |
|
To update to the latest version, what is minimally needed is to have all calls to GetTrackedDeviceDriver and FindTrackedDeviceDriver to have only one argument. Basically, delete the version from all those calls and it compiles against the latest OpenVR. See details on the 0.9.21 commit message. After doing this, I was able to compile this and run the server with it without any fatal errors, but I do not understand how to use ViveDisplayExtractor (is there documentation?) and it appears to not track. Edit: I created a pull request (#12) that updates to the latest OpenVR and should restore functionality on Windows. |
|
See the OSVR docs repo for documentation for the overall system that On Fri, Jun 3, 2016, 1:21 PM Andrew Conrad notifications@github.com wrote:
Latest news and blog posts (subscribe here June 2: Sensics and Oasis VR create a unique network of VR facilities June 1: VRguy podcast: CSO of Ergoneers on why eye trackers are expensive May 27: How binocular overlap impacts horizontal field of view |
her001
referenced
this issue
Jun 4, 2016
Closed
Could not get interface from native SteamVR driver - likely version mismatch. SteamVR error code: 105 #11
luehm
commented
Jun 16, 2016
•
|
@her001 I've been fiddling around with your openvr-0.9.21 branch the last few days and have been successful in compiling/running/detecting the HTC Vive. I've also been able to run the ViveDisplayExtractor and generate (what I believe to be) usable .json files. However, I'm having issues having the server properly read/open said files. I have checked permissions, absolute paths, etc with no dice. Have you been having any luck? EDIT: Ok, so I was able to fix the previous issues by adding absolute paths to the config file. I'm now faced with vrpn errors when trying to run a client program (or even osvr_print_tree). Anybody seen errors like this? I'd love to investigate further, but haven't been able to locate helpful log files yet... Further edit: I've been able to get OSVRTrackerViewer to run with osvr_server and can successfully track to two controllers. Still not able to track the HMD. Ideas? |
bluque
commented
Sep 27, 2016
|
@luehm hi! did you finally get the HMD tracking to work? I'm experiencing the same problem... Got the OSVRTrackerViewer to run and track the two controllers but still not getting anything from the HMD... When running the osvr_server it detects the HMD and assigns it the ID 0, but then I get a lot of ioctl(GFEATURE): Broken pipe messages (I'm guessing you got something similar when you mentioned "vrpn errors"?) |
|
I've had a number of people get this to work (see #10 for some details on getting it to work) and was going to close this issue when I saw there was a comment from just an hour ago... note that the latest steamvr does break it again (see #21). VRPN errors wouldn't be ioctl errors - when connecting and disconnecting apps (like print tree) there are things that look like errors then subsequently say "this is usually an app disconnecting". Nothing to worry about there. ioctl errors suggest that it might not like your USB controller. The hardware is a bit picky - on Windows, it actually mattered whether I had the MS or Fresco Logic XHCI driver installed for the controller I installed dedicated to the Vive, and if I had the MS driver installed, the failure mode was "usually won't pair with one or both wireless controllers and would report back the unix epoch as the firmware date for the wireless receiver". (And, I needed a dedicated controller to deal with all the USB endpoints in the HMD itself: putting it on the on-board Intel controller caused lots of "out of USB resources" errors and failures to enumerate, which also might be your issue) In any case, doesn't sound OSVR-related, so there's probably not too much more I can do to help, sorry to say. |
bluque
commented
Sep 27, 2016
|
@rpavlik thanks for your quick response! What seems weird to me is that I am getting the tracking data from the controllers... and I'm assuming it comes from Vive's link box, same as the headset data...? I will check my steamvr version but I think it's the latest, so I hope changing that might fix something. If not, I'm pretty sure it's something about the usb, I will look it up. Thanks again! |
mncharity
commented
Sep 27, 2016
|
I use driver_lighthouse.so directly (no OSVR-Vive), on several motherboards and USB cards, with several good USB chipsets. And I always get the ioctl(GFEATURE): Broken pipe messages. But HMD and controller (wired and wireless) tracking and input work, so they've been only a visual annoyance, but not a problem. |
Conzar
commented
Oct 12, 2016
|
The developer of vrui wrote this article explaining how he was able to get the htc vive's input system working under linux! Hopefully, this might be useful to the devs? |
|
I was the one who told the developer of VRUI that stuff... :D This bug has trailed fairly far off course - OSVR-Vive has been confirmed to work on Linux, it's just not well documented. Perhaps it's best to open a new bug for documentation? |
Conzar
commented
Oct 12, 2016
•
|
He mentioned he worked with you to produce the doc and eventually implement the solution. Sorry for the redundancy. |
rpavlik commentedMar 23, 2016
Most of the driver is cross-platform, however, some code in:
is necessarily platform-specific (paths, details of loading dynamic libraries at runtime) and was only initially implemented for Windows. Valve is shipping SteamVR lighthouse drivers for Linux 64-bit at this time.