mcpField
J
jetson-download-bsp

jetson-download-bsp

github.com/nvidia開発3.8k1.1k 回インストール今日更新
リポジトリ

jetson-download-bsp について

jetson-download-bspは、Auto Setup向けにNVIDIA JetsonのBSP成果物をワークスペースへ配置するスキルです。アクティブなプラットフォームでのリリース対応を確認し、後続のセットアップスキルが使う場所に保存します。展開やプロファイル編集は行いません。

主な機能

  1. 01プラットフォーム対応の具体的なBSPリリース確認
  2. 02BSP、rootfs、ソース、ツールチェーンのダウンロード
  3. 03開発者ガイドとユーザーガイドの配置
  4. 04既存ファイルの再利用とダウンロード検証

活用シーン

  1. 01Auto Setup用のJetson成果物の準備
  2. 02イメージとソースのオフライン初期化に向けたファイル配置

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia/skills --skill jetson-download-bsp

インストール後、Claude Code で/jetson-download-bspを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

詳細

BSP アーティファクトのダウンロード

jetson-download-bsp は、Auto Setup のパスにおけるネットワークからの取得を担当します。 アーカイブの展開、ソースツリーの初期化、ドキュメントの登録、 アクティブなターゲットプロファイルの編集は行いません。これらは引き続き jetson-init-image、jetson-init-source、jetson-link-docs が担当します。

呼び出すタイミング

  • /jetson-quick-start で Auto Setup が選択されている場合。
  • セットアップスキルを実行する前に、現在の ワークスペースに NVIDIA BSP アーティファクトをダウンロードしたい場合。

入力と出力

../../context/target-platform-contract.md に従って アクティブなプロファイルを特定します。 アクティブなプロファイルがない場合は処理を拒否します。

共通の quick_start_prefill 契約に従います。 /jetson-quick-start から呼び出された場合、このスキルは quick_start_prefill.mode と quick_start_prefill.download.bsp_release が存在すれば、 要求されたリリースとして使用します。事前入力値が欠落しているか無効でも 致命的な問題にはなりませんが、ダウンロードを開始する前に 具体的なリリースを指定する必要があります。

target-platform/ の親ディレクトリをワークスペースルートとして使用します。 後続のセットアップスキルがすでに検索する場所にファイルを配置します。

アーティファクト配置先
Jetson Linux BSP tarball<bsp_image.root_path or workspace/Image>/Jetson_Linux_R<ver>_aarch64.tbz2
Sample rootfs tarball<bsp_image.root_path or workspace/Image>/Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2
public_sources.tbz2<workspace>/Downloads/public_sources.tbz2
x-tools.tbz2<workspace>/Downloads/x-tools.tbz2
Developer Guide<documents.root_path or workspace/Documents>/
User Guide<documents.root_path or workspace/Documents>/

bsp_image:、source:、documents: のブロックは書き込まないでください。 後続のセットアップスキルが、展開後またはユーザーの確認後に派生メタデータを登録します。

手順

対象リリースの解決

リリース一覧を次のページから取得します。 https://developer.nvidia.com/embedded/jetson-linux-archive

アーカイブとリンク先のリリースページを確認し、現在のプラットフォームを明示的にサポートする具体的なリリースを列挙します。ユーザーに具体的な Jetson Linux/L4T リリーストークン(R36.4.4、36.4.4、38.2、38.2.1、38.4 など)を選んでもらいます。R38.x のようなファミリーのプレースホルダーでは先に進みません。具体的なリリーストークンは、省略可能な先頭の R と、それに続く 2 つまたは 3 つの数値要素からなるドット区切りの番号です。公式ページの表記どおりにトークンを維持し、.0 の追加、パッチ番号の削除、その他の正規化は行いません。リリースの選択肢は、ドット区切りの数値順で降順(新しいものから)に並べ、存在する要素を比較します。説明には、ソースに記載された推奨事項をそのまま含めます。

quick_start_prefill.download.bsp_release は次のように解決します。

  • 具体的で、サポートされている場合:そのリリースで続行します。
  • 未指定、skip、空欄、またはファミリーのプレースホルダー(R38.x、38.x)の場合:サポートされている具体的なリリースを表示し、ユーザーに選択を求めます。
  • 具体的だがサポートされていない、または曖昧な場合:アーティファクトの探索に進む前に停止し、現在のプラットフォーム、指定された BSP リリース、サポートされている具体的なリリース、ソースのアーカイブまたはリリースページを表示します。

指定されたリリースをサポート対象のリリースに自動置換してはいけません。サポート対象の選択肢が 1 つしかない場合も同様です。

サポートされていない、または曖昧な事前入力については、共通の ユーザー入力プロンプトのスタイル に従って、クリックして選択するアクションを 1 つだけ選ぶよう求めます。

  • pick_supported_release — ユーザーがサポート対象の具体的なリリースを 1 つ選択します。
  • confirm_override — ユーザーが互換性のないリリースを確認し、上書き理由を入力します。
  • cancel — ダウンロードせずに停止します。

選択したリリースが具体的でサポート対象であるか、ユーザーが明示的に上書きを確認するまで、「リリースアーティファクトを特定する」に進まないでください。上書き理由がある場合は、最終概要に記録します。ユーザーがキャンセルした場合は、ダウンロードせずに停止します。アーカイブまたはリンク先のリリースページに現在のプラットフォームが明示的に記載されていない限り、サポート対象だと主張してはいけません。

探索の再試行

「対象リリースの解決」と「リリースアーティファクトを特定する」における各アーティファクトの WebFetch(BSP、rootfs、public_sources.tbz2、x-tools.tbz2、Developer Guide、User Guide)について、不足と判断する前に 3 回試行します。

  1. 焦点を絞ったプロンプト — アーティファクト名とファイル形式。
  2. 同じ URL でリンクをそのまま列挙 — 「フィルタリングせず、すべてのハイパーリンクのテキストと href を列挙」。製品固有の名称と .html インデックスも受け入れます。
  3. 関連する別のページでリンクをそのまま列挙 — Jetson Linux アーカイブ、JetPack のダウンロードページ、または https://docs.nvidia.com/jetson/archives/r<ver>/。

3 回すべて失敗した場合に限り、ユーザーによる貼り付け/スキップに切り替えます。URL を捏造してはいけません。

リリースアーティファクトを特定する

選択したリリースページからリンクをたどります。文字列の連結によって NVIDIA のダウンロード URL を組み立ててはいけません。

必要なアーティファクト:

  • Jetson Linux BSP イメージの tarball。
  • Tegra Linux サンプル root ファイルシステムの tarball。
  • public_sources.tbz2。
  • 選択した BSP リリースに一致する x-tools.tbz2/Crosstool-NG Toolchain gcc。
  • Developer Guide。
  • User Guide。

ガイドへの直接ファイルリンクがない場合は、リリースのドキュメント URL をアーティファクトとして受け入れ、最終概要に記録します。ツールチェーンがリリースページではなく JetPack のダウンロードページに記載されている場合は、公式ページのリンクをたどって選択した BSP リリースに一致するものを確認します。リリース番号から URL を合成してはいけません。必要な各アーティファクトがダウンロード済みである、保存先にすでに存在する、URL で示されている、またはユーザーが明示的にスキップするまで、先に進まないでください。

フェッチ計画の表示

ワークスペースを変更する前に、次の内容を含む計画を表示します。

  • 選択したリリースとリリースページの URL。
  • アクティブなプラットフォームの概要(reference_devkit.name、任意の custom_carrier.name、および flash_config)。
  • 各アーティファクトのソース URL と保存先パス、またはドキュメント URL。
  • 再利用する既存の保存先ファイル。
  • curl ではなく、ブラウザー/EULA の対応が必要なアーティファクト。

既定では すべてダウンロード を選択します。必要なアーティファクトがすべてダウンロード可能、再利用のためにすでに存在、または記録するドキュメント URL である場合、追加の確認は求めません。計画を表示し、ディスク容量の確認に進みます。

ただし、次のいずれかに該当する場合は、処理を停止して実行前に確認を求めます。

  • リリースに互換性の上書きが必要だった。
  • 必須のアーティファクトがなく、ユーザーによる貼り付けまたはスキップが必要。
  • 保存先ファイルを再利用するのではなく、上書きすることになる。
  • アーティファクトにブラウザー/EULA の対応が必要。
  • ディスク容量の確認に失敗した、または安全に計算できない。
ディスク容量の確認

ダウンロードするアーティファクトの Content-Length を合計します(curl -sI <url>)。 df -B1 --output=avail <workspace> で確認した空き容量が、合計値の 1.2 倍未満の場合は処理を中止します。 URL のみのアーティファクトは対象外です。

安全なダウンロード

必要に応じて保存先ディレクトリを作成します。直接ファイルへのリンクでは、一時的な .part パスを使い、成功後にのみ名前を変更します。

mkdir -p "<destination-dir>"
curl -fL --retry 3 --retry-all-errors --retry-delay 5 -o "<destination>.part" "<artifact-url>"
mv "<destination>.part" "<destination>"

保存先ファイルがすでに存在し、空でない場合は、パスを表示したうえで既定では再利用します。上書きする前に確認を求めます。404、401/403、EULA/ブラウザー認証、またはネットワークエラーが原因でアーティファクトのダウンロードに失敗した場合は処理を停止し、アーティファクトの URL と想定される保存先パスを表示します。ユーザーに、ファイルを手動でダウンロードする、アーティファクトをスキップする、またはキャンセルするよう求めます。別の NVIDIA URL を作り出してはいけません。

ファイル名の検証

完了前に、BSP および rootfs tarball のファイル名に、Step 2 で確認した公式アーティファクト URL またはファイル名の正確な R<ver> トークンが含まれていることを確認します。<ver> は数値が 2 つまたは 3 つの形式(R38.2、R38.2.1、R38.4 など)です。R38.2 から R38.2.0 を推測してはいけません。また、2 要素のリリースが 3 要素の tarball 名に対応すると決めつけてはいけません。

  • Jetson_Linux_R<ver>_aarch64.tbz2
  • Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2

ローカルに存在する場合は、public_sources.tbz2 が bzip2 tarball であることを確認します。

file -b "<workspace>/Downloads/public_sources.tbz2" | grep -q "bzip2 compressed"

ローカルに存在する場合は、同様に x-tools.tbz2 を確認します。

file -b "<workspace>/Downloads/x-tools.tbz2" | grep -q "bzip2 compressed"

ドキュメントのファイル名がリリースのバージョンと異なる場合は警告します。ただし、tarball に比べて NVIDIA のドキュメントの命名には一貫性がないため、処理は失敗させません。

完了

選択したリリース、ダウンロード/再利用/スキップしたアーティファクト、および正確なローカルパスを報告します。その後、次の項目を呼び出し元に引き継ぎます。

  1. /jetson-init-image
  2. /jetson-init-source
  3. /jetson-link-docs

注意点

  • このスキルはダウンロードのみを行います。展開は jetson-init-image と jetson-init-source の役割です。
  • イメージ tarball は Downloads/ ではなくイメージルートに配置します。jetson-init-image はイメージルート、ワークスペースルート、およびカレントディレクトリを検索するためです。
  • public_sources.tbz2 は Downloads/ に配置します。jetson-init-source が Branch A 用にこのパスを自動検出するためです。
  • x-tools.tbz2 は Downloads/ に配置します。jetson-init-source はこのパスを自動展開し、生成された source.toolchain プレフィックスを書き込むためです。
  • User Guide はプロファイルスキーマの documents.bsp_user_guide に対応し、bsp_developer_guide と並びます。jetson-link-docs はユーザーの確認後にこれを書き込みます。このスキルはファイルまたは URL をステージングするだけです。

目的

NVIDIA が提供する 4 つのアーティファクト(BSP、サンプル rootfs、public_sources、x-tools)と Developer / User Guide を、セットアップスキルが参照する正確なパスにステージングします。これにより、このスキルの完了後は /jetson-init-image、/jetson-init-source、および /jetson-link-docs をオフラインで実行できます。

前提条件

  • ../../context/target-platform-contract.md に従って、アクティブなターゲットプロファイルが解決されていること。
  • developer.nvidia.com と Jetson Linux アーカイブページへのネットワークアクセスがあること。
  • 想定される Image/、Source/、Downloads/、Documents/ のルートを含むワークスペース構成であること(デフォルトのワークスペース形式)。

制限事項

  • ダウンロードのみです。展開、apply_binaries.sh の実行、ソースのマウント、ドキュメントの登録、アクティブなプロファイルの変更は行いません。
  • リリースの選択対象は、公式の Jetson Linux アーカイブに掲載された項目に限られます。プレリリース版または内部ビルドは対象外です。
  • リトライやミラーのロジックはありません。失敗はユーザーに報告され、暗黙に再試行されることはありません。

トラブルシューティング

  • リリースページにアクセスできない — VPN/プロキシを確認してください。代替 URL を推測してはいけません。停止して報告してください。
  • アーカイブ名がアクティブなプラットフォームと一致しない — リリースでアクティブな参照 devkit が指定されていることを確認してください。指定されていない場合は、サポート対象のリリースを選ぶか、/jetson-set-target でターゲットを切り替えるようユーザーに依頼してください。
  • アーカイブに public_sources.tbz2 がない — リリースによっては別のページで配布されています。URL を推測せず、リリースページのリンクに従ってください。
  • 保存先に既存のファイルがある — 確認なしでの上書きは拒否してください。ダウンロードを冪等にするかどうかは、ユーザーの判断に委ねてください。

参考資料

コメント