Ubuntu 18.04.2 LTS shows all usb3.0 connectors are connected on a usb2.0 hub

Hi, guys.

My operating system is download from NVIDIA, the package name is nv-jetson-nano-sd-card-image-r32.2.1.zip, it/s based on Ubuntu 18.04.2 LTS.
I connect 4 usb cameras to usb3.0 connectors of carrier board, and run my program to capture images, but it shows “No space left on device” while VIDIOC_STREAMON. So I checked my disk capability, it shows:

Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p1 30G 9.7G 19G 35% /
none 1.8G 0 1.8G 0% /dev
tmpfs 2.0G 4.0K 2.0G 1% /dev/shm
tmpfs 2.0G 29M 2.0G 2% /run
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
//192.168.1.249/share 977G 57G 921G 6% /home/nano/win
tmpfs 397M 12K 397M 1% /run/user/120
tmpfs 397M 28K 397M 1% /run/user/1000

And then I search “No space left on device while VIDIOC_STREAMON” on the Internet, and it shows the problem is band-width of usb bus. So I check the hardware information by “sudo lshw”, it shows:

*-usbhost:0
product: xHCI Host Controller
vendor: Linux 4.9.140-tegra xhci-hcd
physical id: 1
bus info: usb@1
logical name: usb1
version: 4.09
capabilities: usb-2.00
configuration: driver=hub slots=5 speed=480Mbit/s
*-usb
description: USB hub
product: 4-Port USB 2.1 Hub
vendor: Generic
physical id: 2
bus info: usb@1:2
version: 1.20
capabilities: usb-2.10
configuration: driver=hub slots=4 speed=480Mbit/s
*-usb:0
description: Video
product: RecordexUSA
vendor: RXSX
physical id: 1
bus info: usb@1:2.1
version: 23.01
serial: 200901010001
capabilities: usb-2.10
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usb:1
description: Video
product: RecordexUSA
vendor: RXSX
physical id: 2
bus info: usb@1:2.2
version: 23.01
serial: 200901010001
capabilities: usb-2.10
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usb:2
description: Video
product: RecordexUSA
vendor: RXSX
physical id: 3
bus info: usb@1:2.3
version: 23.01
serial: 200901010001
capabilities: usb-2.10
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usb:3
description: USB hub
product: 4-Port USB 2.0 Hub
vendor: Generic
physical id: 4
bus info: usb@1:2.4
version: 1.04
capabilities: usb-2.10
configuration: driver=hub slots=4 speed=480Mbit/s
*-usb
description: Video
product: HD USB Camera
vendor: HD USB Camera
physical id: 4
bus info: usb@1:2.4.4
version: 27.02
capabilities: usb-2.00
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 4.9.140-tegra xhci-hcd
physical id: 2
bus info: usb@2
logical name: usb2
version: 4.09
capabilities: usb-3.00
configuration: driver=hub slots=4 speed=5000Mbit/s
*-usb
description: USB hub
product: 4-Port USB 3.1 Hub
vendor: Generic
physical id: 1
bus info: usb@2:1
version: 1.20
capabilities: usb-3.20
configuration: driver=hub slots=4 speed=5000Mbit/s
*-usb
description: USB hub
product: 4-Port USB 3.0 Hub
vendor: Generic
physical id: 4
bus info: usb@2:1.4
version: 1.04
capabilities: usb-3.00
configuration: driver=hub slots=4 speed=5000Mbit/s

It says all of usb3.0 connectors are connected to a usb2.0 hub, so my cameras share the band-width of usb2.0, that is 480Mbit/s, but “Jetson Nano Developer Kit User Guide” says “[J32 and J33] are each a stack of two USB 3.0 Type A connectors…All four are connected to the Jetson Nano module via a USB 3.0 hub built into the carrier board” on page 7.
So, I searched “How to enable USB3.0 on Jetson Nano carrier board” on the Internet, and it says “We can enable USB3.0 on Jetson TX1 by append ‘usb_port_owner_info=2’ to kernel args”, and It’s not usable when I tried.

Now, I don’t know how to fix the problem, is there anybody who can help me? Thanks!

Hi,
Please check
https://devtalk.nvidia.com/default/topic/1067850/deepstream-sdk/connected-more-than-two-usb-cameras-problem-on-deepstream-app-jetson-nano-dev-kit-/post/5410823/#5410823

For having 5Gbps bandwidth, you need to use USB3 cameras.

Thanks, I got it.

I have another question:

I change all of the 4 cameras to HD USB Camera (the device info is same as shown on #1, physical id: 4, capabilities: usb-2.00, configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s"), and I set the cameras to output 1280x960p30 in my program, it works well.

But if I change all of the 4 cameras to RecordexUSA (the device info is same as shown on #1, physical id: 1,
capabilities: usb-2.10, configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s), and I set the cameras to output 1280x720p30 or 800x600p30 or 640x480p30 in my program, then just two cameras work well, and the rest cameras say “No space left on device” when executing VIDIOC_STREAMON.

so DaneLLL, do you think it’s caused by the flaw of RecordexUSA camera? Thanks!

Hi,
If both are USB2 cameras, it is probably because RecordexUSA camera takes more bandwidth in its firmware driver.

@DaneLLL, got it, thanks!