Jetson Orin NX
To set up Jetson Orin NX, you can either flash an SD card with a Ubuntu image (too slow, less space) or flash to an NVMe M.2 SSD mounted on the board. This tutorial covers the latter option.
Requirements
- Host PC with Ubuntu 20.04
- USB-C, HDMI, and Ethernet cables, jumper wire
- Monitor, mouse, keyboard
- M.2 NVMe SSD and M.2 Key-E Wi-Fi module (Intel AX210) with antennas
- SDK Manager
Flashing Options
There are currently two flashing options.
-
General
- Flashed using the SDK Manager
- Should work fine for most carrier boards
- If the carrier board needs specific peripheral drivers (e.g. Seeed Studio A603), otherwise some devices (e.g. MIPI cameras) won't work)
- This tutorial covers this option
infoSDK Manager method restricts you with the host PC OS version and JetPack version. For example, if you have Ubuntu 24.04 on your host PC, you can only install JetPack 6.x, which flashes Ubuntu 22.04 on the Orin. If you want to flash Ubuntu 20.04 on the Orin, you need to have Ubuntu 20.04 on your host PC and install JetPack 5.x. For a more flexible option, you can follow the CLI Flash Section at the end of this tutorial, which allows you to flash any JetPack version regardless of your host PC OS version.
-
Carrier-board-specific
- Flashed in terminal
- Ensures all the peripheral drivers are installed
- Find your Seeed Studio carrier board and follow the guide
- If the carrier board is from different manufacturer, check their webpage for instructions
Installing Using the SDK Manager
SDK Manager is an NVIDIA program that allows you to install operating systems, libraries, and additional software onto a connected NVIDIA single-board computer. It is required to install JetPack, an SDK package providing the OS, drivers, and other development tools.
Notes:
- If you have Ubuntu 20.04 on your host machine, you can install JetPack versions 5.x or 6.x.
- Only JetPack 5.x installs Ubuntu 20.04; newer versions flash Ubuntu 22.04.
-
Download the SDK Manager on your host PC.
- Click .deb Ubuntu at the top-right (you will need to create an account).
- Note the version and build number from the downloaded file, e.g., version 2.2.0 and build 12021 from sdkmanager_2.2.0-12021_amd64.deb.
-
Open a terminal and install dependencies:
sudo apt updatesudo apt install -y libcanberra-gtk-module -
Install the package, replacing version and build with the obtained numbers:
sudo dpkg -i sdkmanager_<version>-<build>_amd64.deb
Connect Jetson Orin NX
To flash the Orin NX using the SDK Manager, it must be put into Force Recovery Mode:
-
Attach a jumper or jumper wire between the
FC_RECandGNDpins on the edge of the Orin NX card (opposite the HDMI port, below the fan corner). -
Connect a USB-C cable between the dev kit and your host computer.
-
Plug in the power adapter. Optionally, connect the monitor, keyboard, and mouse.
-
On the host computer terminal, run:
lsusbLook for
ID 0955:7523 NVIDIA Corp. APX. If not visible, ensure the board is in recovery mode, powered, and properly connected.
Flash the OS with SDK Manager
-
Launch the SDK Manager and log in:
sdkmanager -
Select the Target Hardware (connected device) if not detected automatically. Choose JetPack 5.1.4 and additional SDKs if needed.
-
Continue to the Jetson SDK Components screen. Select these components, though you can install them later.
-
You will have to download ~50GB of data for the host PC and the Orin. Agree to the terms, create download folders, and wait for completion.
-
On the prompt window, select:
- Your device
- OEM Configuration as Runtime (to skip the System Configuration Wizard on first boot)
- NVMe SSD as the storage device
-
Click Flash.
infoIf the flash fails, check if the device ID is still visible. Reconnect the power supply to the dev kit if necessary and retry.
Installing Target Host Components
-
Once the system boots, complete the System Configuration wizard.
-
Connect the dev kit to the internet via Ethernet and ensure the host PC is on the same network.
Note: The Orin does not have a Wi-Fi module by default.
-
After the flash and reboot, the Orin exited recovery mode automatically, and the board is no longer be visible to the host PC (
lsusb). As a result, you need to connect via the local network. To proceed:-
Find the IPv4 address in Orin network settings or by running:
ifconfig # or `ip a` -
In SDK Manager, select Ethernet instead of USB. Enter the IP address and login details from the wizard, then click Install.
-
-
The installation can take over an hour. You may pause and resume later, but will have to wait for the current component to finish before stopping.
-
If components fail to install, use Repair / Uninstall under STEP 4 in SDK Manager.
-
Once completed:
- Shut down the Orin.
- Remove the power cable and jumper wire.
- Reconnect the power cable and boot the device.
CLI Flash Option
1. Download and Extract the Files
Here we provide directly the instructions for JetPack 5.1.6 (L4T 35.6.4), which is the latest version at the time of writing. If you need a different version of JetPack (like an older JetPack 5 release or a newer JetPack 6 release), you can find the correct Jetson_Linux_Rxx and Tegra_Linux_Sample-Root-Filesystem download links at the NVIDIA Jetson Linux Archive. Simply click your desired version and copy the download links for the "Driver Package (BSP)" and "Sample Root Filesystem".
First, download the Board Support Package (BSP) and the Sample Root Filesystem for JetPack 5.1.6 (L4T 35.6.4), and extract them:
-
Create a working directory
mkdir -p ~/jetson_flash && cd ~/jetson_flash -
Download the Jetson Linux BSP and Root Filesystem from NVIDIA
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v6.4/release/jetson_linux_r35.6.4_aarch64.tbz2wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v6.4/release/tegra_linux_sample-root-filesystem_r35.6.4_aarch64.tbz2 -
Extract the BSP (creates the Linux_for_Tegra directory)
tar -xvf jetson_linux_r35.6.4_aarch64.tbz2 -
Extract the root filesystem into the rootfs folder
cd Linux_for_Tegra/rootfs/sudo tar -jxpf ../../tegra_linux_sample-root-filesystem_r35.6.4_aarch64.tbz2
2. Configure the System Image
Apply the NVIDIA binaries to the root filesystem, install the required host dependencies, and configure the headless user:
-
Install host dependencies required for flashing
sudo ./tools/l4t_flash_prerequisites.sh -
Apply NVIDIA drivers to the root filesystem
sudo ./apply_binaries.sh -
Create the default headless user (User: f4f, Pass: f4f, Auto-login enabled)
sudo ./tools/l4t_create_default_user.sh -u f4f -p f4f -a -n uav1 --accept-license`
3. Flash the Device
Force Recovery Mode (keep pressing the recovery button while powering on the device) and connect it to the PC via USB.
You can verify the connection by running lsusb and looking for ID 0955:7523 NVIDIA Corp. APX. If not visible, ensure the board is in recovery mode, powered, and properly connected.
Flash the bootloader to QSPI and rootfs to the NVMe drive
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal`
4. Connect via SSH
Once the terminal says Flash is successful and the device reboots, the you can start working on the Orin!
Power Modes
Jetsons are designed for low power consumption. By default, the Jetson Orin NX 16GB uses only 4 of its 8 cores whenever possible. This results in low power draw (~2W for the CPU) but poor performance, especially for simulations (CPU > 90% with one drone MRS simulation).
Jetson Stats is a useful plugin for visualizing performance. You can install it:
sudo pip3 install -U jetson-stats
Run:
jtop
Change Power Mode
To enable the full capabilities of the Orin, there are power modes.
-
Navigate to the top-right corner of the screen, click the NVIDIA logo (default mode: 15W), and select 0: MAXN.
-
Alternatively, in the terminal:
sudo nvpmodel -m 0 -
Reboot the device. Verify the power mode:
sudo nvpmodel -q -
To view detailed power mode settings, open:
/etc/nvpmodel.conf- Scroll to POWER_MODEL DEFINITIONS to configure the default power mode.
Note from the documentation:
"MAXN mode is an unconstrained power mode which allows maximum number of cores and clock frequency for CPU, GPU, DLA, PVA and SOC engines like NVENC, NVDEC, etc. But it does not guarantee the best performance for all the use cases as the hardware throttling is engaged when the total module power goes beyond the TDP budget. Therefore, it is not maximum performance mode. This is an experimental mode for tweaking clock settings to create custom power modes that balance performance and power consumption. For reference, the Power Estimator can be used to estimate the power and generate the nvpmodel configuration file for custom power mode."
- Scroll to POWER_MODEL DEFINITIONS to configure the default power mode.
The max CPU frequency is 2GHz. The temperature setting can be found in the above mentioned drop down menu in Run Jetson Power GUI under Thermal / Power Monitor tab, and is set to 99.0 °C and 104.5 °C for SW Throttling and Shutdown limit respectively.
Wi-Fi Module Installation
JetPack 5.+ requires updated drivers for Wi-Fi modules. Not every module will work and you need to check the documentation for the one with right protocol. The Intel AX210 is compatible and the installation is easy (shout out to this tutorial)
-
Download the drivers:
wget https://github.com/mistelektronik/forecr_blog_files/raw/master/Intel/AX210_driver.zip -
Unpack and install:
unzip AX210_driver.zipcd AX210_driver/sudo ./apply_patch.shsudo ./disable_bt.sh- The last command disables Bluetooth, which can cause issues with Wi-Fi and other USB devices.
-
Turn off the device, mount the Wi-Fi module onto the board, and connect the antennas. After powering back on, Wi-Fi should be functional.