ValveSoftware / openvr

OpenVR SDK
http://steamvr.com
BSD 3-Clause "New" or "Revised" License
6.09k stars 1.28k forks source link

problem with hellovr_opengl on HTC Vive in Ubuntu #232

Open nemanja-rakicevic opened 8 years ago

nemanja-rakicevic commented 8 years ago

Hello, I'm using Ubuntu 14.04, GPU: AMD Radeon HD 7450 and trying to make HTC Vive work. I installed in the following order: SDL, OpenGL, (which were needed for) openVR (Haag's branch) and finally Steam and SteamVR in the tools section. I have been following instructions http://www.vronlinux.com/articles/adventures-with-openvr-and-the-vive-on-linux.8. I manage to connect everything and get a green light on the HMD, but when I run the $steamvr/bin/linux64/vrcmd first I get just a lot of broken pipes and "VR_IsHmdPresent returned false to indicate that there are no attached HMDs." (I do not have the _linux files) When I try running the $steamvr/bin/linux64/vrserver --keepalive command the terminal just freezes. Finally, with $openvr/build/samples/hellovr_opengl/run_hellovr.sh I get a pop-up saying " unable to init VR runtime: hmd nor found presence failed (126)"

Also, I am unable to make the helloworldoverlay sample, as I get: `In file included from main.cpp:2:0: openvroverlaycontroller.h:19:32: fatal error: QtGui/QOpenGLContext: No such file or directory

include <QtGui/QOpenGLContext>

`

I'm not sure if I've installed SteamVR properly because when I try to Run, the pop-up closes immediately. Also in my ~/.local/share/Steam/steamapps/common/ I have only SteamVR folder, no OpenVR.

I don't know what is wrong, should I maybe consider installing OSVR?

Thank you.

awesomebytes commented 7 years ago

I'm on the same boat, I've been writting my stuff on this issue: https://github.com/robosavvy/vive_ros/issues/10

kkevlar commented 7 years ago

Bump. I'm having the same issue. Have you had any progress on fixing this @nemanja-rakicevic ? If I wanted to use OSVR instead, what direction/guide would you point me towards?

Thanks

nemanja-rakicevic commented 7 years ago

Yes, I got a PC with a better GPU... Regarding the :

I'm not sure if I've installed SteamVR properly because when I try to Run, the pop-up closes immediately. Also in my ~/.local/share/Steam/steamapps/common/ I have only SteamVR folder, no OpenVR.

just change this in the steamvr.sh file so it can find the libraries.

Hope this helps!

kkevlar commented 7 years ago

For the record, I fixed this problem too by upgrading my machine's GPU.

kubelvla commented 7 years ago

Hi, I was using HTC vive for robot tracking in ROS for almost a year until yesterday, when Windows killed my dual boot setup :( (Ubuntu 14.04, ROS Indigo, robosavvy, GTX1070) I had to reinstall the system and the identical setup does not work anymore... My observation is that in Steam, when you launch the SteamVR, you get an error, of course :/ but the small monitoring window pops up anyway and shows all components connected, you can even check firmware and vibrate the controllers... Yet, the vrcmd tells the no HDM error anyway. When it was working, it actually shown nothing in the goggles, but the tracking worked very well. Let's try to solve this, I need my "Cheap Vicon" tracking :D

-- EDIT: Ok, installed Ubuntu 16.04, new Nvidia drivers, beta SteamVR. It's silly. I even get the SteamVR running, the goggles work and show the SteamVR home environment, the controllers show up and work. Yet, the ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcmd still gives the "No HMD" error

kkevlar commented 7 years ago

My observation is that in Steam, when you launch the SteamVR, you get an error, of course :/ but the small monitoring window pops up anyway and shows all components connected, you can even check firmware and vibrate the controllers

This has been my experience with SteamVR on Linux too. @kubelvla, are you getting any error message number/id with the "no HMD" error? What is the literal text of the error?

kubelvla commented 7 years ago

So, I'm not entirely sure whether the command vrcmd is supposed to be launched inside the steam runtime or not: outside runtime:

robot@asimov:~$ .local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcmd VR_IsHmdPresent returned false to indicate that there are no attached HMDs.

inside runtime:

robot@asimov:~$ .local/share/Steam/ubuntu12_32/steam-runtime/run.sh .local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcmd terminate called after throwing an instance of 'std::bad_cast' what(): std::bad_cast Aborted (core dumped)

Anyway, when I look inside VR_IsHmdPresent definition, there is

EVRInitError err = VR_LoadHmdSystemInternal(); if( err != VRInitError_None ) return false;

So they're doing some other way of VR_Init(...) and check if it fails or not.

I've dug little more into the problem and tried to see where our code for tracking in ROS fails. When launched by the original script, which manually set LD_LIBRARY_PATH, the VR_Init() function returns error 102:

VRInitError_Init_VRClientDLLNotFound = 102

So it comes back to the problem of invalid runtime. For our ROS application, when we launch it inside the runtime, we get linking error because the runtime uses different version of libstdc++.so.6 library (used by some component of ROS). We haven't built it inside the runtime with all the chroot magic, so actually it is not so surprising. Still, what surprises me is that even the original vrcmd tool run inside the runtime gives the 'std::bad_cast' exception.

Plagman commented 7 years ago

It's definitely intended to run from the runtime, or vrclient.so might fail to load due to missing dependencies. As you found it seems like there's a separate crash issue affecting vrcmd when running from the runtime.