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

Revision history [back]

click to hide/show revision 1
initial version

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