ZED Mini only detected as HID after cold boot on NVIDIA Thor, camera interface appears only after unplug/replug

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

  1. Is this a known issue with ZED Mini on NVIDIA Thor / Jetson-class platforms?

  2. Is there a recommended fix or workaround for cold-boot USB3 enumeration failures?

  3. Are there any required kernel parameters, USB quirks, device tree settings, or power management settings for ZED Mini on Thor?

  4. 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?

  5. 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.