Random USB drop on Jetson Nano

We have a usb3.0 camera connected and it will randomly disappear.
I found log like this in /var/log/syslog. Any idea what is happening and how can we eliminate it? Thanks.

Dec  3 16:19:23 kernel: [115244.117992] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
Dec  3 16:19:23 kernel: [115244.261556] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
Dec  3 16:19:23 kernel: [115244.281424] usb 1-2: usb_suspend_both: status 0
Dec  3 16:19:23 kernel: [115244.282255] usb 1-2: USB disconnect, device number 2
Dec  3 16:19:23 kernel: [115244.312278] usb 1-3: USB disconnect, device number 3
Dec  3 16:19:23 kernel: [115244.312713] usb usb1: usb_suspend_both: status 0
Dec  3 16:19:27 kernel: [115247.882110] usb 2-1.3: USB disconnect, device number 3
Dec  3 16:19:27 kernel: [115247.929565] usb 2-1: usb_suspend_both: status 0
Dec  3 16:19:27 kernel: [115247.957769] usb 2-1: USB disconnect, device number 2
Dec  3 16:19:27 kernel: [115247.985872] usb usb2: usb_suspend_both: status 0
Dec  3 16:19:27 kernel: [115247.985896] tegra-xusb 70090000.xusb: entering ELPG
Dec  3 16:19:27 kernel: [115247.988930] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 2
Dec  3 16:19:27 kernel: [115247.989023] tegra-xusb 70090000.xusb: entering ELPG done

Did you connect it directly or through any convertor like C to USB.

Some times if the power is insufficient this might happen.

If not sudo apt-get upgrade might fix the problem.

it is directly plugged in onto the devboard.

Can we tell from the log if this is actually power issue?

Did you try upgrading the dev?

I will check the log and will let you know. Power errors wont be in log iI suppose.

Devices which are marginal and don’t have enough power won’t show up in the logs, but if the power delivery circuit detects over-current, then that would show up. However, I see some autosuspend logs. This is often a problem because many devices don’t correctly implement autosuspend. You might test be adding “usbcore.autosuspend=-1” to your kernel command line.

To see your current kernel command line:
cat /proc/cmdline

Normally the USB part is via a module, in which case the easiest way to disable autosuspend is via a module config file (modules are part of the kernel, and you can send arguments to the module). The file would be “/etc/modprobe.d/usbcore.conf”. You would add that file if missing, or append this if the file already exists:
options usbcore autosuspend=-1

You could also edit “/boot/extlinux/extlinux.conf”, and add this to the end of the “APPEND” key/value pair (make sure you keep this as one long line):
usbcore.autosuspend=-1
…the result would be that the long APPEND ends with " usbcore.autosuspend=-1" (there is a space delimiter between arguments, and no space within an argument).

I won’t go into doing this with device tree unless you find you need to. Make the change, reboot, and check “/proc/cmdline” to see if the argument made its way in. If it is there, then test again and see if USB drop stops occurring.

1 Like