Hi all,
I’d like to share an issue I recently encountered when flashing Jetson Orin Nano with sdkmanager or l4t_initrd_flash.sh, in case it helps others. My host system is Ubuntu 24.04.2 LTS and my dev kit is Jetson Orin Nano Developer Kit.
Symptoms
-
During step 3 (“Start the flashing process”), the host can briefly connect to the Jetson initrd via
ssh root@fe80::1%usb0. -
After a short time, the
usb0interface on the host side loses its IPv4 address, leaving only the interface inUPstate without any IP. -
Flashing then fails with errors like:
Error: Either the device cannot mount the NFS server on the host or a flash command has failed.
Investigation
Checking host logs with:
journalctl -u NetworkManager --since "5 minutes ago" | grep usb0
I found repeated messages:
device (usb0): state change: ip-config -> failed (reason 'ip-config-unavailable')
dhcp4 (usb0): state changed no lease
device (usb0): Activation: failed for connection 'Wired connection 2'
This means NetworkManager tried to run DHCP on usb0, but there was no DHCP server in initrd, so after timeout it removed the assigned IP.
As a result, the IP dropped and the NFS/SSH session was broken.
Workaround
I’m not a networking expert — this workaround was found with the help of ChatGPT, and I don’t guarantee it’s the optimal solution. But it works for me:
- Disabled predictable network interface names so that my USB RNDIS interface always shows up as
usb0.
To do that, I edited/etc/default/grub:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
Then ran sudo update-grub and rebooted.
This ensures the Jetson USB interface will consistently appear as usb0 instead of enx….
-
Add a static connection for
usb0on the host:nmcli con add type ethernet ifname usb0 con-name usb0-manual ipv4.method manual ipv4.addresses 192.168.55.100/24 nmcli con up usb0-manual
With this static configuration, the IP no longer disappears and flashing succeeds. 🎉