mirror of
https://github.com/azaion/loader.git
synced 2026-04-22 06:56:31 +00:00
cfed26ff8c
Made-with: Cursor
63 lines
2.0 KiB
Bash
Executable File
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
|