Saltar al contenido principal

Desplegar OTA en reComputer

Introducción​

Las actualizaciones Over-the-Air (OTA) de NVIDIA Jetson permiten a los desarrolladores actualizar dispositivos edge de una versión anterior de JetPack a una versión más reciente de forma remota a través de una conexión de red, eliminando la necesidad de un PC host o re-flasheo físico por USB. Esta wiki demostrará cómo realizar actualizaciones OTA (Over-the-Air) en reComputer.

nota

Plataforma de demostración: reComputer mini J4012 con JetPack 5.1.3 → JetPack 6.2 OTA. Otros reComputers basados en Orin pueden seguir la misma lógica, pero adaptar el nombre <target_board> que coincida con su placa portadora.

Prerrequisitos​

Realizar OTA rápidamente​

Aquí proporcionamos un paquete de actualización precompilado para la placa de desarrollo Seeed, que actualiza de Jetpack 5.1.3 a Jetpack 6.2. Si planeas actualizar directamente de Jetpack 5.1.3 a Jetpack 6.2 vía OTA, simplemente puedes descargar y proceder con la actualización rápidamente.

reComputer mini
Preview

Paquete de payload OTA

Payload OTA JP5.1.3 → JP6.2 listo para usar para la serie mini de reComputer mini

Nombre de archivo: ota_payload_package.tar.gz

SHA256: 3da8fd97c450f4f7bd83390ab50f951dffd5ec1d43c39a1e6156b4806f7df7c6

Descargar: OneDrive 1

Procedimiento OTA en el dispositivo​

nota

Las siguientes operaciones se realizan en el Jetson (vía conexión remota)

Paso 1. Instalar software dependiente

sudo apt-get update
sudo apt-get install efibootmgr nvme-cli -y

Paso 2. Descargar la herramienta OTA

#Create a workspace directory
mkdir ~/ota_ws && cd ota_ws
#Download the OTA tools from Nvidia
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/ota_tools_r36.4.3_aarch64.tbz2
# Uncompress
tar xvf ota_tools_r36.4.3_aarch64.tbz2

Después de descomprimir los archivos anteriores, obtendrás una carpeta llamada "Linux_for_Tegra".

Paso 3. Transferir el archivo ota al Jetson (¡Este paso debe realizarse en tu PC!)

info

Reemplaza <Jetson IP> con la dirección IP real de tu Jetson. Por ejemplo: 192..168.137.xx Reemplaza la ruta del archivo ota_payload_package.tar.gz y la ruta ota_ws con tu ruta real

#example:Use scp to transfer files
scp /path/to/your downloaded/ota_payload_package.tar.gz seeed@<Jetson IP>:/home/user/ota_ws

Paso 4. Hacer copia de seguridad de los archivos del sistema original

cd /path/ota_ws/Linux_for_Tegra/tools/ota_tools/version_upgrade/
#The editor needs to keep a backup of the file directory that needs to be preserved.
vim ota_backup_files_list.txt
nota

Lista los archivos o carpetas que quieres conservar. ¡Usa ruta absoluta!

./nv_ota_preserve_data.sh

Paso 5. Iniciar OTA

cd Linux_for_Tegra/tools/ota_tools/version_upgrade
#Specify the directory of the OTA file
sudo ./nv_ota_start.sh ~/ota_ws/ota_payload_package.tar.gz

Después de que se ejecute el script, puedes reiniciar Jetson para iniciar el proceso OTA. Si tu dispositivo está conectado a un monitor, cuando reinicies, verás que el monitor mostrará el logo de Nvidia y luego entrará en kernel overlay. La pantalla permanecerá negra (un fenómeno normal) por un tiempo, y luego entrará en el proceso OTA.

Después de que se complete todo el proceso, necesitas entrar al sistema para configurar el nombre de usuario y contraseña.

Paso 6. Validación post-actualización

Una vez que el dispositivo arranque en JetPack 6.2:

nvbootctrl -t
sudo nvme list
cat /etc/nv_tegra_release

Asegúrate de que la versión reportada coincida con R36 (release), REVISION: 4.3, y confirma que tus aplicaciones inicien como se espera. ¡Felicidades! El proceso OTA fue exitoso. ¡Los archivos del sistema también fueron guardados previamente!

Otras versiones de OTA (opcional)​

Arriba, solo hemos proporcionado la versión común del paquete OTA. Si necesitas actualizar de la versión actual de OTA a otra versión, por favor consulta los siguientes pasos para generar el paquete OTA correspondiente. Lo que estamos demostrando ahora es la actualización de Jetpack 5.1.3 a la versión objetivo, Jetpack 6.2.

Preparar el BSP objetivo (JetPack 6.2)​

Todos los comandos a continuación se ejecutan en el PC Ubuntu.

Paso 1. Descargar paquetes NVIDIA JetPack 6.2.

wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Jetson_Linux_r36.4.3_aarch64.tbz2
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Tegra_Linux_Sample-Root-Filesystem_r36.4.3_aarch64.tbz2

Paso 2. Extraer el BSP en Linux_for_Tegra.

tar xf Jetson_Linux_r36.4.3_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_r36.4.3_aarch64.tbz2 -C Linux_for_Tegra/rootfs/

Paso 3. Sincronizar fuentes NVIDIA para JP6.2.

cd Linux_for_Tegra/source/
./source_sync.sh -t jetson_36.4.3
cd ../..

Paso 4. Superponer personalizaciones de Seeed.

mkdir -p github/Linux_for_Tegra
git clone https://github.com/Seeed-Studio/Linux_for_Tegra.git -b r36.4.3 --depth=1 github/Linux_for_Tegra
cp -r github/Linux_for_Tegra/* Linux_for_Tegra/

Paso 5. Aplicar binarios NVIDIA y dependencias del host.

cd Linux_for_Tegra
sudo ./apply_binaries.sh
sudo apt-get update
sudo apt-get install -y build-essential flex bison libssl-dev sshpass \
abootimg nfs-kernel-server libxml2-utils qemu-user-static

Paso 6. Instalar la cadena de herramientas de Jetson para la compilación del kernel.

wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2
mkdir -p l4t-gcc
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2 -C ./l4t-gcc
export ARCH=arm64
export CROSS_COMPILE=$(realpath .)/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-

Paso 7. Compilar el kernel, DTBs y módulos.

cd source
./nvbuild.sh
./do_copy.sh
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i
cd ..

En este punto, el BSP JP6.2 bajo ~/JP6.2/Linux_for_Tegra (o la ruta que hayas elegido) está listo para ser usado como el BSP TARGET para el script de generación OTA.

Preparar el BSP Base (JetPack 5.1.3)​

Usa un espacio de trabajo limpio (por ejemplo, ~/JP5.1.3/).

Paso 1. Descargar los paquetes de JetPack 5.1.3.

wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v5.0/release/Jetson_Linux_R35.5.0_aarch64.tbz2
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v5.0/release/Tegra_Linux_Sample-Root-Filesystem_r35.5.0_aarch64.tbz2

Paso 2. Extraer y copiar las superposiciones BSP de Seeed.

tar xf Jetson_Linux_R35.5.0_aarch64.tbz2 -C JP5.1.3
cd JP5.1.3
git clone -b r35.5.0 https://github.com/Seeed-Studio/Linux_for_Tegra.git
cp -rf Linux_for_Tegra/* ./Linux_for_Tegra/

Paso 3. Poblar el sistema de archivos raíz y aplicar binarios.

cd Linux_for_Tegra
sudo tar xpf ../Tegra_Linux_Sample-Root-Filesystem_r35.5.0_aarch64.tbz2 -C rootfs
sudo ./apply_binaries.sh

Paso 4. Instalar la cadena de herramientas GCC de Bootlin para compilaciones del kernel JP5.

wget https://developer.nvidia.com/embedded/jetson-linux/bootlin-toolchain-gcc-93 -O bootlin-toolchain-gcc-93.tar.bz2
mkdir -p l4t-gcc
tar xf bootlin-toolchain-gcc-93.tar.bz2 -C ./l4t-gcc
export ARCH=arm64
export CROSS_COMPILE_AARCH64_PATH=$(realpath .)/l4t-gcc

Paso 5. Compilar e instalar módulos, árboles de dispositivos y controladores personalizados.

cd source
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i -r ${INSTALL_MOD_PATH}
./do_copy.sh

Tu ruta BSP JP5.1.3 (por ejemplo /home/seeed/test/5.1.3/Linux_for_Tegra) actuará como el BSP BASE durante la generación del paquete OTA.

Generar el Paquete OTA en el Host​

Navega al espacio de trabajo JP6.2 y ejecuta el script auxiliar OTA de NVIDIA:

cd ~/JP6.2/Linux_for_Tegra/tools/ota_tools/
./start_generate_ota_pkg.sh

El script solicitará la siguiente información:

  • Ruta BASE_BSP: /home/seeed/test/5.1.3/Linux_for_Tegra
  • Ruta TARGET_BSP: /home/seeed/test/6.2/Linux_for_Tegra
  • Nombre target_board: recomputer-orin-j40mini (usa el nombre .conf que coincida con tu dispositivo)
  • bsp_version (Rmm-n): R35-5 para JetPack 5.1.3

Si todo está configurado correctamente, la herramienta termina con:

Realizar la OTA en el Dispositivo Jetson​

Consulta de nuevo el procedimiento OTA en el dispositivo para los pasos detallados.

Recursos​

Soporte Técnico y Discusión de Productos​

¡Gracias por elegir Seeed Studio! Si necesitas más asistencia, comunícate a través de los siguientes canales:

Loading Comments...