jetson-init-image について
jetson-init-imageはJetson BSPイメージを準備するスキルです。ターゲットのセットアップを行うユーザー向けに、プラットフォームからGPUスタックを判定し、ローカルのtarballを再利用または展開して、イメージのバージョンとパスをアクティブプロファイルに記録します。
主な機能
- 01アクティブなターゲットプロファイルとイメージパスの解決
- 02チップ系列に基づくGPUスタックの判定
- 03既存BSPの再利用または一致するtarballの展開
- 04apply_binaries.shの実行
- 05プロファイルへのBSPバージョンとパスの記録
活用シーン
- 01新しいターゲットプロファイル用のBSPイメージ準備
- 02後続スキルに必要なLinux_for_Tegraの用意
- 03既存イメージのGPUスタック確認とバージョン記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nvidia/ skills --skill jetson-init-imageインストール後、Claude Code で/jetson-init-imageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json詳細
BSP イメージを初期化する
アクティブなプロファイルに出力するのは bsp_image: のみです。派生した version に加えて、<workspace>/Image を上書きする場合に限り root_path を出力します。
実行するタイミング
- ユーザーが BSP イメージの抽出、準備、または初期化を依頼した場合。
- 下流のスキルから
<bsp_image.root_path>/Linux_for_Tegra/が見つからないと報告された場合。 - アクティブなプロファイルにまだ
bsp_image:ブロックがない場合。
手順
対象とイメージパスを解決する
../../context/target-platform-contract.md に従ってアクティブなプロファイルを解決します。アクティブなプロファイルがない場合、または reference_devkit: がない場合は拒否します。
<workspace> は、アクティブなプロファイルの target-platform/ ディレクトリの親ディレクトリです。<bsp_image.root_path> のデフォルトは <workspace>/Image です。
| プロファイルの状態 | 操作 |
|---|---|
bsp_image.root_path が存在する | 確認を求めずにそれを使用します。 |
root_path を含まない bsp_image: が存在する | <workspace>/Image を使用します。 |
bsp_image: ブロックがない | 1 回だけ確認します。デフォルトを使う場合は Enter キーを押し、上書きする場合は絶対パスを入力します。 |
上書きする場合は、最も近い既存の親ディレクトリが書き込み可能か確認します。デフォルトを使用する場合は root_path を省略します。
GPU スタックを特定する
../../context/target-platform-contract.md の共有 GPU ドライバー不変条件を使用します。reference_devkit.module.id とカタログから想定されるスタックを導出します。
| チップファミリー | モジュール ID | スタック | apply_binaries.sh フラグ |
|---|---|---|---|
| T234 / Orin | p3701, p3767 | nvgpu | なし |
| T264 以降 / Thor+ | p3834 | OpenRM | --openrm |
不明なモジュール ID の場合は拒否します。--openrm フラグは、OpenRM スタックが同梱されている BSP リリースでのみ有効です。アクティブな BSP でこのフラグが公開されていない場合は、ターゲットの指定にかかわらず省略します。
再利用または抽出する
<bsp_image.root_path>/Linux_for_Tegra/ がすでに存在する場合:
-
ユーザーが再抽出を明示的に依頼し、上書きのリスクを了承しない限り、その上に抽出しないでください。
-
Linux_for_Tegra/nv_tegra_releaseからディスク上のバージョンを導出します。記録されているbsp_image.versionと異なる場合は、置き換える前に確認します。 -
可能な場合は、インストール済み GPU スタックがプラットフォームから導出した想定と一致することを確認します。検出の優先順位は次のとおりです(確定的な結果が得られた最初のプローブを採用します)。
Linux_for_Tegra/rootfs/etc/nv_tegra_releaseにINSTALL_TYPE=トークンが含まれている場合(新しい系列の BSP リリースで提供されます)、それを読み取って直接比較します。- それ以外の場合は、
find Linux_for_Tegra -name nvgpu.koを実行します。存在する場合は nvgpu、存在しない場合は OpenRM です。 - チップファミリーでこれまで常に 1 種類のスタックのみが提供されている場合(例:現行の BSP では T234 / Orin は常に nvgpu)、ディスクを調べずにカタログから導出した想定を使用します。
インストール済みのスタックがアクティブなターゲットと一致しない場合は拒否し、正しいスタックで再抽出するか、ターゲットプロファイルを修正するようユーザーに求めます。それ以外の場合は抽出を省略し、プロファイルを更新します。
tarball の場所を特定する
抽出が必要な場合は、次の場所を検索します。
<bsp_image.root_path>/<workspace>/- 現在の作業ディレクトリ
見つからないファイルについては、絶対パスを指定するよう求めます。必要なファイル名は次のとおりです。
Jetson_Linux_R<ver>_aarch64.tbz2Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2
両方のファイル名に同じ R<ver> トークンが含まれている必要があります。一致しない場合は拒否し、<ver> を bsp_image.version として記録します。tarball はダウンロードしないでください。
バイナリを抽出して適用する
tarball の絶対パスを使用します。tarball は <bsp_image.root_path> の外にあってもかまいません。
ROOT="<bsp_image.root_path>"
BSP_TARBALL="<absolute path to Jetson_Linux_R<ver>_aarch64.tbz2>"
ROOTFS_TARBALL="<absolute path to Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2>"
mkdir -p "$ROOT"
tar xjf "$BSP_TARBALL" -C "$ROOT"
sudo tar xpjf "$ROOTFS_TARBALL" -C "$ROOT/Linux_for_Tegra/rootfs"
cd "$ROOT/Linux_for_Tegra"
if [ "$GPU_STACK" = "openrm" ]; then
sudo ./apply_binaries.sh --openrm
else
sudo ./apply_binaries.sh
fi
上記の「GPU スタックを特定する」手順から GPU_STACK を設定します。最初に失敗したコマンドで処理を中止し、失敗したコマンドを提示します。
アクティブなプロファイルを更新する
解決済みの BSP イメージメタデータをアクティブなターゲットプロファイルに保存し、
後続のスキルが再度プロンプトを表示せずに BSP を見つけられるようにします。既存の
ブロック、コメント、引用符で囲まれた SKU 値を保持し、ruamel.yaml のような
ラウンドトリップ対応の YAML ライターを使用してください。
bsp_image:
root_path: <absolute override path> # omit for <workspace>/Image
version: "<derived version>"
ルール:
- バージョンとルートパスが同じ場合:書き換えません。
- バージョンが異なる場合:更新前に確認します。
- 記録済みの
root_pathが異なる場合:自動書き換えを拒否します。 versionは必ず引用符で囲みます。
完了
イメージのパス、抽出済みか再利用かの状態、GPU スタック、派生したバージョン、
プロファイルの更新状況を報告します。その後、/jetson-init-source を提案します。
目的
適切な Jetson Linux と sample-rootfs の tarball を展開し、アクティブなターゲットから
導出した GPU スタックのフラグ(T234 では nvgpu、T264+ では OpenRM)を指定して
apply_binaries.sh を実行することで、Linux_for_Tegra/ をディスク上に作成します。
その後、導出した BSP バージョンをプロファイルの bsp_image: ブロックに記録します。
前提条件
../../context/target-platform-contract.mdに従ってアクティブなターゲットプロファイルが解決されていること。- Jetson Linux BSP tarball と対応する sample-rootfs tarball がディスク上に用意されていること
(例:
/jetson-download-bspによる取得、または手動配置)。 - ワークスペースの
Image/ルート(またはオーバーライド先のbsp_image.root_path)への書き込み権限があること。 apply_binaries.sh用にsudoを使用できること。
制限事項
bsp_image:ブロックのみを書き込みます。ソースツリー、ドキュメント、キャリア プロファイルは、関連する別のスキルが管理します。- 既存の
Linux_for_Tegra/を、ユーザーから明示的な指示がない限り上書きしません。 - tarball はダウンロードしません。
/jetson-download-bspを利用するか、 入力ファイルを手動で配置してください。
トラブルシューティング
apply_binaries.shがゼロ以外の終了コードで終了する — コンソール出力を 再確認してください。多くの場合、sudoがない、rootfs tarball がない、または SoC 世代に適した GPU スタックのフラグが指定されていないことが原因です。- 展開後に
nv_tegra_releaseが見つからない — 展開が途中で停止しています。 tarball の整合性を確認してから、再実行してください。 - 記録済みの
versionが tarball のファイル名と一致しない — tarball の名前が 変更されています。ファイル名ではなく、Linux_for_Tegra/nv_tegra_releaseから 解析した値を信頼してください。 - プロファイルに記録済みの
root_pathが異なる — 上書き前にユーザーに確認し、 許可が得られるまで拒否してください。