SimpleViewer can't work well. Log shows Xiron OS failed to create a mutex!

firefly@firefly:~/DeepCamera/OpenNI-Linux-Arm64-2.3/Samples/SimpleViewer/Bin/Arm64-Release$ ./SimpleViewer
After initialization:

Warning: USB events thread - failed to set priority. This might cause loss of data…
SimpleViewer: Device open failed:
Could not open “2bc5/0403@1/4”: Xiron OS failed to create a mutex!

I’m running Ubuntu 16.04 on 64 ARM board. it seems on Ubuntu 14.04 it works well.

P.S. I’m using OpenNI-Linux-Arm64-2.3.zip

has anybody found a solution to this?

Just came across this, looking into the same problem. I’m trying to get this to work on a hybrid OS, where I have a Debian userspace but with Android 8.1 inside a chroot environment. I’m using the stock kernel from Android-x86, and the issue seems related to lack of IPC (Interprocess Communication) features in the kernel. Apparently, the OpenNI library uses an IPC “semaphore” to provide mutex capabilities.

I’m doing a custom android-x86 build now, with IPC enabled. Hopefully that will resolve the issue.

The easiest solution is to run as sudo or root.

While that would address the “failed to set priority” warning, that is not the real issue faced by the OP (and can in fact usually be ignored). Instead, the camera failed to open because “Xiron OS failed to create a mutex”.

In my case, rebuilding the (Android-x86-supplied) kernel to add support for “System V IPC” solved the issue. Specifically, the OpenNI library attempts to create an IPC semaphore for use as a mutex between multiple processes accessing the camera.

Stock Linux kernel (including the one in Ubuntu) should already have IPC support. Perhaps the OP had built a custom kernel as well?