This guide covers flashing JetPack to an SD card, migrating to an NVMe SSD for reliable storage, and configuring the Jetson for headless operation with WiFi and optional 5G modem failover. Requirements:Documentation Index
Fetch the complete documentation index at: https://docs.cyberwave.com/llms.txt
Use this file to discover all available pages before exploring further.
- Jetson Orin Nano Developer Kit
- microSD card (64GB UHS-1 or larger)
- A computer with an SD card reader and Balena Etcher installed
- PCIe NVMe SSD (PCIe 3.0 recommended — PCIe 4.0 may cause issues)
Step 1: Flash JetPack to the SD card
Follow the official NVIDIA Getting Started guide for full details. The key steps are:- Check firmware. Your Jetson may ship with old firmware incompatible with JetPack 6.x. If needed, update the firmware via SD card before proceeding.
- Download the SD card image. Get the Jetson Orin Nano Developer Kit image from the JetPack SDK page. The file is a
.zipcontaining a.img. - Write the image. Download and install Balena Etcher, select the
.zipfile (no need to extract), select your SD card, and click Flash. This takes about 10–15 minutes. - First boot. Insert the SD card into the Jetson, connect a display, keyboard, and mouse, then power on. Complete the initial setup (language, timezone, user account, WiFi).
SD cards work for initial setup but degrade over time with frequent writes.
Migrating to an NVMe SSD is strongly recommended for any sustained workload.
Step 2: Install the SSD
Power off the Jetson. Install the NVMe SSD into the M.2 Key M slot on the underside of the carrier board and secure it with the screw. Boot from your SD card as normal. Verify the Jetson sees the SSD:nvme0n1 in the list. If not, the drive isn’t seated properly or is incompatible.
Step 3: Flash JetPack to the NVMe
Download the JetPack SD card image (.zip) from developer.nvidia.com/embedded/jetpack onto the Jetson. Make sure it’s the SD card image (.zip containing a .img), not an installer ISO.
Stream the image directly from the zip to the NVMe (avoids needing disk space for the extracted .img):
nvme0n1p1 through nvme0n1p15, mirroring the SD card partition layout.
Step 4: Update the boot configuration
The flashed image points to the SD card as root. You need to update it to point to the NVMe partition. Note the PARTUUID fornvme0n1p1:
APPEND line and change root=/dev/mmcblk0p1 to:
Step 5: Boot from NVMe
Power off completely:exit to reach the UEFI setup menu, go to Boot Manager → Boot Maintenance Manager → Boot Options, set the NVMe as the first boot device, and reboot.
Verify root is on NVMe:
/dev/nvme0n1p1 as the root filesystem.
Step 6: Expand the partition
The flashed image only uses ~14GB of your SSD. Expand it to use the full disk:Step 7: Configure headless operation
Switch the boot target from graphical desktop to console-only and enable SSH:Step 8: Configure WiFi for headless boot
Make your saved WiFi connection available without a user session:connection.permissions "" setting is critical — it removes the “only for this user” restriction so the connection activates on boot without anyone logged in.
Step 9: Configure 5G modem failover (optional)
If you have a USB 5G modem attached, it may appear as a standard USB ethernet interface. Check with:usb2 with a Wired connection name), set it as a lower-priority fallback:
Reboot and verify
Your Jetson Orin Nano is now booting from NVMe, running headless, and
connecting to the network on boot without manual intervention.
Step 10: Configure Ethernet for robot connections (if applicable)
If you are connecting the Jetson to a robot via Ethernet (e.g., a Unitree Go2), the robot’s internal network uses a fixed subnet. Your Jetson’s Ethernet interface needs a static IP on that subnet before the robot is reachable. Find the Ethernet interface name:eth0 or enP8p1s0). Create a persistent connection with NetworkManager:
<interface-name> with your actual interface and 192.168.123.11/24 with an IP appropriate for your robot’s subnet (the Unitree Go2 uses 192.168.123.0/24). This connection will activate automatically on boot.
Verify the robot is reachable:
Without this step, the Cyberwave driver will fail its preflight check with
none of [192.168.123.161, 192.168.12.1] responded on TCP port 9991 because
the Ethernet interface has no IP in the robot’s subnet.