Skip to main content
Participant
August 7, 2015

0.7.0 SDK with Linux Support

Will the upcoming new 0.7.0 SDK include updated linux support?

    13 replies

    Up and Coming
    September 19, 2015
    "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.

    Getting tracking data with OSVRTrackerViewer works well like this: https://www.youtube.com/watch?v=ArVn03TAjj0
    OSVR-core also includes an OpenGL sample that works with rift tracking but has no distortion.
    Then there's a (third party) RiftSkeleton demo with distortion: https://www.youtube.com/watch?v=hBruEAaEvdc

    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.
    Participant
    September 20, 2015
    "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.
    Up and Coming
    September 20, 2015
    "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.

    You have to select "Platform: PC". https://developer.oculus.com/downloads/pc/0.5.0.1-beta/Oculus_SDK_for_Linux_(Experimental)/

    "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.