-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to Use #32 on Linux #33
Comments
Hi George, |
Yes -- that worked. Running the newly compiled |
Update: Still Unable to Use #32 on LinuxRunning Arch Linux (with SteamVR fully updated and launchable), I successfully compiled #32, and then symlinked $ cd /usr/lib/osvr-plugins0
$ ls -l com_osvr_Vive.so
com_osvr_Vive.so -> /home/george/OSVR-Vive/build/lib/osvr-plugins-0/com_osvr_Vive.so however, I am unable to get $ ViveDisplayExtractor
[DisplayExtractor] Error in first-stage Vive driver startup. Exiting After ignoring this and assembling an OSVR config from the $ sudo osvr_server default_config_from_repo.json
June 17 10:42:01.619 info [OSVR]: Logging for /usr/bin/osvr_server
June 17 10:42:01.619 info [OSVR Server]: Using config file default_config_from_repo.json from command line argument.
June 17 10:42:01.619 info [OSVR Server]: Attempting to load config file 'default_config_from_repo.json'.
June 17 10:42:01.619 info [OSVR Server]: Constructing server as configured...
June 17 10:42:01.619 info [OSVR Server]: Loading auto-loadable plugins...
June 17 10:42:01.664 info [OSVR Server]: Loading plugins...
June 17 10:42:01.664 info [OSVR Server]: Instantiating configured drivers...
June 17 10:42:01.664 info [OSVR Server]: Display descriptor found and parsed from config file.
June 17 10:42:01.664 info [OSVR Server]: RenderManager config found and parsed from the config file.
June 17 10:42:01.664 info [OSVR Server]: Triggering automatic hardware detection...
June 17 10:42:01.664 info [OSVR Server]: Registering shutdown handler...
June 17 10:42:01.664 info [OSVR Server]: Starting server mainloop: OSVR Server is ready to go!
June 17 10:42:01.664 info [OSVR Server]: Performing hardware auto-detection.
June 17 10:42:01.701 info [OSVR-Vive]: Could not open driver.
June 17 10:42:01.701 info [OSVR Server]: Sent path tree to clients.
# after launching RenderManagerOpenGLCoreExample:
vrpn_Endpoint::getOneTCPMessage: Can't read header (this is normal when a connection is dropped)
vrpn: TCP handling failed, dropping connection (this is normal when a connection is dropped) and then am unable to launch $ RenderManagerOpenGLCoreExample
June 17 10:42:43.504 info [OSVR]: Logging for /usr/bin/RenderManagerOpenGLCoreExample
June 17 10:42:43.504 info [OSVR: com.osvr.renderManager.openGLExample]: OSVR client context initialized for com.osvr.renderManager.openGLExample
June 17 10:42:43.505 info [OSVR: com.osvr.renderManager.openGLExample]: Got connection to main OSVR server
June 17 10:42:43.540 info [OSVR: com.osvr.renderManager.openGLExample]: Connected 0 of 0 unconnected paths successfully
June 17 10:42:43.541 info [OSVR: com.osvr.renderManager.openGLExample]: Connection process took 36ms: have connection to server, have path tree
June 17 10:42:43.541 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Common/ClientInterface.cpp:38: Interface initialized for /controller/left/1
June 17 10:42:43.542 info [OSVR: com.osvr.renderManager.openGLExample]: Could not resolve source for /controller/left/1
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Common/ClientInterface.cpp:38: Interface initialized for /controller/right/1
June 17 10:42:43.542 info [OSVR: com.osvr.renderManager.openGLExample]: Could not resolve source for /controller/right/1
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Common/ClientInterface.cpp:38: Interface initialized for /me/head
June 17 10:42:43.542 info [OSVR: com.osvr.renderManager.openGLExample]: Could not resolve source for /me/head
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Common/ClientInterface.cpp:38: Interface initialized for /me/head
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Common/ClientInterface.cpp:38: Interface initialized for /me/head
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/Client/DisplayConfig.cpp:195: Display: HTC Vive/Vive PRE [Display descriptor note: This is a sample descriptor file only - please follow the instructions to use the ViveDisplayExtractor to generate a correct one for your device!]
June 17 10:42:43.542 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/ClientKit/DisplayC.cpp:47: Created an OSVR_DisplayConfigObject!
June 17 10:42:43.742 error [createRenderManager]: Got Display info from server (ignore earlier errors that occured while we were waiting to connect)
OSVRDisplayConfiguration::parse(): Using rgb point sample distortion.
OSVRDisplayConfiguration::parse(): Reading and parsing JSON in external RGB point samples file /usr/share/osvrcore/displays/HTC_Vive_meshdata.json
OSVRDisplayConfiguration::parse(): File read and JSON parse complete.
June 17 10:42:43.750 info [createRenderManager]: Display descriptor reports vendor as HTC
June 17 10:42:43.750 info [createRenderManager]: Adding direct mode candidate PNPID HVR described as HTC
June 17 10:42:43.750 error [createRenderManager]: OpenGL/Direct3D Interop not compiled in
Could not create RenderManager
June 17 10:42:43.750 info [OSVR: com.osvr.renderManager.openGLExample]: OSVR client context shut down for com.osvr.renderManager.openGLExample
June 17 10:42:43.750 info [OSVR]: /tmp/yaourt-tmp-george/aur-osvr-core-git/src/osvr-core/src/osvr/ClientKit/DisplayC.cpp:50: OSVR_DisplayConfigObject destructor Finally: launching |
I wonder if our issues have the same origin, my Server logs the following:
Still, same error as yours
|
You're probably using a rendermanager config with direct mode enabled. In osvr_server_config.vive.sample.json you can just use the standard extended mode config:
|
@ChristophHaag I can confirm changing to extended mode allows, i.e., |
Yes, your vive plugin prints
It should do this before the block that prints "Could not open driver":
so for some reason it doesn't find the Vive driver. For me it prints
It's probably looking in the path specified in ~/.openvr/openvrpaths.vrpath |
@ChristophHaag : Can you post the contents of your Here is mine: {
"runtime" : [ "/home/george/.local/share/Steam/SteamApps/common/SteamVR" ],
"config" : [ "/home/george/.local/share/Steam/config" ],
"log" : [ "/home/george/.local/share/Steam/logs" ]
} |
It's this one: https://haagch.frickel.club/files/openvrpaths.vrpath.txt, looks just like yours. If you have the file ~/.local/share/Steam/SteamApps/common/SteamVR/drivers/lighthouse/bin/linux64/driver_lighthouse.so and it looks okay then I don't know what the problem is. |
I can confirm that I also have Weird. |
I also found {
"config" : [ "/home/george/.local/share/Steam/config" ],
"external_drivers" : null,
"jsonid" : "vrpathreg",
"log" : [ "/home/george/.local/share/Steam/logs" ],
"runtime" : [
"/home/george/steamcmd/steamapps/common/SteamVR/",
"/home/george/steamcmd/steamapps/common/SteamVR",
"/home/george/.local/share/Steam/steamapps/common/SteamVR/",
"/home/george/.local/share/Steam/steamapps/common/SteamVR"
],
"version" : 1
}
However, after changing this to the usual contents reported above: {
"runtime" : [ "/home/george/.local/share/Steam/SteamApps/common/SteamVR" ],
"config" : [ "/home/george/.local/share/Steam/config" ],
"log" : [ "/home/george/.local/share/Steam/logs" ]
} ...the original "Could not open driver." error persists. |
I was hoping someone from OSVR would know more about this. It looks like something there is going wrong and I would probably start investigating at these lines... https://github.com/OSVR/OSVR-Vive/blob/master/FindDriver.cpp#L217 |
@georgewsinger ,
|
{
"runtime" : [ "/home/george/.local/share/Steam/SteamApps/common/SteamVR" ],
"config" : [ "/home/george/.local/share/Steam/config" ],
"log" : [ "/home/george/.local/share/Steam/logs" ]
}
$ tree /home/george/.local/share/Steam/config
/home/george/.local/share/Steam/config
├── appconfig.json
├── avatarcache
│ └── 76561198322831683.png
├── chaperone_info.vrchap
├── config.vdf
├── DialogConfig.vdf
├── htmlcache
│ ├── Cache
│ │ ├── <truncated>
│ │ └── index
│ ├── Cookies
│ ├── Cookies-journal
│ └── Visited Links
├── lighthouse
│ ├── lhr-9d8ea690
│ │ ├── config.json
│ │ └── userdata
│ │ ├── Green_46GA165G007128_mura_analyzes.mc
│ │ └── Green_46HA165J006869_mura_analyzes.mc
│ ├── lhr-f7fedd45
│ │ └── config.json
│ ├── lhr-ff421d45
│ │ └── config.json
│ └── lighthousedb.json
├── loginusers.vdf
├── oculus
├── oculus_legacy
├── steamapps.vrmanifest
├── steamvr.vrsettings
├── vrappconfig
│ ├── openvr.tool.steamvr_environments.vrappconfig
│ ├── openvr.tool.steamvr_room_setup.vrappconfig
│ └── openvr.tool.steamvr_tutorial.vrappconfig
└── widevine
├── libwidevinecdmadapter.so
├── libwidevinecdm.so
├── LICENSE.txt
└── manifest.json Is there something else I could be missing? |
UPDATE: I've done a little bit of poking into the source code to try to figure out what's causing the driver to fail to be found. The problem with driver initialization can be superficially traced to bool haveDriverLoaded() const {
// only one of these pointers will ever be initialized at a time,
// since we move from loader_ to initialize serverDeviceProvider_
// loader_ has an explicit operator bool to check its success, hence
// the longer check.
return (static_cast<bool>(loader_) && //evalutes as "0" when printed
static_cast<bool>(*loader_)) ||
static_cast<bool>(serverDeviceProvider_); //evaluates as "0" when printed
} As the comments indicate, both I wonder if there's a way to print to the console what OSVR-Vive thinks my driver directory is? |
Thanks to @ChristophHaag helping me debug my system, it turns out that $ cd /home/george/.local/share/Steam
$ ln -s steamapps SteamApps solved the issue. That is, End result: I can now launch June 23 15:50:49.292 info [Settings]: GetBool doesn't contain the settingKey: fakeDigitalTrigger and then causes a seg fault. In direct mode, I still cannot launch, i.e., June 23 15:48:37.097 error [createRenderManager]: OpenGL/Direct3D Interop not compiled in
Could not create RenderManager So there's no way for me to run a test app with OSVR-Vive yet. |
@georgewsinger
which apparently didn't work, so you changed it to
If you remove the symlink and try it with
it could work too.. Anyway, #33 (comment) was probably wrong. Those case errors are insidious because of how easily you can fail to see them... To any of the developers: It would be great if OSVR-Vive could output some debug info here, e.g. the file name it is trying to open and an error message when it fails. |
@ChristophHaag: You're right. The issue was a case error with my |
@georgewsinger |
I'm running Arch Linux:
This yields the following build error:
The text was updated successfully, but these errors were encountered: