I have a Jetson AGX Orin dev kit with the latest jetpack
R36 (release), REVISION: 4.4, GCID: 41062509, BOARD: generic, EABI: aarch64, DATE: Mon Jun 16 16:07:13 UTC 2025
KERNEL_VARIANT: oot
TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia
I am trying to record 3 USB cameras with resolution of 640x480 at 30 fps.
when streaming it works fine, but when recording the fps goes down to about ~23 fps.
I know that all USB type A ports are on the same hub , so Itried connecting one camera on a port type A, another on port type C and the third on the second type C.
That’s when I noticed that all the type A and the type C are on the same root hub which is 480M.
there is a second root hub (10000M), but none of of the ports seem to connect to it.
It looks to me like all ports lead to a single usb2.0 hub, which is strange.
Here is the log of me connecting a single camera to each of the ports (4 type A and 2 type C):
Type A
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 7, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 7, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
Type A
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 8, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 8, If 1, Class=Video, Driver=uvcvideo, 480M
Type A
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 9, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 9, If 1, Class=Video, Driver=uvcvideo, 480M
Type A
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 10, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 10, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 11, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
type C
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 2: Dev 12, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 12, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 11, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
type C
(base) revol@ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 1: Dev 13, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 13, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=rtk_btusb, 12M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 11, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
it looks like
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
is never used.
I am trying to understand if I am missing something here. I would appreciate any assistance
My goal is to be able to record 3 usb cameras with resolution of 640x480 at 30 fps. which seems to me like should be possible in this device
Thanks!