Crear y flashear una imagen Yocto para reComputer Super
Esta guía compila una imagen Yocto de Seeed para reComputer Super J401 con un módulo Jetson Orin NX de 16 GB y la flashea en la unidad NVMe del Jetson.
El ejemplo utiliza seeed-image-jetson-development. Esta imagen proporciona un entorno de desarrollo en el lado del objetivo con CUDA Toolkit y nvcc, archivos de desarrollo CUDA/cuDNN/TensorRT/VPI/OpenCV, herramientas de compilación y depuración, ejemplos de NVIDIA y paquetes de prueba.

Este es un sistema OpenEmbedded/Yocto, no un sistema de archivos raíz Ubuntu instalado por NVIDIA SDK Manager. La gestión de paquetes, el contenido del sistema de archivos y el entorno de escritorio difieren de JetPack Ubuntu.
Requisitos previos
Prepara lo siguiente:
- Un PC host Linux x86_64, preferiblemente una máquina física con Ubuntu o Debian
- Al menos 16 GB de RAM; se recomiendan 32 GB o más
- Un SSD local rápido y una conexión a Internet estable
- Un reComputer Super con un módulo Jetson Orin NX u Orin Nano compatible
- Un cable de datos USB Tipo C conectado directamente al PC host
- Acceso a
sudopara instalar paquetes en el host y flashear
Reserva al menos 400 GB de espacio libre en disco en el PC host. Las descargas de Yocto, la caché de estado compartido, los archivos temporales de compilación, el sistema de archivos raíz y el paquete de flasheo extraído pueden consumir varios cientos de gigabytes. Se recomienda encarecidamente un SSD local en el host.
Instala los paquetes de host comúnmente requeridos:
sudo apt update
sudo apt install -y \
gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio \
python3 python3-pip python3-pexpect python3-git python3-jinja2 \
xz-utils debianutils iputils-ping libegl1-mesa libsdl1.2-dev \
pylint xterm zstd liblz4-tool file locales \
gdisk parted udev udisks2
Si BitBake indica que la distribución del host no es compatible, utiliza un host Linux compatible con Yocto en lugar de ignorar la advertencia de validación del host.
SKU de módulo utilizado en esta guía
El reComputer Super J401 es compatible con los siguientes SKU de módulo P3767:
--module-sku | Número completo de módulo | Módulo Jetson |
|---|---|---|
0000 | P3767-0000 | Jetson Orin NX 16GB |
0001 | P3767-0001 | Jetson Orin NX 8GB |
0003 | P3767-0003 | Jetson Orin Nano 8GB |
0004 | P3767-0004 | Jetson Orin Nano 4GB |
Esta guía utiliza 0000. Utiliza siempre un directorio de compilación separado para cada combinación de carrier y SKU de módulo.
Clonar el repositorio Yocto de Seeed
Crea un espacio de trabajo limpio y clona la rama master:
mkdir -p ~/work/jetson-yocto
cd ~/work/jetson-yocto
git clone \
--branch master \
--single-branch \
https://github.com/jjjadand/seeed-tegra-demo-distro.git \
tegra-demo-distro
cd tegra-demo-distro
El repositorio principal contiene los metadatos de Seeed y los scripts auxiliares. prepare-workspace.sh inicializa las capas OpenEmbedded y OE4T fijadas como submódulos de Git.
Compilar la imagen de desarrollo completa con all
La primera compilación recomendada utiliza build.sh all. Valida los metadatos, compila los device trees de Seeed, comprueba los archivos de arranque y compila la imagen completa y el archivo tegraflash en orden.
Preparar el directorio de compilación
./scripts/seeed/prepare-workspace.sh \
--machine recomputer-orin-super-j401 \
--module-sku 0000 \
--build-dir build-seeed-super-j401-sku0000 \
--cache-dir "$HOME/.cache/yocto-seeed"
La caché compartida mantiene las descargas y el sstate fuera del directorio de compilación para que puedan reutilizarse en compilaciones posteriores.
Confirma el directorio de compilación activo, el carrier y el SKU de módulo:
./scripts/seeed/build.sh current \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401
La salida debe mostrar:
Machine: recomputer-orin-super-j401
Module SKU: 0000

No continúes si el MACHINE mostrado o el SKU de módulo no coinciden con el hardware. No reutilices este directorio de compilación para otro carrier o SKU de módulo.
Ejecutar la compilación completa
Compila la imagen de desarrollo en el lado del objetivo:
./scripts/seeed/build.sh all \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
La primera compilación descarga y compila un gran número de componentes y puede tardar varias horas. El comando se detiene inmediatamente si la validación de metadatos, la compilación del device tree, las comprobaciones de archivos de arranque o la compilación de la imagen fallan.
Cuando las cuatro etapas se completan correctamente, la salida del terminal es similar a la siguiente:

Después de una compilación correcta, el directorio de despliegue es:
build-seeed-super-j401-sku0000/tmp/deploy/images/recomputer-orin-super-j401/
Los archivos generados importantes incluyen:
seeed-image-jetson-development-recomputer-orin-super-j401.rootfs.ext4
seeed-image-jetson-development-recomputer-orin-super-j401.rootfs.manifest
seeed-image-jetson-development-recomputer-orin-super-j401.rootfs.spdx.json
seeed-image-jetson-development-recomputer-orin-super-j401.rootfs.testdata.json
seeed-image-jetson-development-recomputer-orin-super-j401.rootfs.tegraflash-tar.zst

El archivo .tegraflash-tar.zst es el archivo autocontenido que se utiliza para flashear.
Preparar el directorio de flasheo
Extrae y valida el archivo de flasheo de la imagen de desarrollo:
./scripts/seeed/prepare-flash.sh \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development \
--output-dir "$HOME/seeed-flash-recomputer-orin-super-j401-sku0000"
El asistente verifica el SKU del módulo y comprueba que la imagen rootfs, el DTB, el BPMP DTB, la configuración de pinmux, la configuración de voltaje de pines y los scripts de flasheo estén presentes. Luego muestra el directorio preparado y el siguiente comando exacto.
Utiliza un directorio de salida nuevo o vacío en el SSD local del host. No extraigas el paquete de flasheo en la unidad de destino del Jetson.
Poner el reComputer Super en modo Force Recovery
- Apaga el reComputer Super.
- Coloca el interruptor de recuperación del reComputer Super en la posición RESET.
- Conecta la fuente de alimentación.
- Conecta el puerto de dispositivo/depuración USB Tipo C al host Linux con un cable de datos.
- En el PC host, verifica el modo de recuperación:
lsusb -d 0955:
Para el módulo Orin NX de 16 GB utilizado en esta guía, la salida debe incluir un dispositivo similar a:
0955:7323 NVIDIA Corp. APX
Otros módulos Super compatibles utilizan diferentes ID de producto USB:
| Módulo | ID USB de recuperación |
|---|---|
| Orin NX 16GB | 0955:7323 |
| Orin NX 8GB | 0955:7423 |
| Orin Nano 8GB | 0955:7523 |
| Orin Nano 4GB | 0955:7623 |
No inicies el flasheo hasta que el dispositivo NVIDIA APX sea visible.
Flashear la imagen Yocto
Ejecuta el flasher generado desde el directorio preparado:
cd "$HOME/seeed-flash-recomputer-orin-super-j401-sku0000"
sudo ./initrd-flash
El script arranca un flasher temporal initrd a través de USB, expone la unidad NVMe de destino al host, escribe las particiones y recupera el estado final del dispositivo. No desconectes el USB ni la alimentación mientras se está ejecutando.
Un flasheo correcto termina con una salida similar a:
[OK: /dev/sdX]
Final status: SUCCESS
Successfully finished
El nombre temporal del dispositivo de bloque en el host se asigna dinámicamente. No supongas que siempre es /dev/sdb o /dev/sdc.
Primer arranque
Después de que el comando de flasheo termine correctamente:
- Desconecta el cable de datos USB.
- Devuelve el interruptor de recuperación de RESET a su posición normal.
- Apaga el dispositivo durante varios segundos.
- Conecta una pantalla HDMI y vuelve a encender el reComputer Super.
El escritorio Yocto debería arrancar desde la unidad NVMe flasheada:

La imagen de desarrollo permite el inicio de sesión local como root con una contraseña inicial vacía. Establece una contraseña inmediatamente:
passwd
Verifica el entorno de desarrollo en el lado del objetivo:
nvcc --version
gcc --version
cmake --version
test -f /usr/local/cuda-13.2/include/cuda.h
test -f /usr/include/cudnn.h
test -f /usr/include/NvInfer.h
test -f /opt/nvidia/vpi4/include/vpi/VPI.h
pkg-config --modversion opencv4
Comandos detallados de compilación parametrizada
La sección anterior utilizó all, que es la ruta recomendada para una primera compilación. Para depurar o recompilar una etapa, ejecuta el mismo flujo de trabajo explícitamente:
# 1. Validate metadata and print the selected BSP variables
./scripts/seeed/build.sh metadata \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
# 2. Build the Seeed DTB and DTBO files
./scripts/seeed/build.sh dtb \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
# 3. Install and verify the custom BCT, pinmux, and boot files
./scripts/seeed/build.sh bootfiles \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
# 4. Build the complete root filesystem and tegraflash archive
./scripts/seeed/build.sh image \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
Si el sistema de archivos raíz ya está compilado y solo es necesario regenerar el archivo tegraflash, utiliza:
./scripts/seeed/build.sh flash-package \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
Opcional: compilar un SDK de desarrollo cruzado x86_64
La imagen de desarrollo flasheada ya admite la compilación directamente en el Jetson. Compila el SDK de host solo cuando un PC x86_64 deba compilar aplicaciones de forma cruzada para el objetivo:
./scripts/seeed/build.sh sdk \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
El instalador del SDK generado se coloca en:
build-seeed-super-j401-sku0000/tmp/deploy/sdk/
Este instalador opcional no es necesario para compilar la imagen de Jetson ni para flashear el dispositivo.
Solución de problemas
El directorio de compilación informa la máquina o el SKU incorrectos
Crea un nuevo directorio de compilación con prepare-workspace.sh. No edites un directorio de compilación existente para cambiar placas carrier o SKUs de módulo.
No se puede encontrar el archivo de flasheo
Asegúrate de pasar el mismo nombre de imagen tanto a la compilación como a la preparación del flasheo:
seeed-image-jetson-development
prepare-flash.sh usa por defecto demo-image-full, por lo que omitir --image seeed-image-jetson-development haría que buscara el archivo de flasheo equivocado.
El flasheo se detiene en Waiting for USB storage device flashpkg
En este punto, el host está esperando a que el initrd de Jetson exponga un dispositivo de almacenamiento masivo USB temporal. Comprueba el cable USB, usa un puerto USB de la placa base, retira dispositivos de almacenamiento USB innecesarios y confirma que el Jetson sigue siendo visible con lsusb.
Referencias
- Repositorio Seeed tegra-demo-distro
- Compilación rápida de Yocto Project
- Documentación de OE4T meta-tegra
Soporte técnico y debate sobre productos
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a distintas preferencias y necesidades.