Skip to main content

Cómo Compilar el Proyecto de Código Fuente para el BSP de Jetson de Seeed

Este wiki demuestra cómo obtener el código fuente del BSP para los productos Jetson de Seeed, organizarlo en un paquete completo de código fuente BSP, y compilarlo/flashearlo en dispositivos Jetson.

1. Preparar el espacio de trabajo

Esta guía toma L4T 36.4.3 como ejemplo para demostrar cómo compilar el proyecto de código fuente, compilarlo y flashearlo al dispositivo Jetson. El mismo proceso se aplica a otras versiones—simplemente reemplaza el número de versión en los comandos de ejemplo posteriores con tu versión de compilación deseada.

Antes de comenzar, necesitas preparar un PC host con Ubuntu 20.04/22.04.

Si no estás seguro sobre la relación entre las versiones de L4T y las versiones de JetPack, puedes consultar este enlace: https://developer.nvidia.com/embedded/jetpack-archive.

Busca la versión específica de L4T (Linux for Tegra) que quieres compilar, por ejemplo:

Extrae el BSP oficial de NVIDIA, y obtendrás un directorio llamado Linux_for_Tegra. Luego, extrae el archivo del sistema de archivos raíz en el directorio oficial 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/

Sincroniza el código fuente para compilar. Reemplaza el argumento después de -t con la versión de L4T que deseas:

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

Sal al directorio raíz de tu espacio de trabajo. Clona con Git el código fuente de tu rama deseada a tu máquina local usando el siguiente comando (reemplaza -b <nombre de rama> con la rama objetivo):

sudo apt update
sudo apt install git-lfs
cd ../..
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

El código fuente del BSP para el Jetson de Seeed está disponible en este repositorio de GitHub. Puedes revisar las diferentes ramas para encontrar tu versión de L4T deseada, ya que cada rama corresponde a una versión diferente de L4T.

Luego sobrescribe el código fuente original:

cp -r github/Linux_for_Tegra/* Linux_for_Tegra/

Aplica los cambios necesarios a rootfs:

cd Linux_for_Tegra
sudo ./apply_binaries.sh

Instala las dependencias en tu PC:

sudo apt-get update
sudo apt-get install build-essential flex bison libssl-dev
sudo apt-get install sshpass
sudo apt-get install abootimg
sudo apt-get install nfs-kernel-server
sudo apt-get install libxml2-utils
sudo apt-get install qemu-user-static

trabajo de preparación para la compilación del kernel:

mkdir -p l4t-gcc
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2 -C ./l4t-gcc
export ARCH=arm64
export CROSS_COMPILE=/your_path/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-

Compila y construye el kernel:

cd source
./nvbuild.sh

Instala los nuevos dtbs del kernel y controladores:

./do_copy.sh
export INSTALL_MOD_PATH=/your_path/Linux_for_Tegra/rootfs/
./nvbuild.sh -i
tip

Para JetPack 5, dado que las rutas de archivos son diferentes, necesitas modificar el parámetro -p a: -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml"

Para Jetpack 6, flasheando el dispositivo (toma recomputer-orin-j401 como ejemplo):

sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
--external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
-p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs \
--network usb0 recomputer-orin-j401 internal

Reemplaza recomputer-orin-j401 con el nombre del dispositivo que estás usando. Necesitas proporcionar un nombre de dispositivo válido como parámetro, que puedes encontrar revisando los nombres de archivos .conf en el directorio raíz de Linux_for_Tegra. El prefijo de estos nombres de archivo corresponde a los parámetros válidos de nombre de dispositivo.

Por lo tanto, los parámetros de nombre de dispositivo disponibles para L4T 36.4.3 son los siguientes. Las series j40 y j30 usan el mismo archivo de configuración:

  • recomputer-industrial-orin-j201 (recomputer-industrial-orin-j40/j30 también usa este nombre de dispositivo como parámetro.)
  • recomputer-orin-j401
  • reserver-agx-orin-j501x
  • reserver-agx-orin-j501x-gmsl
  • reserver-industrial-orin-j401
  • recomputer-orin-j40mini
  • recomputer-orin-robotics-j401
  • recomputer-orin-super-j401

Recursos

Soporte Técnico y Discusión de Productos

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

Loading Comments...