"tdb" wrote: Edit: I thought I'd at least be able to continue using my existing code written against SDK 0.4.4, but unfortunately oculusd crashes on recent Debian unstable.
The problem is actually that oculusd relied on the tracker camera firmware being broken. This commit works around the problem and makes the camera work properly - which breaks oculusd: https://git.kernel.org/cgit/linux/kerne ... 4ed3dd4a80 It is included since linux 3.19.
The solution is either to load the uvcvideo module without workarounds
rmmod uvcvideo modprobe uvcvideo quirks=0
or to use ovrd from the Oculus Rift SDK 0.5.0.1 for Linux. That was the last SDK version that supported linux and this problem has been fixed in that version. It still is very buggy and segfaults randomly a lot, but at least it works most of the time.
"tdb" wrote: Looks like my Rift devices are useless until either Oculus fixes their thing or an open source alternative appears. Doubly disappointing.
We probably won't see a complete open source solution, but OSVR is probably close enough. It still relies on oculusd/ovrd for tracking data, but (at least without the currently closed source render manager) it does everything else itself.
Unlike using the Oculus Rift SDK directly, using OSVR will also allow to switch to a different HMD in the future without any hassle, so I would definitely recommend playing with it instead.
"haagch" wrote: or to use ovrd from the Oculus Rift SDK 0.5.0.1 for Linux. That was the last SDK version that supported linux and this problem has been fixed in that version. It still is very buggy and segfaults randomly a lot, but at least it works most of the time.
Where can I find that version though? The downloads section here only offers the latest versions, which no longer includes any Linux version.
"haagch" wrote: We probably won't see a complete open source solution, but OSVR is probably close enough. It still relies on oculusd/ovrd for tracking data, but (at least without the currently closed source render manager) it does everything else itself.
I was thinking along the lines of snooping the USB traffic to find out how the official SDK accesses the device.
I actually have some old code that did shader-based distortion rendering based on the coefficients from the SDK. The developer guide no longer documents that method though, nor does the SDK provide access the the coefficients. I'm a bit uneasy with making assumptions about the compatibility of old coefficients with new devices.
"tdb" wrote: Where can I find that version though? The downloads section here only offers the latest versions, which no longer includes any Linux version.
"tdb" wrote: I was thinking along the lines of snooping the USB traffic to find out how the official SDK accesses the device.
The hardware stuff was already reverse engineered in the several months it took oculus to release the first version for linux. There's a 4 part blog series http://doc-ok.org/?p=1095 and also some code on github. It's not a complete solution but there should be all the building blocks to build one.
"tdb" wrote: I actually have some old code that did shader-based distortion rendering based on the coefficients from the SDK. The developer guide no longer documents that method though, nor does the SDK provide access the the coefficients. I'm a bit uneasy with making assumptions about the compatibility of old coefficients with new devices.
New devices will likely have different sensors anyway and won't work with the 0.5.0.1 oculus rift service anyway. But I hope that OSVR will create an abstraction for it so that the problem is reduced to supplying a config file to OSVR.