メインコンテンツまでスキップ

Seeed Jetsonキャリアボード向けYoctoのビルドとフラッシュ

このガイドでは、seeed-tegra-demo-distro リポジトリで定義されているSeeed Studio Jetsonキャリアボード上で、OpenEmbedded/Yoctoイメージをビルドおよびフラッシュするための共通ワークフローを説明します。

このリポジトリは、OE4T の wrynose ブランチと Jetson Linux R39.2.0 / JetPack 7.2 向けの meta-tegra BSP を使用します。YoctoイメージはNVIDIA Jetson Linux BSPコンポーネントを使用しますが、NVIDIA SDK Manager がインストールするUbuntuルートファイルシステムではありません。パッケージ管理、イメージ構成、デスクトップ環境、アップデート動作はYoctoメタデータによって制御されます。

リポジトリの適用範囲

この記事のコマンドとパラメータ表は、2026年8月31日 時点でレビューされたリポジトリ状態に基づいています。ビルドを行う前に、利用可能なマシン、モジュールSKU、ブランチ、ハードウェア検証状況が変更されている可能性があるため、必ずリポジトリのREADMEとサポートマトリクスを再確認してください。

次の図は、全体のワークフローを要約したものです。最初にキャリアボードとJetsonモジュールを選択し、その後はビルドとフラッシュの全工程を通して、同じmachine、SKU、ビルドディレクトリ、イメージレシピを使い続けます。

Seeed Jetsonキャリアボード向けJetPack 7.2 Yoctoビルドおよびフラッシュワークフロー

始める前に

高速なローカルSSD、安定したネットワーク接続、sudo 権限を備えた物理x86_64 Linuxホストを使用してください。キャリアボードのリカバリ/デバイスポート用に、データ通信対応のUSBケーブルを用意します。フルのYocto開発ビルドでは数百GBを消費する可能性があるため、可能であれば約 400 GB の空きストレージを確保してください。RAMは少なくとも 16 GB32 GB以上を推奨 します。

Ubuntuホスト上に、一般的に必要となるビルドおよびフラッシュ用パッケージをインストールします:

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

パッケージ名はホストディストリビューションによって異なる場合があります。リポジトリが使用しているブランチに対応するYocto Project Quick BuildおよびOE4Tのフラッシュ要件に従ってください。BitBakeがサポートされていないホストディストリビューションであると報告した場合は、検証を回避するのではなく、サポート対象のホストを使用してください。

ヘルパースクリプトは、ワークフロー全体を通して次のパラメータを使用します:

パラメータ目的重要なルール
--machineキャリアボード用のYocto MACHINE 設定を選択します。物理的なキャリアボードと一致している必要があります。
--module-sku設定可能なOrinキャリアに搭載されたJetsonモジュールを選択します。これはNVIDIAモジュール番号の末尾4桁です。設定可能なOrinマシンでは必須です。固定モジュールのThorマシンでは省略します。
--build-dir選択した設定、BitBakeの作業ファイル、デプロイ成果物を保存します。キャリアとモジュールSKUの組み合わせごとに別々のディレクトリを使用します。
--cache-dir共有ダウンロードおよびsstateキャッシュデータを保存します。ビルド間で1つのホストローカルキャッシュを再利用します。
--imageBitBakeイメージレシピを選択します。ビルドとフラッシュ準備の両方で同じイメージ名を使用します。
--output-dir検証済みtegraflashパッケージの展開先を選択します。新規または空のホストローカルディレクトリを使用します。

MACHINE は単なる製品ラベルではなく、Yoctoのハードウェアターゲット名です。これは layers/meta-seeed/conf/machine/ からマシン設定を選択し、SoCファミリ、キャリアDTB、モジュール構成、BPMPデータ、pinmuxおよびパッド電圧ファイル、オーバーレイ、BitBakeとtegraflashが使用するフラッシュ変数を決定します。

ハードウェアに合ったmachineを選択する

このガイド内の recomputer-orin-super-j401 コマンドは、あくまで具体例にすぎません。ワークスペースを準備する前に、キャリアボード表 から、使用するキャリアとJetsonモジュールに一致する MACHINE とモジュールSKUを選択してください。

ターゲットの用途に基づいてイメージを選択します:

イメージレシピ用途
demo-image-fullグラフィックス、コンテナ、OpenCV、NVIDIAサンプルを含むOE4Tリファレンス/デモイメージ。これはヘルパースクリプトのデフォルトです。
seeed-image-jetson-runtimeOE4T/NVIDIAランタイムスタックに合わせたSeeedランタイムプロファイル。
seeed-image-jetson-developmentランタイムイメージに、ターゲット側CUDA開発パッケージ、ヘッダー、ビルド/デバッグツール、サンプル、テストを追加したもの。

以下の例では seeed-image-jetson-development を使用します。

キャリアボードとJetsonモジュールを選択する

このガイドでレビューしたリポジトリには、16個のSeeedマシン設定が定義されています。現在チェックアウトしているマシン一覧は、./scripts/seeed/build.sh machines で出力することもできます。

製品またはキャリア構成MACHINEサポートされるモジュール選択
reComputer Industrial J401recomputer-industrial-orin-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Mini AGX Orin J501Xrecomputer-mini-agx-orin-j501xP3701 AGX Orin: 0004, 0005
reComputer Orin J401recomputer-orin-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Orin J40minirecomputer-orin-j40miniP3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Robotics J401recomputer-orin-robotics-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Robotics J401 GMSLrecomputer-orin-robotics-j401-gmslP3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Super J401recomputer-orin-super-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Robo AGX Orin J501Xrecomputer-robo-agx-orin-j501xP3701 AGX Orin: 0004, 0005
reComputer Rugged Orin J401recomputer-rugged-orin-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
reComputer Thor Carrier J601recomputer-thor-carrier-j601固定P3834-0008 T5000。--module-sku は省略します。
reComputer Thor Carrier J6014recomputer-thor-carrier-j6014固定P3834-0000 T4000。--module-sku は省略します。
reComputer Thor Carrier J6015recomputer-thor-carrier-j6015固定P3834-0008 T5000。--module-sku は省略します。
reServer AGX Orin J501Xreserver-agx-orin-j501xP3701 AGX Orin: 0000, 0001, 0002, 0004, 0005
reServer AGX Orin J501X GMSLreserver-agx-orin-j501x-gmslP3701 AGX Orin: 0000, 0001, 0002, 0004, 0005
reServer Industrial Orin J401reserver-industrial-orin-j401P3767 Orin NX/Nano: 0000, 0001, 0003, 0004
Seeed AGX Orin Kitseeed-agx-orin-kitP3701 AGX Orin: 0000, 0001, 0002, 0004, 0005

--module-sku は、NVIDIAモジュール部品番号に印字されている末尾4桁です。記憶に頼って値を選ぶのではなく、必ずモジュールラベルまたはEEPROMを確認してください。

モジュールファミリ--module-sku完全なモジュール番号モジュールモデルまたはリポジトリでの対応付け
P37670000P3767-0000Jetson Orin NX 16GB
P37670001P3767-0001Jetson Orin NX 8GB
P37670003P3767-0003Jetson Orin Nano 8GB
P37670004P3767-0004Jetson Orin Nano 4GB
P37010000P3701-0000Jetson AGX Orin 開発キットモジュール
P37010001P3701-0001リポジトリの 0000 DTB/BPMP 対応付けを使用する互換SKU
P37010002P3701-0002リポジトリの 0000 DTB/BPMP 対応付けを使用する互換SKU
P37010004P3701-0004Jetson AGX Orin 32GB
P37010005P3701-0005Jetson AGX Orin 64GB
P3834not selectableP3834-0000Jetson T4000。Thor の MACHINE によって選択されます。
P3834not selectableP3834-0008Jetson T5000 / AGX Thor 開発キットモジュール。Thor の MACHINE によって選択されます。
ビルドサポートとハードウェア検証の違い

このリポジトリは、記載されているすべての構成についてマシンメタデータとビルド検証を提供します。これは、すべてのキャリア、モジュールSKU、カメラオプション、周辺機器で物理検証が完了していることを意味するわけではありません。レビューされたサポートマトリクスでは、recomputer-orin-super-j401 はフラッシュ、NVMeブート、HDMI、および基本的なUSB検証を完了しています。SKU 0004reserver-agx-orin-j501x-gmsl はフラッシュとブート検証を完了していますが、GMSLおよびより広範な周辺機器の検証は保留中です。他のマシンについては、ハードウェアステータスが更新されるまではビルド検証済みとして扱ってください。

次のセクションのコマンドシーケンスでは、Orin NX 16GBモジュールを搭載したreComputer Super J401 を具体例として使用します。上記の表から選択した値に合わせて、そのmachine、SKU、ディレクトリ名を置き換えてください。同じパラメータ化されたワークフローは、reComputer Mini J5011 などサポート表にある他のマシンにも適用できます。

reComputer Super J401reComputer Mini J5011
reComputer Super J401reComputer Mini J5011
危険

誤った MACHINE またはモジュール SKU を使用すると、互換性のない DTB、BPMP、pinmux、メモリ、またはフラッシュ設定ファイルが選択される可能性があります。いずれかの値を変更した後に、既存のビルドディレクトリを再利用しないでください。

ワークスペースの準備と検証

Seeed リポジトリをクローンし、ビルドに使用するコミットを記録します:

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
git rev-parse HEAD

サンプルキャリアおよびモジュール用に 1 つのワークスペースを準備します:

./scripts/seeed/prepare-workspace.sh \
--machine recomputer-orin-super-j401 \
--module-sku 0000 \
--build-dir build-recomputer-orin-super-j401-sku0000 \
--cache-dir "$HOME/.cache/yocto-seeed"

AGX Orin キャリアの場合は、その machine とサポートされている P3701 SKU の値に置き換えてください。Thor キャリアの場合は、選択した machine ファイルによってモジュールが固定されるため、--module-sku を省略します。ヘルパーは高度なワークスペース管理のために --no-activate--no-submodules--full-history も受け付けます。

ビルド前に、選択されたビルドディレクトリ、machine、およびモジュール SKU を確認します:

./scripts/seeed/build.sh current \
--build-dir build-recomputer-orin-super-j401-sku0000 \
--machine recomputer-orin-super-j401
選択されたビルドディレクトリ、machine、およびモジュール SKU を表示している Yocto ヘルパー

表示されている値が実際のハードウェアと一致しない場合は、先に進まないでください。

イメージとフラッシュパッケージのビルド

最初のビルドには all コマンドを使用することを推奨します。これはメタデータ検証、Seeed DTB/DTBO コンパイル、ブートファイルインストールチェック、完全なイメージビルドを順番に実行します:

./scripts/seeed/build.sh all \
--build-dir build-recomputer-orin-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development

最初のビルドでは多くのコンポーネントをダウンロードしてコンパイルするため、数時間かかる場合があります。すべての 4 ステージが完了すると、正常終了となります:

完了した Yocto メタデータ、デバイスツリー、ブートファイル、およびイメージビルドステージ

生成されたファイルは <build-dir>/tmp/deploy/images/<machine>/ 配下に配置されます。重要な出力は次の命名パターンに従います:

<image>-<machine>.rootfs.ext4
<image>-<machine>.rootfs.manifest
<image>-<machine>.rootfs.spdx.json
<image>-<machine>.rootfs.testdata.json
<image>-<machine>.rootfs.tegraflash-tar.zst
生成されたルートファイルシステムと tegraflash アーカイブを含む Yocto deploy ディレクトリ

.tegraflash-tar.zst アーカイブには、フラッシュ準備ヘルパーが使用するファイルが含まれています。

デバッグや部分的な再ビルドのためには、allmetadatadtbbootfilesimage、または flash-package に置き換えてください。同じ --build-dir--machine--image の値を維持します。オプションの x86_64 クロス開発 SDK をビルドするには、次を実行します:

./scripts/seeed/build.sh sdk \
--build-dir build-recomputer-orin-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development

SDK インストーラは <build-dir>/tmp/deploy/sdk/ 配下に書き込まれます。ターゲットイメージのビルドやフラッシュには必須ではなく、Jetson 上で直接コンパイルする場合は不要です。

ターゲットの準備とフラッシュ

ビルドに使用したものと同じビルドディレクトリ、machine、image の値を使って、フラッシュアーカイブを展開し検証します:

./scripts/seeed/prepare-flash.sh \
--build-dir build-recomputer-orin-super-j401-sku0000 \
--machine recomputer-orin-super-j401 \
--image seeed-image-jetson-development \
--output-dir "$HOME/seeed-flash-recomputer-orin-super-j401-sku0000"

ヘルパーは rootfs、initrd-flash、フラッシュ変数、DTB/BPMP DTB、pinmux、pad-voltage、およびその他の選択されたブートファイルをチェックします。設定可能なキャリアの場合、フラッシュアーカイブ内のモジュール SKU が準備したワークスペースと一致していることも検証します。ヘルパー自体は sudo を実行せず、ターゲットをフラッシュしません。

対象の Seeed キャリアボード固有のドキュメントに記載されたリカバリボタンまたはリカバリスイッチの手順を使用して、ターゲットを Force Recovery Mode にします。キャリアの USB デバイス/デバッグポートをデータ通信対応ケーブルで Linux ホストに直接接続し、NVIDIA APX デバイスが表示されることを確認します:

lsusb -d 0955:

USB プロダクト ID は Jetson モジュールによって異なります。NVIDIA リカバリデバイスが表示されるまで、フラッシュを開始しないでください。

準備した出力ディレクトリから生成されたフラッシャーを実行します:

cd "$HOME/seeed-flash-recomputer-orin-super-j401-sku0000"
sudo ./initrd-flash

このスクリプトは一時的な initrd を USB 経由で起動し、ターゲットのストレージデバイスをホストに公開し、パーティションレイアウトとルートファイルシステムを書き込み、最終ステータスを報告します。フラッシュ中は電源や USB を切断しないでください。

警告

一時的なホストのブロックデバイス名は動的に割り当てられます。常に /dev/sdb/dev/sdc であると決めつけないでください。また、ワークフローをホストドライブに手動でリダイレクトしないでください。

初回起動と検証

フラッシュが正常に完了したら、リカバリ用 USB ケーブルを取り外し、必要に応じてキャリアのリカバリ制御を通常の状態に戻し、ターゲットの電源を入れ直して、ディスプレイと周辺機器を接続します。

選択したターゲットストレージから Yocto デスクトップが起動するはずです:

Seeed Jetson デバイス上で動作する Yocto デスクトップ

デフォルトの tegrademo 構成では、初期 root パスワードが空で、開発用に root ログインが有効になっています。すぐにパスワードを設定してください:

passwd

開発用イメージでは、必要なターゲット側ツールとライブラリを確認し、そのうえでアプリケーションが使用するキャリア固有インターフェースをテストします:

nvcc --version
gcc --version
cmake --version
pkg-config --modversion opencv4

イメージのビルドや起動が成功しても、すべてのカメラ、GMSL リンク、表示モード、USB ポート、ネットワークインターフェース、または拡張コネクタが検証されるわけではありません。展開前に、製品固有の周辺機器テストを完了してください。

トラブルシューティング

ビルドディレクトリが誤った machine または SKU を報告する: prepare-workspace.sh を使用して新しいビルドディレクトリを作成してください。キャリアボードやモジュール SKU を切り替えるために、既存のワークスペースを編集したり再利用したりしないでください。

フラッシュアーカイブが見つからない: build.shprepare-flash.sh に同じ --image 値を渡してください。両方のヘルパーのデフォルトは demo-image-full であるため、seeed-image-jetson-development をビルドした場合は、フラッシュ準備時にその名前を明示的に使用する必要があります。

メタデータはパースできるがハードウェアが起動しない: リポジトリのサポートマトリクスを確認してください。メタデータおよび DTB ビルド検証は、すべての machine とモジュールの組み合わせにおいて、実際のフラッシュ、ストレージブート、ディスプレイ、カメラ、GMSL、または周辺機器の動作を保証するものではありません。

フラッシュが Waiting for USB storage device flashpkg で停止する: この段階では、ホストは Jetson initrd が一時的な USB マスストレージデバイスとして認識されるのを待っており、rootfs パーティションの書き込みはまだ開始されていません。データケーブル、ホスト USB への直接接続、リカバリモードの状態、コンパイル済みデバイスツリーの USB デバイスモードパスを確認してください。連続するドットを、ストレージ書き込みが遅いだけの正常な状態とみなさないでください。

参考資料

Seeed Studio の製品をお選びいただきありがとうございます。技術サポートや製品に関するディスカッションには、以下のチャネルをご利用ください:

Loading Comments...