I am building a multi‑camera USB system on a Jetson Orin NX. My goal is to run one 4K camera and three 2K cameras stably at the same time (preferably using compressed formats such as MJPEG/H.264) for real‑time preview and recording.
My current environment is: Jetson Orin NX.
The software version is JetPack 6.2.1 (nvidia-jetpack 6.2.1+b38), and the underlying L4T version is 36.4.7 (nvidia-l4t-core 36.4.7-20250918154033).
I am using a PCIe‑USB3 expansion card based on the ASMedia ASM2142 controller, plus several UVC cameras.
Currently I have two major issues.
First, when I connect cameras to the USB ports on the ASM2142 PCIe‑USB3 expansion card, even with only one USB2.0 camera attached (for example 2K resolution at about 23 fps), after running for some time the system randomly reports serious PCIe and xHCI controller errors.
Typical kernel logs include:
pcieport ... AER: Uncorrected (Fatal) error, PCIe Bus Error ... SDES,
and also xhci_hcd ... xHCI host controller not responding, assume dead, HC died; cleaning up,
followed by messages like xhci_hcd ... ERROR Transfer event TRB DMA ptr not part of current TD and usb x-y: device descriptor read/8, error -110/-108.
After these errors occur, all USB cameras connected to this ASM2142 card drop offline: accessing /dev/video* from user space either fails to open or opens but delivers no data.
I also notice that after such an error, even if I physically unplug the PCIe expansion card, lsusb -t still shows the controller and its ports under this card.
So far I have only been using a full system reboot to restore a “clean” device state.
To mitigate the problem, I have tried lowering the resolution and frame rate of the cameras, replacing the PCIe‑USB3 expansion card, USB cables and power supply, but these AER Fatal and xHCI “HC died” issues still keep happening.
Second, if I do not use the ASM2142‑based expansion card at all and only use the on‑board USB3 controller of the Orin NX (the USB‑C and USB‑A ports are actually on the same xHCI controller), opening any single USB3.0 camera works fine.
However, when I try to open multiple USB3 cameras simultaneously (for example one 4K + any one 2K camera, or more), usually only one camera can be started successfully.
The other cameras fail to open at the application level or show no video data.
This behavior looks more like a limitation of the actual available bus bandwidth or a combination of UVC video formats (uncompressed YUYV vs compressed MJPEG/H.264), but I haven’t found clear official documentation about the bandwidth limits or recommended configuration for multi‑high‑resolution UVC cameras on Orin NX.
Based on the above, I would like to ask NVIDIA engineers and the community:
- When using Jetson Orin NX together with PCIe‑USB3 controllers based on ASMedia ASM2142, are the above errors (AER Fatal, xHCI “HC died”, error -110/-108, etc.) known compatibility or driver issues?
Are there any PCIe‑USB controllers (for example Renesas‑based cards) that are officially recommended or validated to be more stable on Orin NX, and are there any additional kernel parameters, device‑tree settings, or patches that could help improve this situation? - If I only rely on the SoC’s on‑board USB3 controller, what is the recommended configuration to run one 4K + three 2K UVC cameras simultaneously, in terms of resolution, frame rate, encoding format (trade‑off between YUYV and MJPEG/H.264), and port/controller topology?
What is the approximate practical usable bandwidth of the Jetson Orin NX on‑board xHCI controller when multiple high‑resolution cameras are running at the same time?
If needed, I can provide fulldmesg,lspci -vvv, andlsusb -toutputs for further analysis.