Compilar e Gravar uma Imagem Yocto para o reComputer Super
Este guia compila uma imagem Yocto da Seeed para o reComputer Super J401 com um módulo Jetson Orin NX 16GB e a grava na unidade NVMe do Jetson.
O exemplo usa seeed-image-jetson-development. Esta imagem fornece um ambiente de desenvolvimento no lado do alvo com CUDA Toolkit e nvcc, arquivos de desenvolvimento CUDA/cuDNN/TensorRT/VPI/OpenCV, ferramentas de compilação e depuração, exemplos da NVIDIA e pacotes de teste.

Este é um sistema OpenEmbedded/Yocto, não um sistema de arquivos raiz Ubuntu instalado pelo NVIDIA SDK Manager. O gerenciamento de pacotes, o conteúdo do sistema de arquivos e o ambiente de desktop são diferentes do JetPack Ubuntu.
Pré-requisitos
Prepare o seguinte:
- Um PC host Linux x86_64, de preferência uma máquina física com Ubuntu ou Debian
- Pelo menos 16 GB de RAM; 32 GB ou mais são recomendados
- Um SSD local rápido e uma conexão de Internet estável
- Um reComputer Super com um módulo Jetson Orin NX ou Orin Nano compatível
- Um cabo de dados USB Tipo-C conectado diretamente ao PC host
- Acesso
sudopara instalar pacotes no host e realizar a gravação
Reserve pelo menos 400 GB de espaço livre em disco no PC host. Os downloads do Yocto, cache de estado compartilhado, arquivos temporários de compilação, sistema de arquivos raiz e o pacote de gravação extraído podem consumir várias centenas de gigabytes. Um SSD local no host é fortemente recomendado.
Instale os pacotes comuns necessários no host:
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
Se o BitBake informar que a distribuição do host não é suportada, use um host Linux suportado pelo Yocto em vez de ignorar o aviso de validação do host.
SKU do Módulo Usado Neste Guia
O reComputer Super J401 suporta os seguintes SKUs de módulo P3767:
--module-sku | Número completo do 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 |
Este guia usa 0000. Sempre use um diretório de compilação separado para cada combinação de placa base e SKU de módulo.
Clonar o Repositório Yocto da Seeed
Crie um workspace limpo e clone o branch 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
O repositório principal contém os metadados da Seeed e scripts auxiliares. prepare-workspace.sh inicializa as camadas OpenEmbedded e OE4T fixadas como submódulos Git.
Compilar a Imagem Completa de Desenvolvimento com all
A primeira compilação recomendada usa build.sh all. Ela valida os metadados, compila as device trees da Seeed, verifica os arquivos de boot e compila a imagem completa e o arquivo tegraflash em sequência.
Preparar o Diretório de Compilação
./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"
O cache compartilhado mantém downloads e sstate fora do diretório de compilação para que possam ser reutilizados por compilações posteriores.
Confirme o diretório de compilação ativo, a placa base e o SKU do módulo:
./scripts/seeed/build.sh current \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401
A saída deve mostrar:
Machine: recomputer-orin-super-j401
Module SKU: 0000

Não continue se o MACHINE exibido ou o SKU do módulo não corresponderem ao hardware. Não reutilize este diretório de compilação para outra placa base ou SKU de módulo.
Executar a Compilação Completa
Compile a imagem de desenvolvimento do lado do alvo:
./scripts/seeed/build.sh all \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
A primeira compilação faz o download e compila um grande número de componentes e pode levar várias horas. O comando para imediatamente se a validação de metadados, a compilação da device tree, as verificações de arquivos de boot ou a compilação da imagem falharem.
Quando as quatro etapas forem concluídas com sucesso, a saída do terminal será semelhante ao seguinte:

Após uma compilação bem-sucedida, o diretório de deploy é:
build-seeed-super-j401-sku0000/tmp/deploy/images/recomputer-orin-super-j401/
Os arquivos importantes gerados incluem:
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

O arquivo .tegraflash-tar.zst é o pacote autocontido usado para a gravação.
Preparar o Diretório de Gravação
Extraia e valide o pacote de gravação da imagem de desenvolvimento:
./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"
O auxiliar verifica o SKU do módulo e checa se a imagem rootfs, DTB, DTB do BPMP, configuração de pinmux, configuração de tensão dos pinos e scripts de gravação estão presentes. Em seguida, imprime o diretório preparado e o próximo comando exato.
Use um diretório de saída novo ou vazio no SSD local do host. Não extraia o pacote de gravação na unidade de destino do Jetson.
Colocar o reComputer Super em Modo de Recuperação Forçada
- Desligue o reComputer Super.
- Coloque a chave de recuperação do reComputer Super na posição RESET.
- Conecte a fonte de alimentação.
- Conecte a porta de dispositivo/depuração USB Tipo-C ao host Linux com um cabo de dados.
- No PC host, verifique o modo de recuperação:
lsusb -d 0955:
Para o módulo Orin NX 16GB usado neste guia, a saída deve incluir um dispositivo semelhante a:
0955:7323 NVIDIA Corp. APX
Outros módulos Super suportados usam IDs de produto USB diferentes:
| Módulo | ID USB de recuperação |
|---|---|
| Orin NX 16GB | 0955:7323 |
| Orin NX 8GB | 0955:7423 |
| Orin Nano 8GB | 0955:7523 |
| Orin Nano 4GB | 0955:7623 |
Não inicie a gravação até que o dispositivo NVIDIA APX esteja visível.
Gravar a Imagem Yocto
Execute o gravador gerado a partir do diretório preparado:
cd "$HOME/seeed-flash-recomputer-orin-super-j401-sku0000"
sudo ./initrd-flash
O script inicializa temporariamente um initrd de gravação via USB, expõe a unidade NVMe de destino ao host, grava as partições e obtém o status final do dispositivo. Não desconecte o USB nem a alimentação enquanto ele estiver em execução.
Uma gravação bem-sucedida termina com uma saída semelhante a:
[OK: /dev/sdX]
Final status: SUCCESS
Successfully finished
O nome temporário do dispositivo de bloco no host é atribuído dinamicamente. Não presuma que ele será sempre /dev/sdb ou /dev/sdc.
Primeiro Boot
Após o comando de gravação terminar com sucesso:
- Desconecte o cabo de dados USB.
- Retorne a chave de recuperação de RESET para a posição normal.
- Desligue o dispositivo por alguns segundos.
- Conecte um monitor HDMI e ligue novamente o reComputer Super.
O desktop Yocto deve inicializar a partir da unidade NVMe gravada:

A imagem de desenvolvimento permite login local como root com senha inicial vazia. Defina uma senha imediatamente:
passwd
Verifique o ambiente de desenvolvimento no lado do alvo:
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 Detalhados de Compilação Parametrizada
A seção anterior usou all, que é o caminho recomendado para uma primeira compilação. Para depurar ou recompilar uma etapa, execute o mesmo fluxo de trabalho explicitamente:
# 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
Se o sistema de arquivos raiz já estiver compilado e apenas o arquivo tegraflash precisar ser regenerado, use:
./scripts/seeed/build.sh flash-package \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
Opcional: criar um SDK de desenvolvimento cruzado x86_64
A imagem de desenvolvimento gravada já oferece suporte à compilação diretamente no Jetson. Crie o SDK para host apenas quando um PC x86_64 precisar compilar aplicações de forma cruzada para o alvo:
./scripts/seeed/build.sh sdk \
--build-dir build-seeed-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development
O instalador de SDK gerado é colocado em:
build-seeed-super-j401-sku0000/tmp/deploy/sdk/
Este instalador opcional não é necessário para criar a imagem do Jetson ou gravar o dispositivo.
Solução de problemas
O diretório de build indica a máquina ou SKU errados
Crie um novo diretório de build com prepare-workspace.sh. Não edite um diretório de build existente para alternar placas carrier ou SKUs de módulo.
O arquivo compactado de flash não pode ser encontrado
Certifique-se de que o mesmo nome de imagem seja passado tanto para o build quanto para a preparação de flash:
seeed-image-jetson-development
prepare-flash.sh usa por padrão demo-image-full, portanto, omitir --image seeed-image-jetson-development faria com que ele procurasse pelo arquivo compactado errado.
A gravação para em Waiting for USB storage device flashpkg
Neste ponto, o host está aguardando o initrd do Jetson expor um dispositivo temporário de armazenamento em massa USB. Verifique o cabo USB, use uma porta USB da placa-mãe, remova dispositivos de armazenamento USB desnecessários e confirme que o Jetson continua visível com lsusb.
Referências
Suporte técnico e discussão de produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.