Files
loader/scripts/ensure_l4t.sh
T
Oleksandr Bezdieniezhnykh cfed26ff8c [AZ-187] Docker & hardening
Made-with: Cursor
2026-04-17 18:48:55 +03:00

63 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
L4T_VERSION="${L4T_VERSION:-r36.4.4}"
L4T_DIR="${L4T_DIR:-/opt/nvidia/Linux_for_Tegra}"
ROOTFS_DIR="${ROOTFS_DIR:-${L4T_DIR}/rootfs}"
l4t_download_url() {
local version="$1"
local major minor patch
IFS='.' read -r major minor patch <<< "${version#r}"
echo "https://developer.nvidia.com/downloads/embedded/l4t/r${major}_release_v${minor}.${patch}/release/Jetson_Linux_${version}_aarch64.tbz2"
}
rootfs_download_url() {
local version="$1"
local major minor patch
IFS='.' read -r major minor patch <<< "${version#r}"
echo "https://developer.nvidia.com/downloads/embedded/l4t/r${major}_release_v${minor}.${patch}/release/Tegra_Linux_Sample-Root-Filesystem_${version}_aarch64.tbz2"
}
if [[ -f "$L4T_DIR/flash.sh" ]]; then
echo "L4T BSP already installed at $L4T_DIR"
else
echo "L4T BSP not found at $L4T_DIR"
echo "Downloading and installing L4T $L4T_VERSION..."
bsp_url="$(l4t_download_url "$L4T_VERSION")"
rootfs_url="$(rootfs_download_url "$L4T_VERSION")"
tmp_dir="$(mktemp -d)"
echo " Downloading BSP from $bsp_url ..."
wget -q --show-progress -O "$tmp_dir/bsp.tbz2" "$bsp_url"
echo " Downloading Sample Root Filesystem from $rootfs_url ..."
wget -q --show-progress -O "$tmp_dir/rootfs.tbz2" "$rootfs_url"
echo " Extracting BSP to $(dirname "$L4T_DIR")/ ..."
sudo mkdir -p "$(dirname "$L4T_DIR")"
sudo tar -xjf "$tmp_dir/bsp.tbz2" -C "$(dirname "$L4T_DIR")"
echo " Extracting rootfs to $L4T_DIR/rootfs/ ..."
sudo tar -xjf "$tmp_dir/rootfs.tbz2" -C "$L4T_DIR/rootfs/"
echo " Running apply_binaries.sh ..."
sudo "$L4T_DIR/apply_binaries.sh"
rm -rf "$tmp_dir"
echo "L4T $L4T_VERSION installed to $L4T_DIR"
fi
for tool in flash.sh odmfuse.sh; do
if [[ ! -f "$L4T_DIR/$tool" ]]; then
echo "ERROR: $L4T_DIR/$tool not found after L4T setup" >&2
exit 1
fi
done
NV_RELEASE="$L4T_DIR/rootfs/etc/nv_tegra_release"
if [[ -f "$NV_RELEASE" ]]; then
echo "L4T release: $(head -1 "$NV_RELEASE")"
fi