Jetson fails to start the "nv-l4t-usb-device-mode" service

Hi,

We are using Jetson AGX Xavier on a custom built carrier board and using our custom BSP based on L4T 32.4.3.

We are facing below issue, please help, are we are missing something?:

I noticed that the Jetson fails to start the “nv-l4t-usb-device-mode” service. It fails to find UDC devices. As a result, it is missing the USB gadget API that is present on the Jetson AGX Xavier Development Kit.

Specifically, we are in need of the RNDIS feature for Ethernet, a virtual COM port, and SSH/SFTP capabilities from a Windows client.

Hi,
There is an issue about USB tethering. Please check if this patch helps:
Android USB tethering not working - #28 by DaneLLL

1 Like

I will check if applying patch works, This issue is actually reported by our customer: they say

*we can SSH and open network ports through 192.168.1.81 (if we recall correctly) through the provided USB ports. However, we have a hard requirement for a virtual COM port in addition to the aforementioned features provided by RNDIS. *

*The main issue is that the nv-l4t-usb-device-mode service fails to start and you should be able to see it complain on the boot screen when the Jetson first starts up. we looked into the service’s failure mode with systemctl and it failed because it cannot find a UDC (USB Device Controller), which is strange because there is clearly a USB controller on the carrier board. *

we did find this guide recently, but we haven’t found the time to go into depth or try it out: Linux USB gadget configured through configfs — The Linux Kernel documentation

Hi any update on this?
When I see the service status I get below:
nvidia@nvidia-desktop:~$ systemctl status nv-l4t-usb-device-mode.service
● nv-l4t-usb-device-mode.service - Configure USB flashing port for device mode
Loaded: loaded (/opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2021-07-21 15:31:08 IST; 7min ago
Process: 8118 ExecStopPost=/opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-stop.sh (code=exited, status=0/SUCCESS)
Process: 4844 ExecStart=/opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-start.sh (code=exited, status=1/FAILURE)
Main PID: 4844 (code=exited, status=1/FAILURE)

Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t/functions/mass_storage.0/’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t/functions/acm.GS0/’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t/functions/rndis.usb0/’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t/configs/c.1/’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t/strings/0x409’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: rmdir: failed to remove ‘l4t’: No such file or directory
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: l4tbr0: ERROR while getting interface flags: No such device
Jul 21 15:31:06 nvidia-desktop nv-l4t-usb-device-mode-stop.sh[8118]: bridge l4tbr0 doesn’t exist; can’t delete it
Jul 21 15:31:08 nvidia-desktop systemd[1]: nv-l4t-usb-device-mode.service: Failed with result ‘exit-code’.
Jul 21 15:31:08 nvidia-desktop systemd[1]: Failed to start Configure USB flashing port for device mode.

I have the service in my rootfs.