Saltar al contenido principal

Cómo Compilar y Flashear el Código Fuente BSP para Jetson Thor

Esta wiki explica cómo usar el paquete fuente BSP para compilar y flashear el NVIDIA Jetson AGX Thor Developer Kit desde un host Ubuntu.

El flujo de trabajo en este artículo utiliza el paquete BSP JetPack 7.1 proporcionado a continuación y cubre:

  • Descargar y extraer el paquete BSP
  • Entrar en modo de recuperación USB en Thor
  • Ejecutar thor_build_flash.sh
  • Limpiar el espacio de trabajo con thor_cleanup.sh
  • Instalación opcional de paquetes post-flasheo

Requisitos Previos

  • NVIDIA Jetson AGX Thor Developer Kit
  • PC host con Ubuntu
  • Cable de datos USB Type-C
  • Fuente de alimentación estable para Thor
  • Paquete BSP para Thor
info

Usa el puerto de flasheo USB Type-C más cercano al conector HDMI cuando conectes Thor al PC host.

1. Descargar y Extraer el Paquete BSP

Primero descarga el paquete BSP:

Versión de JetPackEnlace de Descarga
7.1Descargar

Después de descargar el paquete, extráelo e ingresa al directorio de trabajo:

cd /other_data
sudo tar xpf <downloaded_package>.tar.gz
cd thor-dev/linux_for_tegra
tip

Usa sudo tar xpf al extraer el paquete para que la propiedad y los permisos de los archivos se conserven correctamente.

2. Entrar en Modo de Recuperación USB en Thor

Primero conecta el PC host al puerto de flasheo USB Type-C cerca del conector HDMI:

Los botones laterales se muestran a continuación:

Definiciones de botones en la imagen:

  • 11: Botón de encendido
  • 12: Botón de recuperación forzada
  • 13: Botón de reinicio
  • 14: LED blanco

Para entrar en modo de recuperación:

  1. Apaga Thor.
  2. Conecta el cable USB Type-C entre el PC host y el puerto de flasheo de Thor.
  3. Presiona y mantén presionado el botón de recuperación forzada (12).
  4. Mientras mantienes presionado el botón de recuperación forzada (12), presiona el botón de encendido (11) para encender la placa.
  5. Suelta el botón después de que la placa entre en modo de recuperación.

En el PC host, verifica el modo de recuperación con:

lsusb

Thor en modo de recuperación USB normalmente se enumera como:

0955:7045

Imagen de referencia:

3. Compilar y Flashear

Primero ejecuta el comando de ayuda:

cd /other_data/thor-dev/linux_for_tegra
./thor_build_flash.sh help

La configuración predeterminada de la placa ya está configurada para Thor J601:

  • CONFIG=recomputer-thor-carrier-j601
  • BOARDID=3834
  • BOARDSKU=0008
  • FAB=400
  • BOARDREV=G.5
  • CHIP_SKU=00:00:00:A0

Flujo Típico

cd /other_data/thor-dev/linux_for_tegra

./thor_build_flash.sh prepare
./thor_build_flash.sh build
sudo -E ./thor_build_flash.sh flash

También puedes ejecutar el proceso completo de una vez:

./thor_build_flash.sh all
tip

Para el primer flasheo, se recomienda el flujo dividido prepare -> build -> flash porque facilita la identificación de fallos.

Significado de las Etapas

  • prepare

    • Descarga el tarball del rootfs
    • Extrae rootfs/
    • Ejecuta apply_binaries.sh
    • Descarga y extrae la cadena de herramientas cruzada
  • build

    • Compila el kernel y los módulos fuera del árbol
    • Copia la imagen del kernel en rootfs/boot/
    • Ejecuta rootfs_magic.sh
    • Actualiza initrd
    • Crea el usuario predeterminado
  • flash

    • Llama a l4t_initrd_flash.sh
    • Requiere que la placa objetivo esté en modo de recuperación USB

Notas Importantes

  • Ejecuta build como un usuario normal, no como root.
  • Ejecuta flash con sudo -E.
  • El modo de recuperación USB de Thor normalmente es visible en el host como 0955:7045.
  • El script corrige automáticamente un enlace simbólico nvethernetrm faltante antes de la compilación.

Anulaciones Comunes

Usa variables de entorno cuando necesites anular los valores predeterminados:

CONFIG=recomputer-thor-carrier-j601 \
DOWNLOAD_BASE_URL=http://192.168.1.77/jetson \
DEFAULT_USER=seeed \
DEFAULT_PASSWORD=seeed \
DEFAULT_HOSTNAME=jetson-test \
./thor_build_flash.sh build

Variables útiles:

  • DOWNLOAD_BASE_URL
  • ROOTFS_NAME
  • TOOLCHAIN_NAME
  • DEFAULT_USER
  • DEFAULT_PASSWORD
  • DEFAULT_HOSTNAME
  • FLASH_TARGET
  • RUN_ROOTFS_MAGIC

4. Limpieza

Mostrar ayuda:

./thor_cleanup.sh help

Limpieza Diaria Recomendada

./thor_cleanup.sh incremental

Esto mantiene source/kernel_out para que la próxima compilación siga siendo rápida, mientras elimina:

  • output/
  • bootloader/system.img*
  • bootloader/esp.img*
  • bootloader/recovery.img*
  • bootloader/boot*.img
  • Artefactos temporales y registros de flasheo

Modos de Limpieza

  • incremental

    • Mantiene source/kernel_out
    • Mejor opción para desarrollo normal
  • rebuild

    • También elimina source/kernel_out
    • La próxima compilación será una recompilación completa
  • distclean

    • También elimina rootfs/ y l4t-gcc/
    • Usar solo al archivar o restablecer completamente el entorno

Ejecución en Seco

./thor_cleanup.sh incremental --dry-run

5. Paquetes Opcionales Post-Flasheo

Después de que Thor arranque exitosamente, puedes opcionalmente actualizar los metadatos de paquetes e instalar el meta-paquete nvidia-jetpack:

sudo apt update
sudo apt install nvidia-jetpack

Solución de Problemas

El arranque muestra un error mmap

Si Thor no arranca normalmente y la pantalla muestra un error mmap como la imagen de abajo, vuelve a entrar en modo de recuperación USB y reflashea la placa:

Ejecuta el siguiente comando desde el espacio de trabajo de flasheo:

cd /other_data/thor-dev/linux_for_tegra
sudo BOARDID=$BOARDID FAB=$FAB BOARDSKU=$BOARDSKU BOARDREV=$BOARDREV CHIP_SKU=$CHIP_SKU \
./l4t_initrd_flash.sh --erase-all jetson-agx-thor-devkit internal
nota

Si el error mmap persiste después de ejecutar el comando de borrar y reflashear anterior, recopila el registro de arranque completo y contacta con soporte.

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...