Skip to main content

reComputerでOTAをデプロイ

はじめに

NVIDIA Jetson Over-the-Air(OTA)アップデートにより、開発者はネットワーク接続を介してエッジデバイスを古いJetPackバージョンから新しいリリースにリモートでアップグレードでき、ホストPCや物理的なUSB再フラッシュの必要がありません。 このwikiでは、reComputerでOTA(Over-the-Air)アップデートを実行する方法を説明します。

note

デモンストレーションプラットフォーム:JetPack 5.1.3からJetPack 6.2へのOTAを行うreComputer mini J4012。他のOrinベースのreComputerも同じロジックに従うことができますが、キャリアボードに合致する<target_board>名を適応させてください。

前提条件

OTAを迅速に実行

ここでは、Seeed開発ボード用のプリコンパイル済みアップグレードパッケージを提供しており、 Jetpack 5.1.3からJetpack 6.2にアップグレードします。Jetpack 5.1.3からJetpack 6.2にOTA経由で直接アップグレードを計画している場合は、 単純にダウンロードして迅速にアップグレードを進めることができます。

reComputer mini
Preview

Paquete de payload OTA

reComputer mini シリーズ用のすぐに使えるJP5.1.3 → JP6.2 OTAペイロード

Nombre de archivo: ota_payload_package.tar.gz

SHA256: 3da8fd97c450f4f7bd83390ab50f951dffd5ec1d43c39a1e6156b4806f7df7c6

Descargar: OneDrive 1

デバイス上でのOTA手順

note

以下の操作はJetson上で実行されます(リモート接続経由)

ステップ1. 依存ソフトウェアをインストール

sudo apt-get update
sudo apt-get install efibootmgr nvme-cli -y

ステップ2. 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

上記のファイルを解凍すると、「Linux_for_Tegra」という名前のフォルダが得られます。

ステップ3. otaファイルをJetsonに転送(このステップはPCで実行してください!)

info

<Jetson IP>をJetsonの実際のIPアドレスに置き換えてください。例:192..168.137.xx ota_payload_package.tar.gzファイルのパスとota_wsパスを実際のパスに置き換えてください

#example:Use scp to transfer files
scp /path/to/your downloaded/ota_payload_package.tar.gz seeed@<Jetson IP>:/home/user/ota_ws

ステップ4. 元のシステムのファイルをバックアップ

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
note

保持したいファイルやフォルダをリストアップしてください。 絶対パスを使用してください!

./nv_ota_preserve_data.sh

ステップ5. 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

スクリプトが実行された後、JetsonをリスタートしてOTAプロセスを開始できます。 デバイスがモニターに接続されている場合、リスタート時にモニターにNvidiaロゴが表示され、その後カーネルオーバーレイに入ります。画面はしばらく黒いまま(正常な現象)になり、その後OTAプロセスに入ります。

全プロセスが完了した後、システムに入ってユーザー名とパスワードを設定する必要があります。

ステップ6. アップグレード後の検証

デバイスがJetPack 6.2で起動したら:

nvbootctrl -t
sudo nvme list
cat /etc/nv_tegra_release

報告されたリリースがR36 (release), REVISION: 4.3と一致することを確認し、アプリケーションが期待通りに起動することを確認してください。 おめでとうございます!OTAプロセスが成功しました。システムファイルも以前に保存されました!

その他のバージョンのOTA(オプション)

上記では、OTAパッケージの一般的なバージョンのみを提供しました。現在のバージョンのOTAから別のバージョンにアップグレードする必要がある場合は、以下の手順を参照して対応するOTAパッケージを生成してください。 現在デモンストレーションしているのは、Jetpack 5.1.3からターゲットバージョンのJetpack 6.2へのアップグレードです。

ターゲットBSP(JetPack 6.2)の準備

以下のすべてのコマンドはUbuntu PCで実行します。

ステップ1. 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

ステップ2. BSPを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/

ステップ3. JP6.2用のNVIDIAソースを同期。

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

ステップ4. Seedカスタマイゼーションをオーバーレイ。

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/

ステップ5. NVIDIAバイナリとホスト依存関係を適用。

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

ステップ 6. カーネルコンパイル用の Jetson ツールチェーンをインストールします。

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-

ステップ 7. カーネル、DTB、およびモジュールをビルドします。

cd source
./nvbuild.sh
./do_copy.sh
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i
cd ..

この時点で、~/JP6.2/Linux_for_Tegra(または選択したパス)の下にある JP6.2 BSP は、OTA 生成スクリプトの TARGET BSP として使用する準備が整いました。

ベース BSP の準備(JetPack 5.1.3)

クリーンなワークスペース(例:~/JP5.1.3/)を使用します。

ステップ 1. 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

ステップ 2. Seeed BSP オーバーレイを展開してコピーします。

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/

ステップ 3. ルートファイルシステムを設定し、バイナリを適用します。

cd Linux_for_Tegra
sudo tar xpf ../Tegra_Linux_Sample-Root-Filesystem_r35.5.0_aarch64.tbz2 -C rootfs
sudo ./apply_binaries.sh

ステップ 4. JP5 カーネルビルド用の Bootlin GCC ツールチェーンをインストールします。

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

ステップ 5. モジュール、デバイスツリー、およびカスタムドライバーをビルドしてインストールします。

cd source
export INSTALL_MOD_PATH=$(realpath ../rootfs/)
./nvbuild.sh -i -r ${INSTALL_MOD_PATH}
./do_copy.sh

JP5.1.3 BSP パス(例:/home/seeed/test/5.1.3/Linux_for_Tegra)は、OTA パッケージ生成時にベース BSP として機能します。

ホストでの OTA パッケージ生成

JP6.2 ワークスペースに移動し、NVIDIA の OTA ヘルパースクリプトを実行します:

cd ~/JP6.2/Linux_for_Tegra/tools/ota_tools/
./start_generate_ota_pkg.sh

スクリプトは以下の情報の入力を求めます:

  • BASE_BSP パス: /home/seeed/test/5.1.3/Linux_for_Tegra
  • TARGET_BSP パス: /home/seeed/test/6.2/Linux_for_Tegra
  • target_board 名: recomputer-orin-j40mini(デバイスに一致する .conf 名を使用)
  • bsp_version (Rmm-n): JetPack 5.1.3 の場合は R35-5

すべてが正しく設定されている場合、ツールは以下で終了します:

Jetson デバイスでの OTA 実行

詳細な手順については、デバイス上での OTA 手順を参照してください。

リソース

技術サポートと製品ディスカッション

Seeed Studio をお選びいただきありがとうございます!さらなるサポートが必要な場合は、以下のチャンネルからお問い合わせください:

Loading Comments...