ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
6

Kinect and USB 3.0

asked 2011-02-23 12:01:35 -0500

Daniel Stonier gravatar image

updated 2016-10-24 09:03:06 -0500

ngrennan gravatar image

We had some trouble yesterday connecting kinect to a newish laptop running ubuntu 10.04 and with two usb3.0 ports. Testing it with openni_camera proved rather uncommunicative (i.e. no response from the kinect).

In the end this turned out to be exactly a problem with kinect and the usb3.0 ports as we also found a usb2.0/esata combo port on the laptop which worked without a problem.

We haven't got a solution for the 3.0 problem yet. Has anyone else had a similar problem? Is it even possible?

edit retag flag offensive close merge delete

6 Answers

Sort by ยป oldest newest most voted
9

answered 2011-11-13 21:40:52 -0500

MichaelH gravatar image

Hello All,

I also got the problem with USB3 and the Kinect. I tried with the an onboard NEC controler and with an ASMedia pcie expansion card. I also got the "USB3: ERROR no room on ep ring" error. The basic problem is, that the bulk-ep-ring is limited to 1, and this will not work with cameras with large data sizes, as the kinect. The exact description can be found there: http://www.spinics.net/lists/linux-usb/msg49736.html and http://www.spinics.net/lists/linux-usb/msg52072.html

You will also find a Patch there, wich will work around the problem by enlarging the ep-ring, you will have to recompile your kernel, but this is still better than having not the posibility to use the kinect on USB3 ports.

I simply changed the following lines, without a module parameter, as propost in the kernel patch:

drivers/usb/host/xhci-mem.c:

    if (usb_endpoint_xfer_isoc(&ep->desc))
        virt_dev->eps[ep_index].new_ring =
            xhci_ring_alloc(xhci, 8, true, mem_flags);
+   else if (usb_endpoint_xfer_bulk(&ep->desc))
+       virt_dev->eps[ep_index].new_ring =
+           xhci_ring_alloc(xhci, 8,
+                   true, mem_flags);
    else
        virt_dev->eps[ep_index].new_ring =
            xhci_ring_alloc(xhci, 1, true, mem_flags);

drivers/usb/host/xhci.h:
-   #define TRPS_PER_SEGMENT    64
+   #define TRPS_PER_SEGMENT    256

I need this change for my multi-kinect setup. I'm using a HighPoint RocketU 1144A to attach 4 Kinects to my pc :) Just testet the setup, 4Kinects working on one PC all connected to one RocketU card. working like a charm with ROS

greetings Michael

edit flag offensive delete link more

Comments

Hi, after some time, i want to update this post for all who are still trying to use the Kinect and USB3. The Kernel 3.4.1 did a lot of updates in the xhci-code and finally the kinect is working fine with USB3, at least with Kernel 3.4.2 http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.4.1 commit 33b2831ac870d50cc8e01c317b07fb1e69c13fe1

I hope this issue is finally closed greetings

MichaelH gravatar image MichaelH  ( 2012-06-13 20:36:43 -0500 )edit

@MichaelH, nope, just installed the 3.4.2 kernel on ubuntu 12.04 and still the usb 3.0 didn't work. Could you maybe be a bit more specific on how do you apply this patch? Thanks in advance!

niosus gravatar image niosus  ( 2013-01-29 09:16:04 -0500 )edit

@nios: We had the same problem in our lab as the original poster (albeit under 12.04, 64bit). To my knowledge, the solution was either to do what @MichaelH suggested OR to upgrade to a new kernel. We upgraded to kernel 3.4.2 and this solved the problem.

Philip gravatar image Philip  ( 2013-03-08 06:05:13 -0500 )edit
2

answered 2011-02-23 12:23:55 -0500

Chad Rockey gravatar image

Hi, we've had this problem with our usb devices on two motherboards in our lab. It seems that some motherboards and their USB 3.0 ports just don't work with Ubuntu. We have only used 64 bit 10.04 here, so it may be worth trying 32 bit or definitely upgrading to 10.10.

Your best bet with this will be to check the official Ubuntu forums for posts with your motherboard and also check linuxquestions.org's hardware compatibility list.

Have you had any luck with an FTDI chip like an Arduino or even a flash drive/USB hard drive? Linux is supposed to have USB 3.0 built into the kernel since 2009, but it looks like the manufacters may not have implemented this well.

edit flag offensive delete link more

Comments

For the record, we were on 32 bit and had problems on 10.04. Also our pen drives worked, but I've read its a bit hit and miss. Our intern is leaving tomorrow, so won't have any more time to do testing to check this out until we invest in some new laptops. Thanks for the information though!
Daniel Stonier gravatar image Daniel Stonier  ( 2011-02-24 01:06:52 -0500 )edit
1

answered 2013-05-26 05:56:54 -0500

criatura gravatar image

I had the same problem with Ubuntu 12.04, Kernel 3.2. I just updated the kernel to 3.4.0 and now it works ok on all the USB ports (3.0 and 2.0).

edit flag offensive delete link more

Comments

Cool, have to try this. Thx for letting us know!

bit-pirate gravatar image bit-pirate  ( 2013-05-26 15:54:46 -0500 )edit
1

answered 2011-11-04 06:05:01 -0500

fenn gravatar image

I was having the same problem with the Turtlebot Asus Eee 1215n/1215b and ubuntu 10.04.2, but managed to work around it by just using a USB 2.0 port instead.

You have to enable breaker 0 first to turn the kinect on!

edit flag offensive delete link more
0

answered 2013-03-07 12:47:20 -0500

aplyer gravatar image

Same problem, I've a macbook pro with only two USB3 and ubuntu 12.10 x64 and OpenNI don't see my kinect or xition pro live. In or outside ros.

It seem to be a USB3 problem because I've problem also with a SR4000... On another laptop with the same system but USB2 everything is working.

edit flag offensive delete link more

Comments

I am in same situation. Did you find any solution ?

CHz gravatar image CHz  ( 2013-04-03 04:23:54 -0500 )edit
0

answered 2011-10-04 06:20:04 -0500

Ryan gravatar image

I'm noting a similar issue with an Alienware laptop running Ubuntu 10.04 x64. USB to serial adapters and joysticks seem to work on the USB 3.0 port, but plugging a Kinect in freezes the entire system.

edit flag offensive delete link more

Question Tools

9 followers

Stats

Asked: 2011-02-23 12:01:35 -0500

Seen: 13,229 times

Last updated: May 26 '13