mcpField
J
jetson-download-bsp

jetson-download-bsp

github.com/nvidia开发3.8k1.1k 次安装今天更新
代码仓库

关于 jetson-download-bsp

jetson-download-bsp 是 Jetson BSP 下载技能,供 Auto Setup 流程在工作区暂存 NVIDIA 发布文件。它按活动平台核验具体版本,并将镜像、源码包和指南放到后续设置技能使用的路径;不负责解压或修改配置。

主要功能

  1. 01核验平台支持的具体 BSP 版本
  2. 02下载 BSP、rootfs、源码和工具链
  3. 03暂存开发者指南与用户指南
  4. 04复用现有文件并验证下载产物

适用场景

  1. 01为 Auto 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 压缩包<bsp_image.root_path or workspace/Image>/Jetson_Linux_R<ver>_aarch64.tbz2
示例 rootfs 压缩包<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
开发者指南<documents.root_path or workspace/Documents>/
用户指南<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,后接两个或三个以点分隔的数字组件。按官方页面呈现的形式保留版本标记;不要添加 .0、删去补丁组件或以其他方式规范化。按点分隔的数字顺序降序排列版本选项(最新版本在前),比较实际存在的组件;在描述中保留来源提供的推荐信息。

按以下方式解析 quick_start_prefill.download.bsp_release:

  • 具体且受支持:继续使用该版本。
  • 缺失、为 skip、空白或系列占位符(R38.x、38.x):显示受支持的具体版本,并请用户选择一个。
  • 具体但不受支持或存在歧义:在发现构件之前停止,并显示当前平台、请求的 BSP 版本、受支持的具体版本,以及来源归档页面或版本页面。

绝不要自动将请求的版本替换为受支持的版本,即使只有一个受支持选项也不例外。

对于不受支持或存在歧义的预填值,使用共享的 用户输入提示样式, 要求用户恰好选择一个可点击操作:

  • pick_supported_release — 用户选择一个受支持的具体版本。
  • confirm_override — 用户确认不兼容的版本并填写覆盖原因。
  • cancel — 停止,不下载任何内容。

在所选版本为具体且受支持的版本,或用户明确确认覆盖之前,不要继续执行“定位版本构件”。在最终摘要中记录任何覆盖原因。如果用户取消,则停止且不下载任何内容。只有在归档页面或链接的版本页面明确列出当前平台时,才可声称该版本受支持。

发现重试

对于“确定目标版本”和“定位版本构件”中的每次构件 WebFetch(BSP、rootfs、 public_sources.tbz2、x-tools.tbz2、开发者指南、用户指南), 在标记为缺失之前尝试 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 镜像压缩包。
  • Tegra Linux 示例根文件系统压缩包。
  • public_sources.tbz2。
  • 与所选 BSP 版本匹配的 x-tools.tbz2 / Crosstool-NG Toolchain gcc。
  • 开发者指南。
  • 用户指南。

如果指南没有可直接下载的文件链接,则接受该版本的文档 URL 作为构件,并在最终摘要中记录。如果工具链列在 JetPack 下载页面而非版本页面上,请遵循官方页面链接并匹配所选 BSP 版本;不要根据版本号拼接 URL。每个必需构件都必须已下载、已存在于目标位置、以 URL 表示,或由用户明确跳过;完成前不要继续。

显示下载计划

在更改工作区之前,先打印计划,其中包括:

  • 选定的版本和版本页面 URL;
  • 当前平台摘要(reference_devkit.name、可选的 custom_carrier.name 和 flash_config);
  • 每个构件的源 URL 和目标路径,或要记录的文档 URL;
  • 将要复用的任何现有目标文件;
  • 任何需要通过浏览器/EULA 处理而非 curl 获取的构件。

默认选择 全部下载。如果所有必需构件都可下载、已存在可供复用,或属于需要记录的文档 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 压缩包文件名中包含从官方构件 URL 或第 2 步发现的文件名中取得的确切 R<ver> 标记。<ver> 可以包含两位或三位数字版本号(R38.2、R38.2.1、R38.4 等)。不要从 R38.2 推断出 R38.2.0,也不要假设选定的两段式版本对应三段式压缩包文件名:

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

如果 public_sources.tbz2 已存在于本地,则验证它是 bzip2 tar 压缩包:

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"

如果文档文件名与版本不一致,则发出警告,但不要判定失败;NVIDIA 文档的命名规范不如压缩包一致。

完成

报告选定的版本、已下载/复用/跳过的构件,以及准确的本地路径。然后将控制权交还调用方,依次运行:

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

注意事项

  • 此技能仅负责下载;解压由 jetson-init-image 和 jetson-init-source 负责。
  • 将镜像压缩包放在镜像根目录,而不是 Downloads/,因为 jetson-init-image 会搜索镜像根目录、工作区根目录和当前目录。
  • 将 public_sources.tbz2 放在 Downloads/,因为 jetson-init-source 会为分支 A 自动发现该路径。
  • 将 x-tools.tbz2 放在 Downloads/,因为 jetson-init-source 会自动解压该路径,并写入生成的 source.toolchain 前缀。
  • 在配置文件架构中,User Guide 对应 documents.bsp_user_guide(与 bsp_developer_guide 并列)。用户确认后,jetson-link-docs 会写入该项;此技能只暂存文件或 URL。

用途

将 NVIDIA 提供的四个构件(BSP、sample rootfs、 public_sources、x-tools)以及 Developer / User Guides 暂存到 Setup 技能查找的准确路径,以便此技能完成后,/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。停止并报告。
  • 归档名称与当前平台不匹配 — 确认该版本声明支持当前参考开发套件;如果不支持,请让用户选择受支持的版本,或通过 /jetson-set-target 切换目标。
  • 归档中缺少 public_sources.tbz2 — 某些版本会在单独的页面提供此文件;请使用版本页面中的链接,不要猜测 URL。
  • 目标位置已有文件 — 未经确认不得覆盖;是否重复下载由用户自行决定。

参考资料

评论

支持 Markdown