Setting up SDK Manager is painful. Even though it’s just one single RPM or DEB package, the problem is that you need a separate system for it. The SDK Manager is meant to be installed on your PC (host), specifically on a Ubuntu 20.04 if you want to flash a NVIDIA Jetson Nano (target). Thereby, the HOST will have the SDK Manager installed and will manage to download the l4t image, flash it on the TARGET (you’ll use a MicroUSB cable linking HOST and TARGET), compile some software on HOST and install it on TARGET.
In this tutorial, we’ll walk through how to install NVIDIA JetPack on your Jetson device without using the NVIDIA SDK Manager. This approach is helpful for developers facing issues with SDK Manager or those looking to streamline and automate their NVIDIA JetPack development process.
Why Install Without SDK Manager?
- Troubleshooting: Sometimes, SDK Manager might not work on certain systems due to compatibility issues.
- Automation: Bypassing SDK Manager enables you to automate the installation process.
- Custom Workflows: Gain full control over the installation process for custom configurations.
Steps to Install JetPack Without SDK Manager
Step 1: Create a Workspace Folder
If you were using SDK Manager, it would create the workspace folder at ~/nvidia/nvidia_sdk by default. For consistency, we’ll use the same directory structure:
export NVIDIA_WORKSPACE="~/nvidia/nvidia_sdk/"
mkdir -p $NVIDIA_WORKSPACE
cd $NVIDIA_WORKSPACE
Step 2: Set Up a Directory for NVIDIA JetPack
Organize your workspace by creating a dedicated directory for your JetPack version. This helps in maintaining a clean environment.
Export the desired JetPack version as an environment variable:
export JETPACK_VERSION="6.0"
Create a directory for JetPack:
export JETPACK_DIR=$NVIDIA_WORKSPACE/$JETPACK_VERSION
mkdir -p $JETPACK_DIR
cd $JETPACK_DIR
Step 3: Download NVIDIA JetPack
Go to the NVIDIA JetPack Archive and locate your desired JetPack version.
For example, for JetPack 6.0:
- Download the L4T Driver Package (BSP).
- Download the Sample Root Filesystem.
Step 4: Move the Downloaded Files to the JetPack Directory
Move the downloaded files into the JetPack directory:
mv ~/Downloads/Jetson_Linux_R36.3.0_aarch64.tbz2 $JETPACK_DIR/
mv ~/Downloads/Tegra_Linux_Sample-Root-Filesystem_R36.3.0_aarch64.tbz2 $JETPACK_DIR/
Step 5: Extract the L4T Driver Package
Ensure you’re inside the JetPack directory:
cd $JETPACK_DIR
Extract the L4T Driver Package:
sudo tar -jxf Jetson_Linux_R36.3.0_aarch64.tbz2
Step 6: Extract the Sample Root Filesystem
Navigate to the Linux_for_Tegra/rootfs directory:
cd $JETPACK_DIR/Linux_for_Tegra
Extract the Sample Root Filesystem:
sudo tar -C rootfs/ -xjf ../Tegra_Linux_Sample-Root-Filesystem_R36.3.0_aarch64.tbz2
Step 7: Apply Binaries
Navigate to the Linux_for_Tegra directory:
cd $JETPACK_DIR/Linux_for_Tegra
Run the apply_binaries script:
sudo ./apply_binaries
Step 8: Flash the NVIDIA Jetson Board
For this example, let’s assume you are flashing an NVIDIA Jetson Orin Nano.
Put your board in Recovery Mode:
- Turn off the board.
- Press and hold the RECOVERY button while powering it on.
- Connect the board to your host PC via USB.
Flash the board:
./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