Implantar OTA no reComputer
Introdução
As atualizações Over-the-Air (OTA) do NVIDIA Jetson permitem que desenvolvedores atualizem dispositivos de borda de uma versão JetPack mais antiga para uma versão mais recente remotamente por meio de uma conexão de rede, eliminando a necessidade de um PC host ou de regravação física via USB. Este wiki demonstrará como executar atualizações OTA (Over-the-Air) no reComputer.
Plataforma de demonstração: reComputer mini J4012 com JetPack 5.1.3 → JetPack 6.2 via OTA. Outros reComputers baseados em Orin podem seguir a mesma lógica, mas adapte o nome <target_board> que corresponde à sua placa carrier.
Pré-requisitos
- PC Ubuntu x86_64
- reComputer mini J4012
Executar OTA rapidamente
Aqui fornecemos um pacote de atualização pré-compilado para a placa de desenvolvimento da Seeed, que atualiza de Jetpack 5.1.3 para Jetpack 6.2. Se você pretende atualizar diretamente de Jetpack 5.1.3 para Jetpack 6.2 via OTA, basta fazer o download e prosseguir com a atualização rapidamente.

Se você estiver usando um módulo Orin NX 16GB/8GB, não habilite o modo MAXN SUPER. A capacidade de refrigeração de reComputer mini é insuficiente e forçar esse modo pode resultar em danos permanentes ao módulo.
Pacote de payload OTA
Payload OTA pronto para uso JP5.1.3 → JP6.2 para a série reComputer mini
Nome do arquivo: ota_payload_package.tar.gz
SHA256: 3da8fd97c450f4f7bd83390ab50f951dffd5ec1d43c39a1e6156b4806f7df7c6
Download: OneDrive 1
Procedimento de OTA no dispositivo
As operações a seguir são executadas no Jetson (via conexão remota)
Etapa 1. Instalar softwares dependentes
sudo apt-get update
sudo apt-get install efibootmgr nvme-cli -y
Etapa 2. Baixar a ferramenta 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
Após descompactar os arquivos acima, você obterá uma pasta chamada "Linux_for_Tegra".
Etapa 3. Transferir o arquivo ota para o Jetson (esta etapa deve ser executada no seu PC!)
Substitua <Jetson IP> pelo endereço IP real do seu Jetson. Por exemplo: 192..168.137.xx
Substitua o caminho do arquivo ota_payload_package.tar.gz e o caminho ota_ws pelo seu caminho real
#example:Use scp to transfer files
scp /path/to/your downloaded/ota_payload_package.tar.gz seeed@<Jetson IP>:/home/user/ota_ws
Etapa 4. Fazer backup dos arquivos do 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
Liste os arquivos ou pastas que você deseja manter. Use caminho absoluto!

./nv_ota_preserve_data.sh
Etapa 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


Após a execução do script, você pode reiniciar o Jetson para iniciar o processo OTA. Se o seu dispositivo estiver conectado a um monitor, ao reiniciar você verá que o monitor exibirá o logotipo da Nvidia e, em seguida, entrará no overlay do kernel. A tela permanecerá preta (um fenômeno normal) por um tempo e, em seguida, entrará no processo OTA.

Após a conclusão de todo o processo, você precisará entrar no sistema para configurar o nome de usuário e a senha.

Etapa 6. Validação pós-atualização
Assim que o dispositivo iniciar no JetPack 6.2:
nvbootctrl -t
sudo nvme list
cat /etc/nv_tegra_release

Certifique-se de que a versão relatada corresponda a R36 (release), REVISION: 4.3 e confirme que seus aplicativos iniciam conforme o esperado.
Parabéns! O processo OTA foi bem-sucedido. Os arquivos do sistema também foram salvos anteriormente!
Outras versões de OTA (opcional)
Acima, fornecemos apenas a versão comum do pacote OTA. Se você precisar atualizar da versão atual via OTA para outra versão, consulte as etapas a seguir para gerar o pacote OTA correspondente. O que estamos demonstrando agora é a atualização de Jetpack 5.1.3 para a versão alvo, Jetpack 6.2.
Preparar o BSP de destino (JetPack 6.2)
Todos os comandos abaixo são executados no PC Ubuntu.
Etapa 1. Baixar os pacotes 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
Etapa 2. Extrair o BSP em 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/
Etapa 3. Sincronizar as fontes da NVIDIA para JP6.2.
cd Linux_for_Tegra/source/
./source_sync.sh -t jetson_36.4.3
cd ../..
Etapa 4. Sobrepor as customizações da 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/
Etapa 5. Aplicar os binários da NVIDIA e dependências do 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
Passo 6. Instale a toolchain do Jetson para compilação do 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-
Passo 7. Compile o kernel, os DTBs e os módulos.
cd source
./nvbuild.sh
./do_copy.sh
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i
cd ..
Neste ponto, o BSP JP6.2 em ~/JP6.2/Linux_for_Tegra (ou o caminho escolhido) está pronto para ser usado como o BSP ALVO para o script de geração de OTA.
Prepare o BSP Base (JetPack 5.1.3)
Use um workspace limpo (por exemplo, ~/JP5.1.3/).
Passo 1. Baixe os pacotes do 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
Passo 2. Extraia e copie os overlays do BSP da 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/
Passo 3. Popule o sistema de arquivos raiz e aplique os binários.
cd Linux_for_Tegra
sudo tar xpf ../Tegra_Linux_Sample-Root-Filesystem_r35.5.0_aarch64.tbz2 -C rootfs
sudo ./apply_binaries.sh
Passo 4. Instale a toolchain Bootlin GCC para compilações de 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
Passo 5. Compile e instale módulos, device trees e drivers personalizados.
cd source
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i -r ${INSTALL_MOD_PATH}
./do_copy.sh
Seu caminho de BSP JP5.1.3 (por exemplo, /home/seeed/test/5.1.3/Linux_for_Tegra) atuará como o BSP BASE durante a geração do pacote OTA.
Gere o Pacote OTA no Host
Navegue até o workspace JP6.2 e execute o script auxiliar de OTA da NVIDIA:
cd ~/JP6.2/Linux_for_Tegra/tools/ota_tools/
./start_generate_ota_pkg.sh
O script solicitará as seguintes informações:
- Caminho do BASE_BSP:
/home/seeed/test/5.1.3/Linux_for_Tegra - Caminho do TARGET_BSP:
/home/seeed/test/6.2/Linux_for_Tegra - Nome do target_board:
recomputer-orin-j40mini(use o nome.confque corresponda ao seu dispositivo) - bsp_version (Rmm-n):
R35-5para JetPack 5.1.3
Se tudo estiver configurado corretamente, a ferramenta termina com:

Execute o OTA no Dispositivo Jetson
Consulte novamente o procedimento de OTA no dispositivo para as etapas detalhadas.
Recursos
Suporte Técnico & Discussão de Produtos
Obrigado por escolher a Seeed Studio! Se precisar de mais assistência, entre em contato pelos seguintes canais: