Jetson AGX Orin Setup

This guide covers the required steps to set up anNVIDIA Jetson AGX Orin. The Jetson runs NVIDIA Jetson Linux, an Ubuntu-based distribution with drivers and utilities optimized for the Jetson hardware.

The installation guide aims to be self-contained. However, the following resources are generally useful for developers working with the NVIDIA Jetson Orin platform:

OS Installation

There are three ways to install/upgrade the Jetson OS. We recommend using the pre-built image.

1. Pre-built Image (Recommended)

Note

Requires a host system with Ubuntu 20.04 or 22.04. Will not work on other systems or virtual machines. Ubuntu 24.04 is not supported.

The following code snippet downloads the pre-built image and extracts the packages.It needs to be run on a host system with Ubuntu 20.04 or 22.04.

Export environment variables:

# Set values for r36.4.4 and the AGX Orin development kit 64gbexportL4T_RELEASE_PACKAGE=jetson_linux_r36.4.4_aarch64.tbz2exportSAMPLE_FS_PACKAGE=tegra_linux_sample-root-filesystem_r36.4.4_aarch64.tbz2exportBOARD=jetson-agx-orin-devkit
# Download files (may need to authenticate)wgethttps://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.4/release/jetson_linux_r36.4.4_aarch64.tbz2wgethttps://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.4/release/tegra_linux_sample-root-filesystem_r36.4.4_aarch64.tbz2# Prepare filesmkdirjetson-flash&&cdjetson-flashtarxf../${L4T_RELEASE_PACKAGE}sudotarxpf../${SAMPLE_FS_PACKAGE}-CLinux_for_Tegra/rootfs/cdLinux_for_Tegra/sudo./tools/l4t_flash_prerequisites.shsudo./apply_binaries.sh# Set Jetson in recovery mode.# For the AGX:# 1. Ensure that the developer kit is powered off.# 2. Press and hold down the Force Recovery button.# 3. Press, then release the Power button.# 4. Release the Force Recovery button.# Connect Jetson to host machine via USB-C cable# Flash to eMMCsudo./flash.shjetson-agx-orin-devkitinternal# Flash to NVMesudo./tools/kernel_flash/l4t_initrd_flash.sh--external-devicenvme0n1p1\-ctools/kernel_flash/flash_l4t_t234_nvme.xml\--showlogs--networkusb0jetson-agx-orin-devkitexternal# Flash to SD cardsudo./tools/kernel_flash/l4t_initrd_flash.sh--external-devicemmcblk0p1\-ctools/kernel_flash/flash_l4t_t234_nvme.xml\--showlogs--networkusb0jetson-agx-orin-devkitexternal

2. SDK Manager

Download and install theSDK Manager and follow theSDK Manager Documentation.

Note

These instructions require an Ubuntu Host 20.04 or 22.04, or a CentOS/RedHat system. They will not work on other systems or virtual machines unless you do not use USB connections or tunnel them properly to the VM. The software disconnects multiple times during flashing, which can cause issues on many VMs.

3. SDK Manager Docker Container

For advanced users, the SDK Manager is also available as a Docker container. See theContainer Documentation for details.

Post-Installation Setup

Note

The following steps can also be executed via:

./scripts/configure-system.agx-orin.sh

Update packages and install dependencies:

sudoaptupdatesudoaptdist-upgrade-ysudoaptinstall-yapt-utilscoreutilsgit-coregitcmakebuild-essential\bclibssl-devpython3python3-pipninja-buildca-certificatescurlpandoc

Download the Sionna Research Kit:

cd~# We assume sionna-rk is cloned in the home directorygitclone--recurse-submoduleshttps://github.com/NVlabs/sionna-rk.git

Docker Installation

Install Docker from the official Docker repository:

# Add Docker's official GPG keysudoinstall-m0755-d/etc/apt/keyringssudocurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.ascsudochmoda+r/etc/apt/keyrings/docker.asc# Add the repository to Apt sourcesecho\"deb [arch=$(dpkg--print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(./etc/os-release&&echo"${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable"|\sudotee/etc/apt/sources.list.d/docker.list>/dev/null# Install Docker, plugins, and NVIDIA container runtimesudoaptupdatesudoaptinstall-ydocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-pluginnvidia-container# Add user to docker groupsudousermod-aGdocker$USER# Log out and log in again for changes to take effect

Configure Docker service:

# Create Docker service overridesudomkdir-p/etc/systemd/system/docker.service.dsudotee/etc/systemd/system/docker.service.d/override.conf<<EOF[Service]Environment="DOCKER_INSECURE_NO_IPTABLES_RAW=1"EOF# Restart Dockersudosystemctldaemon-reloadsudosystemctlrestartdocker

Set the following environment variables on your profile:

exportSRK_PLATFORM="AGX Orin"exportSRK_THREAD_POOL="6,7,8,9,10,11"exportSRK_UE_THREAD_POOL="4,5"

TensorRT Installation

Install TensorRT and monitoring tools:

sudoaptinstall-ycuda-toolkitnvidia-l4t-dla-compilertensorrt# Add trtexec alias for convenienceecho'alias trtexec=/usr/src/tensorrt/bin/trtexec'>>~/.bash_aliases# Install jetson-stats monitoring toolsudopython3-mpipinstall-Ujetson-stats# Show system statsjtop

Quectel Modem Compatibility

If you want to connect a Quectel modem via USB to the Jetson AGX Orin, you need to build a custom kernel with SCTP support and theqmi_wwan kernel module. Note that this is only needed if the Orin acts as user equipment (UE).

This can be automatically done by running the following command:

./scripts/build-custom-kernel.sh./scripts/install-custom-kernel.sh

This will build and install the custom kernel (seeCustom Jetson Linux Kernel for details). Reboot the system for the changes to take effect.

Orin Nano

The Jetson Orin Nano can also be used with the Sionna Research Kit. The setup is similar to the AGX Orin, but with different configuration values due to its 6-core CPU (vs 12 on AGX Orin).

Use the Orin Nano configuration script:

./scripts/configure-system.orin-nano.sh

Key differences from AGX Orin:

  • Power mode: Uses mode 2 (25W) instead of mode 0 (unlimited)

  • Thread pools:SRK_THREAD_POOL="2,3,4,5" andSRK_UE_THREAD_POOL="2,3,4,5"

Version Information

Check OS version:

cat/etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=22.04DISTRIB_CODENAME=jammyDISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS"

Check Jetson Linux & JetPack version:

cat/etc/nv_tegra_release# R36 (release), REVISION: 3.0, GCID: 36923193, BOARD: generic, EABI: aarch64, DATE: Fri Jul 19 23:24:25 UTC 2024# KERNEL_VARIANT: ootTARGET_USERSPACE_LIB_DIR=nvidiaTARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia