Create a minimum sample root file system for NRU-154PoE/156U3-FT
This script provide automate downloading, preparing, and flashing an L4T (Jetson Linux) image with a minimal Ubuntu root filesystem and custom BSP for a Jetson NX150 platform with dhcp enalbe.
Jetpack6.0
#!/usr/bin/env bash
set -e
# Automatically detect the script's base path
BASE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
################
# Download L4T #
################
L4T_VERSION_MAJOR=36
L4T_VERSION_MINOR=3
L4T_VERSION_PATCH=0
JETSON_LINUX_URL=https://developer.nvidia.com/downloads/embedded/l4t/r${L4T_VERSION_MAJOR}_release_v${L4T_VERSION_MINOR}.${L4T_VERSION_PATCH}/release/jetson_linux_r${L4T_VERSION_MAJOR}.${L4T_VERSION_MINOR}.${L4T_VERSION_PATCH}_aarch64.tbz2
mkdir -p "$BASE_PATH" && cd "$BASE_PATH"
wget "$JETSON_LINUX_URL" || true
tar xf jetson_linux_r${L4T_VERSION_MAJOR}.${L4T_VERSION_MINOR}.${L4T_VERSION_PATCH}_aarch64.tbz2 && rm jetson_linux_r${L4T_VERSION_MAJOR}.${L4T_VERSION_MINOR}.${L4T_VERSION_PATCH}_aarch64.tbz2
#########################
# Create basic samplefs #
#########################
cd "$BASE_PATH/Linux_for_Tegra/tools/samplefs"
for pkg in zstd network-manager efibootmgr libseat1 nvme-cli; do
echo "$pkg" | sudo tee -a *basic-aarch64-packages
done
sudo ./nv_build_samplefs.sh --abi aarch64 --distro ubuntu --version jammy --flavor basic
sudo tar xf sample_fs.tbz2 -C ../../rootfs/ && rm sample_fs.tbz2
###############
# Extract BSP #
###############
cd "$BASE_PATH/Linux_for_Tegra"
cp ../../nx150_JP60PROD_ES2_2025-06-17_0936.tar.gz . && tar xf *.tar.gz && rm *.tar.gz
########################
# Prepare for flashing #
########################
cd "$BASE_PATH"
sudo ./Linux_for_Tegra/tools/l4t_flash_prerequisites.sh
sudo ./Linux_for_Tegra/apply_binaries.sh
cd Linux_for_Tegra
sudo ./tools/l4t_update_initrd.sh
cd "$BASE_PATH"
sudo ./Linux_for_Tegra/tools/l4t_create_default_user.sh --username nvidia --password nvidia --accept-license
# Enable DHCP client on boot
sudo bash -c 'echo -e "[Unit]\nDescription=DHCP Client\nAfter=network.target\n\n[Service]\nExecStart=/sbin/dhclient\nRestart=always\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/dhcpclient.service'
sudo systemctl enable dhcpclient.service
sudo rm -f Linux_for_Tegra/rootfs/etc/systemd/system/default.target
#########
# Flash #
#########
cd Linux_for_Tegra
sudo ./flash_nx150_dtb+pinmux.sh
Last updated