When I try to connect with it through the wifi the ssh server work. But when I try to use ssh nvidia@192.168.55.1 through the ECM interface of the usb gadget but it doesn’t work.
L4T’s USB device mode implements a variety of different functions in parallel, so is what’s known as a USB composite device. The Ethernet protocol that works with macOS (pre-Catalina) is known as USB CDC ECM (Communications Data Class Ethernet Control Model). macOS Catalina has replaced the driver for this protocol; it used to be a kernel-based driver but is now a user-space driver. Presumably Apple made significant code changes during this transition. Either way, the ECM driver in macOS Catalina no longer works with the configuration implemented by L4T/Jetson. Specifically, the ECM driver no longer works if the ECM function is part of a USB composite device, but does work if the ECM function is the the only function in the USB device. CDC NCM is an alternative Ethernet protocol. macOS Catalina’s CDC NCM driver seems to work fine if the NCM function is part of a composite gadget. Thus, there are two ways to solve this issue:
Disable all protocols other than ECM. Jetson will no longer additionally appear as a UART (serial port) or USB Mass Storage (disk). Edit /opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-config.sh (recent L4T releases) or /opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-start.sh (older L4T releases) to disable all other protocols; change the =1 to =0 in all the following lines:
enable_rndis=1
enable_acm=1
enable_ums=1
OR:
Edit /opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-start.sh and change all relevant references to ECM to use NCM instead. Specifically, something like:
func=functions/ecm.usb0
to:
func=functions/ncm.usb0
and:
/sbin/brctl addif l4tbr0 “$(cat functions/ecm.usb0/ifname)”
/sbin/ifconfig “$(cat functions/ecm.usb0/ifname)” up
to:
/sbin/brctl addif l4tbr0 “$(cat functions/ncm.usb0/ifname)”
/sbin/ifconfig “$(cat functions/ncm.usb0/ifname)” up
A future release of L4T does roughly (2) above, while enhancing the script to allow easy switching between ECM and NCM protocols.
I was just reading the JetPack SDK 4.3 DP Changelog and was afraid that we wouldn’t have fix anytime soon, but seems like @StephenWarren fix works :-) Thank you for that!
I need a little help here since I’m relatively new trying to work with Getting Started with AI on Jetson Nano. I’m able to run it on a PC laptop, but want to run it on my iMac. I tried to make the changes Stephen recommended, however it won’t allow it to be saved. It says I don’t have admin rights, this is with the Nano logged in using a TV and keyboard. Any help would be appreciated.