Using the Kinect 2 with libfreenect2 on the BBX15

Hello!

I am trying to use the libfreenect2 on the BeagleBoard-X15 (GitHub - OpenKinect/libfreenect2: Open source drivers for the Kinect for Windows v2 device). I’ve gotten the Kinect working on my Ubuntu 16.04 laptop, but I am struggling with getting it working on the BeagleBoard-X15. I tried the installation with Debian, but I couldn’t get the packages and Cmake wasn’t working, so I turned to Ubuntu 16.04. On Ubuntu 16.04, I was able to install the library, but I’m struggling with what looks like a USB error. When I run the “./bin/Protonect cpu” command I get this:

[Info] [Freenect2Impl] enumerating devices…

[Info] [Freenect2Impl] 5 usb devices connected

[Info] [Freenect2Impl] found valid Kinect v2 @1:9 with serial ############ ← People hash this out for some reason, so I will do the same.

[Info] [Freenect2Impl] found 1 devices

[Info] [Freenect2DeviceImpl] opening…

[Error] [protocol::UsbControl] failed to claim interface with IrInterfaceId(=1)! LIBUSB_ERROR_BUSY Resource busy. Try debugging with environment variable: export LIBUSB_DEBUG=3 .

[Info] [Freenect2DeviceImpl] closing…

[Info] [Freenect2DeviceImpl] deallocating usb transfer pools…

[Info] [Freenect2DeviceImpl] closing usb device…

[Info] [Freenect2DeviceImpl] closed

[Error] [Freenect2Impl] failed to open Kinect v2: @1:9

failure opening device!

lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 009: ID 045e:02c4 Microsoft Corp.

Bus 001 Device 008: ID 045e:02d9 Microsoft Corp.

Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

(I noticed just now that the Bus number for the 3.0 root hub is different than the ones “Microsoft Corp (The Kinect)” are connected to. Does it mean that ubuntu isn’t using the USB 3.0 ports as USB 3.0? )

lsusb -t

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M

__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

__ Port 2: Dev 8, If 0, Class=Hub, Driver=hub/1p, 480M

__ Port 1: Dev 9, If 0, Class=Vendor Specific Class, Driver=, 480M

__ Port 1: Dev 9, If 1, Class=Audio, Driver=snd-usb-audio, 480M

__ Port 1: Dev 9, If 2, Class=Audio, Driver=snd-usb-audio, 480M

I’ve tried everything on [Troubleshooting · OpenKinect/libfreenect2 Wiki · GitHub], including changing the USBFS buffer size. When I changed it from 16 (the default) to 64 it didn’t make a difference. I changed it back to 16:

echo 64 > /sys/module/usbcore/parameters/usbfs_memory_mb

Any ideas on what may be causing this USB issue? I’ve checked all over the libfreenect2 git issues and none of the solutions work with the BeagleBoard-X15 (Although most were just people plugging into USB 2.0 ports).

Thanks,

Alek