This article describes how to boot the Jetson Orin Nano from NVMe storage and how to set it up with the CLI instead of using the GUI-based SDK manager.
For the host, use Ubuntu 22.04; for the Jetson Orin Nano, Jetson Linux 36.2 is to be installed. The package can be downloaded from the following URL: https://developer.nvidia.com/embedded/jetson-linux-archive
Download Package
Download the Driver Package (BSP) and Sample Root Filesystem from https://developer.nvidia.com/embedded/jetson-linux-r362 respectively. https://developer.nvidia.com/embedded/jetson-linux-r362 is linked from https://developer.nvidia.com/embedded/jetson-linux-archive
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/jetson_linux_r36.2.0_aarch64.tbz2
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/tegra_linux_sample-root-filesystem_r36.2.0_aarch64.tbz2
Code language: JavaScript (javascript)
Setup Packages
Unzip the downloaded packages. Note that sudo is required to unzip tegra_linux_sample-root-filesystem.
tar xf jetson_linux_r36.2.0_aarch64.tbz2
sudo tar xf tegra_linux_sample-root-filesystem_r36.2.0_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
Next, create an image to write to the Jetson Orin Nano.
cd Linux_for_Tegra
sudo apt install -y qemu-user-static
sudo ./apply_binaries.sh
Code language: Bash (bash)
sudo apt install -y sshpass abootimg nfs-kernel-server
Refer to https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/SD/FlashingSupport.html for official documentation. You may also refer to Jetson Nano Article.
Note that the https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/IN/QuickStart.html#to-flash-the-jetson-developer-kit-operating-software documentation suggests that sudo ./tools/l4t_flash_prerequisites.sh
need to be done after doing apply_binaries.sh
, it seems that it is just installing the necessary packages, so the above command is used instead in this article.
recovery mode
Refer to https://developer.nvidia.com/embedded/learn/jetson-orin-nano-devkit-user-guide/howto.html to move the Jetson Orin Nano into Recovery Mode. To go to the Recovery Mode, connect Pin 9 and Pin 10 of J14 with a jumper and turn on the power. The jumper is not included in the Jetson Orin Nano Developer Kit, so you need to prepare it by yourself.
The Jetson Orin Nano Developer Kit Carrier Board Specification document can be downloaded from https://developer.nvidia.com/embedded/downloads#?search=Jetson%20Orin%20Nano%20Developer%20Kit%20Carrier%20Board%20Specification.The following is the specification for J14 excerpted from the Jetson Orin Nano Developer Kit Carrier Board Specification document.

The following is the position of Pin 10 and Pin 9. Connecting Pin 9 and Pin 10 with a jumper and turning on the power, it goes to Recovery Mode.

NVMe Setup
Referring to the image below, insert the NVMe and secure it with the provided screws.

Flashing
Connect the host and Jetson Orin Nano via USB and execute the following command to confirm that the Jetson Orin Nano is in Recovery Mode.
$ lsusb |grep -i nvidia
Bus 003 Device 006: ID 0955:7523 NVIDIA Corp. APX
Once the NVIDIA device has been confirmed by the above lsusb
command, write the image to the internal flash storage and NVMe with the following command
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
Code language: JavaScript (javascript)
It takes about 10 minutes. After writing is complete, you should see a startup screen as shown below. Follow the instructions to complete the setup.

After setup is complete, shut down the system and remember to remove the jumper.
That’s it!