This guide walks through the process of compiling the system and flashing it onto an NVIDIA Jetson Orin device using the Linux for Tegra (L4T) package.
1. Compilation Steps
Step 1: Enter the rootfs directory
cd rootfs
Step 2: Extract the root filesystem (run once only)
sudo tar -xpf Tegra_Linux_Sample-Root-Filesystem_R36.3.0_aarch64.tbz2 -C ../Linux_for_Tegra/rootfs/ && sync
Step 3: Go to the Linux_for_Tegra directory
cd ../Linux_for_Tegra
Step 4: Apply NVIDIA binary blobs (run once only)
sudo ./apply_binaries.sh && sync
Step 5: Create default user (for initial boot)
sudo ./tools/l4t_create_default_user.sh -u neardi -p neardi
During this step, an interactive prompt will appear.
When prompted, selectApplyand pressEnterto confirm.
Step 6: Go to the source build directory
cd ../source/build/
Step 7: Start the build process
./build.sh
2. Flashing the Device
Step 1: Connect the Jetson board to your PC via USB
Use a USB Type-C cable to connect the Jetson Orin Nano to your Ubuntu host.
Step 2: Put the board into recovery mode
To enter recovery mode:
- Press and hold the two outermost buttons on the carrier board.
- Release the outermost button after 3 seconds, then release the other one.
- Verify that the board is in recovery mode using:
lsusb
If you see a device listed as NVIDIA Corp. APX, the board is in recovery mode.
Step 3: Install prerequisites (for the first-time flashing)
Before the first flash, install required dependencies:
cd Linux_for_Tegra
sudo ./tools/l4t_flash_prerequisites.sh
Note:
Ensure the Linux_for_Tegra/rootfs directory exists before flashing.
After unpacking the root filesystem, always run apply_binaries.sh to install necessary NVIDIA drivers and libraries.
Step 4: Flash the device
Use the following command to flash the system to an external NVMe drive:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
--external-device nvme0n1p1 \
-p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" \
-c ./tools/kernel_flash/flash_l4t_t234_nvme.xml \
--showlogs \
--network usb0 \
jetson-orin-nano-devkit \
nvme0n1p1