Skip to main content

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.

  1. 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
    info

    SDK 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.

  2. 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.
  1. 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.
  2. Open a terminal and install dependencies:

    sudo apt update
    sudo apt install -y libcanberra-gtk-module
  3. 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:

  1. Attach a jumper or jumper wire between the FC_REC and GND pins on the edge of the Orin NX card (opposite the HDMI port, below the fan corner).

  2. Connect a USB-C cable between the dev kit and your host computer.

  3. Plug in the power adapter. Optionally, connect the monitor, keyboard, and mouse.

  4. On the host computer terminal, run:

    lsusb

    Look 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

  1. Launch the SDK Manager and log in:

    sdkmanager
  2. Select the Target Hardware (connected device) if not detected automatically. Choose JetPack 5.1.4 and additional SDKs if needed.

  3. Continue to the Jetson SDK Components screen. Select these components, though you can install them later.

  4. 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.

  5. 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
  6. Click Flash.

    info

    If 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

  1. Once the system boots, complete the System Configuration wizard.

  2. 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.

  3. 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.

  4. 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.

  5. If components fail to install, use Repair / Uninstall under STEP 4 in SDK Manager.

  6. 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

info

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:

  1. Create a working directory

    mkdir -p ~/jetson_flash && cd ~/jetson_flash
  2. 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.tbz2
    wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v6.4/release/tegra_linux_sample-root-filesystem_r35.6.4_aarch64.tbz2
  3. Extract the BSP (creates the Linux_for_Tegra directory)

    tar -xvf jetson_linux_r35.6.4_aarch64.tbz2
  4. 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:

  1. Install host dependencies required for flashing

    sudo ./tools/l4t_flash_prerequisites.sh
  2. Apply NVIDIA drivers to the root filesystem

    sudo ./apply_binaries.sh
  3. 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.

info

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.

  1. Navigate to the top-right corner of the screen, click the NVIDIA logo (default mode: 15W), and select 0: MAXN.

  2. Alternatively, in the terminal:

    sudo nvpmodel -m 0
  3. Reboot the device. Verify the power mode:

    sudo nvpmodel -q
  4. 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."

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)

  1. Download the drivers:

    wget https://github.com/mistelektronik/forecr_blog_files/raw/master/Intel/AX210_driver.zip
  2. Unpack and install:

    unzip AX210_driver.zip
    cd AX210_driver/
    sudo ./apply_patch.sh
    sudo ./disable_bt.sh
    • The last command disables Bluetooth, which can cause issues with Wi-Fi and other USB devices.
  3. 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.