USb 3.0 / USB 2.0 Not enough bandwidth

Hello, how are you?
I am connecting two Global Shutter USB cameras for license plate capture and I get error when I try to read with both cameras. It tells me that there is no bandwidth.
I have also tried with the GPIO port with a powered HUB and nothing. Whenever it detects a USB 2.0 camera it puts it on the same bus. I need one of them to be on bus 002->khadas@Khadas@Khadas:~$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 480M
|__ Port 001: Dev 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 003: Dev 003, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 001: Dev 003: Dev 003, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 004: Dev 004: Dev 004, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 004: Dev 005: Dev 005, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 004: Dev 005, If 1, Class=Video, Driver=uvcvideo, 480M
/Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 10000M

How can I make, or force one to run on Bus 001 and the other on Bus 002?
I have tried to modify the kernel options->
sudo nano /boot/extlinux/extlinux.conf
APPEND ${rootdev} ${bootargs} ${consoles} ${partitiontype} fan=$${fan_mode} ${boot_user_args} xhci_hcd.quirks=0x800000 usbcore.autosuspend=-1
And nothing…
SO:https://dl.khadas.com/products/vim4/firmware/ubuntu/generic/ubuntu-24.04/vim4-ubuntu-24.04-server-linux-5.15-fenix-1.7.3-241129.img.xz
Please, if you can help me.
Thank you very much in advance!
Sincerely

That has nothing to do with what you are trying to do with 2 cameras. You could run one on the CSI port and the other on USB. A pipeline on each.

1 Like

Thank you, for the answer. But the two cameras I have are USB 2.0. I have connected a HUB to the 3.0 port and to this HUB 3.0 one of the cameras and it still sends the camera to bus 001. 2.0…->
khadas@Khadas:~$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 005, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 001: Dev 005, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 002: Dev 004, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 002: Dev 004, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 10000M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M/x2
I don’t know if there is any option in the Kernel, or any other way to force that camera that is in the HUB 3.0, to remain in that BUS 002 tree.
Thank you very much

Are you sure the port on your Hub is 3.0 ? Here is the test result on my side with a 3.0 Hub + 3.0 Device on Hub.

root@Khadas:~# lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 480M
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 001: Dev 004, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 003: Dev 003, If 0, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 003: Dev 003, If 1, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 003: Dev 003, If 2, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 003: Dev 003, If 3, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 003: Dev 003, If 5, Class=Vendor Specific Class, Driver=[none], 480M
        |__ Port 003: Dev 003, If 14, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 003: Dev 003, If 15, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 003: Dev 003, If 16, Class=Audio, Driver=snd-usb-audio, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 10000M
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M/x2
        |__ Port 002: Dev 003, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Hi, my device is 2.0. It´s a cam. a global Shutter Cam. Look->
One cam in 2.0 Port and HUB 3.0 with Power->

/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 006, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 002: Dev 004, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 002: Dev 004, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 10000M
|__ Port 001: Dev 003, If 0, Class=Hub, Driver=hub/4p, 5000M/x2
Now, One cam in 2.0 Por an HUB with power, 3.0 and teh cam in HUB 3.0->

khadas@Khadas:~$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 006, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 004: Dev 008, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 004: Dev 008, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 002: Dev 004, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 002: Dev 004, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd-meson/1p, 10000M
|__ Port 001: Dev 003, If 0, Class=Hub, Driver=hub/4p, 5000M/x2

¿?
Any ideas on how to solve it? Other than inserting a MIPI camera or a 3.0 camera?
Thanks!

USB 2.0 device will be on USB 2.0 bus, so you need a USB 3.0 camera if you want to use the USB 3.0 bus.

1 Like