NVIDIA Jetson Orin Nano
This guide walks you through building and deploying Avocado OS to an NVIDIA Jetson Orin Nano Developer Kit. The Jetson is provisioned over USB using NVIDIA's tegraflash tooling, which runs inside the Avocado SDK container.
Prerequisites
- NVIDIA Jetson Orin Nano Developer Kit
- An NVMe SSD (M.2 2280 form factor)
- Linux host machine (Ubuntu 22.04+, Fedora 39+)
- Docker Desktop installed and running
- The latest version of the Avocado CLI
- 16 GB available disk space
- A USB-C cable for provisioning (host USB to Jetson USB-C)
- A TTY serial console USB adapter (this or similar) — must be set to 3.3V
If your host machine auto-mounts removable media, disable it before provisioning. Auto-mounting can interfere with the flash process.
Connect your TTY serial console USB adapter to the Jetson's GPIO header pins. Locate the horizontal GPIO pins beneath the module on the topside of the carrier board:
- Boot into recovery mode:
- yellow: short
FC RECtoGND
- yellow: short
- Connect your serial console adapter to the target device:
- green:
GNDto adapter UART GND - blue:
UART TXDto adapter UART RX - violet:
UART RXDto adapter UART TX
- green:

Open a serial terminal:
tio -b 115200 /dev/ttyUSB0
Replace /dev/ttyUSB0 with the appropriate device path for your adapter.
Boot into recovery mode
To flash the Jetson, it must be in USB recovery mode:
- With the device powered off, short the FC REC pin to GND using a jumper
- Connect the USB-C cable from the Jetson to your host machine
- Apply power to the Jetson
Verify the device is detected:
lsusb
Look for an entry containing NVIDIA Corp. APX — this confirms the device is in recovery mode.
Initialize
Create a new project targeting the Jetson Orin Nano.
avocado init --target jetson-orin-nano-devkit jetson-orin-nano-devkit
cd jetson-orin-nano-devkit
Install
Install the SDK toolchain, extension dependencies, and runtime packages.
avocado install -f
Build
Build the system image.
avocado build
Provision
Provision the dev runtime using the tegraflash profile. This builds the system image and flashes it to the Jetson over USB.
avocado provision -r dev --profile tegraflash
The procedure advances through several steps:
== Step 1: Signing binaries ==
...
== Step 2: Boot Jetson via RCM ==
...
== Step 3: Sending flash sequence commands ==
...
During step 3, you will be prompted to disconnect and reconnect the USB-C cable:
The Jetson device is waiting for USB disconnect to proceed.
Please manually disconnect and reconnect the USB cable now.
Steps:
1. Unplug the USB-C cable from the Jetson device
2. Wait 2-3 seconds
3. Plug the USB-C cable back in
Press Enter after reconnecting the USB cable...
Follow the instructions. The process continues to step 4 (writing partitions) and step 5 (final status). During step 5, perform the same USB disconnect/reconnect procedure again.
When provisioning completes:
[SUCCESS] Successfully provisioned runtime 'dev'
Run
- Remove power from the Jetson
- Remove the jumper shorting FC REC to GND
- Remove the USB-C cable
- Leave the serial console adapter connected
- Apply power
The device will boot with the provisioned system. Log in as root with an empty password via the serial console.