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)
- macOS 13.0+ or Linux (Ubuntu 22.04+, Fedora 39+)
- 16 GB available disk space
- A USB-C cable for provisioning (host USB to Jetson USB-C)
- macOS — install the Avocado CLI and Docker Desktop, or install Avocado Desktop, which bundles the build VM and toolchain — no Docker Desktop required.
- Linux — install the Avocado CLI and Docker Desktop. (Avocado Desktop is macOS-only today.)
Serial console (optional)
A UART-to-USB serial console adapter is optional. You only need one if you want a serial console to the target — useful for watching early boot output or recovering a device that isn't reachable on the network. If the device is on your network, you can skip the adapter and SSH into it instead (see the SSH section below).
If you want a serial console, connect a TTY serial console USB adapter (for example, this 3.3V adapter) to the Jetson's UART GPIO header pins. Locate the horizontal GPIO pins beneath the module on the topside of the carrier board, then wire the adapter:
- black:
GNDto UART GND - green:
UART TXDto adapter UART RX - blue:
UART RXDto adapter UART TX
(The recovery-mode jumper — shorting FC REC to GND — is covered separately under Boot into recovery mode and is required whether or not you attach a serial console.)

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 ==
...
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
- If you attached a serial console adapter, leave it connected
- Apply power
The device will boot with the provisioned system. The root user has an empty password — log in over the serial console (if connected) or via SSH once the device is on the network.
SSH access
Once booted, you can SSH into the device if you know its IP address:
ssh root@<device-ip>
The dev runtime includes an SSH server with passwordless root login for development purposes.