Question on Manual System Assembly for Jetson Orin Nano Without Using SDK Manager

Dear NVIDIA Support Team,

I am working on a project that requires manual assembly of the system for the Jetson Orin Nano platform. Since I plan to run the build on a server, using the SDK Manager is not suitable for my needs.

Previously, I successfully assembled the system for Jetson Nano by following these steps:

curl -LO https://developer.nvidia.com/embedded/l4t/r32_release_v7.4/t210/jetson-210_linux_r32.7.4_aarch64.tbz2

curl -LO https://developer.nvidia.com/embedded/dlc/l4t-gcc-7-3-1-toolchain-64-bit

curl -LO https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.4/t210/tegra_linux_sample-root-filesystem_r32.7.4_aarch64.tbz2

mv l4t-gcc-7-3-1-toolchain-64-bit l4t-gcc-7-3-1-toolchain-64-bit.tar.gz

tar -xf l4t-gcc-7-3-1-toolchain-64-bit.tar.gz

tar -xf jetson-210_linux_r32.7.4_aarch64.tbz2

folder="./Linux_for_Tegra/rootfs/"

if [ -d "$folder" ]; then
    echo "Folder '$folder' exists."

    tar -xf tegra_linux_sample-root-filesystem_r32.7.4_aarch64.tbz2 -C $folder

else
    echo "Folder '$folder' does not exist."
fi

rm -r l4t-gcc-7-3-1-toolchain-64-bit.tar.gz
rm -r jetson-210_linux_r32.7.4_aarch64.tbz2
rm -r tegra_linux_sample-root-filesystem_r32.7.4_aarch64.tbz2

cd Linux_for_Tegra/

./source_sync.sh (then enter tegra-l4t-r32.7.4 - kernel version 4.9-253)
cd ..
export TEGRA_KERNEL_OUT=$PWD/kbuild
export CROSS_COMPILE=$PWD/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export LOCALVERSION=-tegra

cd Linux_for_Tegra/sources/kernel/kernel-4.9/
mkdir -p $TEGRA_KERNEL_OUT
make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
make ARCH=arm64 O=$TEGRA_KERNEL_OUT menuconfig
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j4 --output-sync=target dtbs
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j4 --output-sync=target zImage

Currently, I am attempting to configure the system assembly for Jetson Orin Nano using Jetson Linux 36.3. However, I have noticed that the structure and contents of this version differ significantly from the previous one. Here are the steps I have completed so far:

curl -LO https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/jetson_linux_r36.3.0_aarch64.tbz2

curl -LO https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2

curl -LO https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2

tar -xf jetson_linux_r36.3.0_aarch64.tbz2

tar -xf aarch64--glibc--stable-2022.08-1.tar.bz2

sudo tar -xpf tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2 -C ./Linux_for_Tegra/rootfs/

cd Linux_for_Tegra
sudo ./tools/l4t_flash_prerequisites.sh
sudo ./apply_binaries.sh
1.	What additional steps are necessary for manually assembling the system for Jetson Orin Nano based on Jetson Linux 36.3?
2.	What are the key differences in configuration or kernel assembly compared to previous versions, such as R32?
3.	What dependencies and tools are required for this version of Jetson Linux?
4.	Are there any specific settings that should be considered when building for Jetson Orin Nano?

I would appreciate any information or recommendations you can provide on this matter.

Regards,
Georgiy

The generation gap between rel-32 Jetson Nano and Orin Nano is quite large.

For example, you need to clarify you want to use rel-35 or rel-36 first as these two versions both support Orin Nano but the details of them are also different.

Hi @WayneWWW

I think it’s better to use rel-36

This document will share the method to build kernel for jetpack6.

https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel.html

thanks for the quick reply