I am seeing a consistent cold-boot detection issue with a Stereolabs ZED Mini camera on an NVIDIA Thor Ubuntu system.
On every cold boot, the ZED Mini is not fully detected. The system only enumerates the HID interface, but the camera/UVC interface does not appear. After I physically unplug and replug the USB 3.0 cable, the camera is detected immediately and works normally.
Observed behavior
After a cold boot, lsusb only shows:
Copy
Bus 003 Device 002: ID 2b03:f681 STEREOLABS ZED-M HID Interface
The expected camera interface is missing:
Copy
2b03:f682 STEREOLABS ZED-M camera
After unplugging and replugging the USB 3.0 cable, both interfaces appear correctly:
Copy
Bus 003 Device xxx: ID 2b03:f681 STEREOLABS ZED-M HID Interface
Bus 004 Device xxx: ID 2b03:f682 STEREOLABS ZED-M camera
At that point the ZED Mini works normally in ZED Explorer / ZED SDK.
dmesg observations
During cold boot, the kernel only reports the HID interface:
Copy
usb 3-1: new full-speed USB device number 2 using xhci_hcd
hid-generic 0003:2B03:F681.0002: hidraw1: USB HID v1.11 Device [STEREOLABS ZED-M Hid Device] on usb-0002:01:00.0-1/input0
There is no corresponding SuperSpeed/UVC camera enumeration for 2b03:f682.
The xHCI controller appears to initialize normally:
Copy
xhci_hcd 0002:01:00.0: xHCI Host Controller
xhci_hcd 0002:01:00.0: new USB bus registered, assigned bus number 3
xhci_hcd 0002:01:00.0: new USB bus registered, assigned bus number 4
xhci_hcd 0002:01:00.0: Host supports USB 3.0 SuperSpeed
But the ZED Mini camera interface does not enumerate on the USB 3.0/SuperSpeed bus during cold boot.
Tests performed
I tried to reset the USB device path corresponding to the HID interface:
Copy
echo '3-1' | sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 3
echo '3-1' | sudo tee /sys/bus/usb/drivers/usb/bind
sleep 3
lsusb | grep ZED
Result:
Copy
Bus 003 Device 002: ID 2b03:f681 STEREOLABS ZED-M HID Interface
The camera interface still does not appear.
I also tried resetting the xHCI controller:
Copy
echo '0002:01:00.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind
sleep 3
echo '0002:01:00.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind
sleep 5
lsusb | grep ZED
Result:
Copy
Bus 003 Device 002: ID 2b03:f681 STEREOLABS ZED-M HID Interface
Again, the camera interface does not appear.
However, a physical USB unplug/replug immediately fixes the issue.
Interpretation
It looks like the ZED Mini’s USB2 HID interface initializes correctly on cold boot, but the USB3 SuperSpeed camera interface does not complete enumeration.
The fact that software unbind/bind of both the USB device and the xHCI controller does not recover the camera interface, while a physical unplug/replug does, suggests that this may be a USB3 link training, power sequencing, or VBUS timing issue during cold boot.
Questions
-
Is this a known issue with ZED Mini on NVIDIA Thor / Jetson-class platforms?
-
Is there a recommended fix or workaround for cold-boot USB3 enumeration failures?
-
Are there any required kernel parameters, USB quirks, device tree settings, or power management settings for ZED Mini on Thor?
-
Is a physical power-cycle of the ZED Mini required, or is there a supported way to force the camera interface to enumerate without unplugging the cable?
-
Would using a powered USB 3.0 hub, delayed USB power, or disabling USB autosuspend/LPM be the recommended workaround?
Environment:
- Camera: ZED Mini
- Platform: NVIDIA Thor
- OS: Ubuntu24.04
- BSP / JetPack: JetPack7.0
Thanks.