jetson-download-bsp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Download BSP Artifacts

下载BSP制品

jetson-download-bsp
owns network fetches for the Auto Setup path. It does not extract archives, initialize source trees, register documents, or edit the active target profile. Those remain owned by
jetson-init-image
,
jetson-init-source
, and
jetson-link-docs
.
jetson-download-bsp
负责自动设置流程中的网络下载操作。 它不会解压归档文件、初始化源码树、注册文档或编辑当前目标配置文件。这些操作由
jetson-init-image
jetson-init-source
jetson-link-docs
负责。

When to invoke

调用时机

  • /jetson-quick-start
    selected
    Auto Setup
    .
  • The user wants NVIDIA BSP artifacts downloaded into the current workspace before running setup skills.
  • 选择了
    /jetson-quick-start
    的「自动设置(Auto Setup)」选项。
  • 用户希望在运行设置技能前,将NVIDIA BSP制品下载到当前工作区。

Inputs and outputs

输入与输出

Resolve the active profile per
../../context/target-platform-contract.md
. Refuse if no active profile exists.
Follow the shared
quick_start_prefill
contract
. When invoked by
/jetson-quick-start
, this skill consumes
quick_start_prefill.mode
and
quick_start_prefill.download.bsp_release
as the requested release when present. Missing or invalid prefilled values are not fatal, but a concrete release is required before any download starts.
Use the workspace root as the parent of
target-platform/
. Place files where downstream setup skills already search:
ArtifactDestination
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>/
Do not write
bsp_image:
,
source:
, or
documents:
blocks. The next setup skills will register derived metadata after extraction or user confirmation.
根据
../../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
示例根文件系统压缩包
<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:
块。后续的设置技能会在解压或用户确认后注册衍生元数据。

Procedure

操作流程

Resolve target release

确定目标版本

From the archive and linked release pages, list concrete releases that explicitly support the active platform. Let the user choose a concrete Jetson Linux / L4T release token (
R36.4.4
,
36.4.4
,
38.2
,
38.2.1
,
38.4
, etc.); do not proceed with a family placeholder such as
R38.x
. A concrete release token is an optional leading
R
followed by two or three numeric dotted components. Preserve the token exactly as the official page presents it; do not add
.0
, remove a patch component, or otherwise normalize it. Sort release choices by dotted numeric order descending (newest first), comparing the components that are present; keep source-provided recommendations in descriptions.
Resolve
quick_start_prefill.download.bsp_release
as follows:
  • Concrete and supported: continue with that release.
  • Missing,
    skip
    , blank, or a family placeholder (
    R38.x
    ,
    38.x
    ): show supported concrete releases and ask the user to choose one.
  • Concrete but unsupported or ambiguous: stop before artifact discovery and show the active platform, requested BSP release, supported concrete releases, and source archive or release page.
Never auto-substitute the requested release with a supported release, even when there is only one supported option.
For unsupported or ambiguous prefill, ask with the shared
User input prompt style
, to choose exactly one click-to-select action:
  • pick_supported_release
    — user selects one supported concrete release.
  • confirm_override
    — user confirms the incompatible release and enters an override reason.
  • cancel
    — stop with no downloads.
Do not continue to "Locate release artifacts" until the selected release is concrete and supported, or the user explicitly confirms override. Record any override reason in the final summary. If the user cancels, stop with no downloads. Do not claim support unless the archive or linked release page explicitly lists the active platform.
从归档页面及关联的版本页面中,列出明确支持当前平台的具体版本。让用户选择一个具体的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
    — 停止操作,不进行任何下载。
在所选版本为具体且受支持的版本,或用户明确确认覆盖之前,请勿进入「定位版本制品」步骤。将任何覆盖原因记录在最终总结中。如果用户取消,则停止操作,不进行任何下载。除非归档或关联版本页面明确列出当前平台,否则请勿声称支持该平台。

Discovery retries

发现重试机制

For every artifact WebFetch in "Resolve target release" and "Locate release artifacts" (BSP, rootfs,
public_sources.tbz2
,
x-tools.tbz2
, Developer Guide, User Guide), try 3 attempts before marking it missing:
  1. Focused prompt — artifact name + file type.
  2. Verbatim link dump on the same URL — "list every hyperlink, text and href, no filtering". Accept product-specific names and
    .html
    indexes.
  3. Verbatim dump on a sibling page — Jetson Linux archive, JetPack downloads, or
    https://docs.nvidia.com/jetson/archives/r<ver>/
    .
Only after all 3 fail, route to user-paste / skip. Never fabricate URLs.
在「确定目标版本」和「定位版本制品」步骤中,对于每个制品的网络获取操作(BSP、根文件系统、
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。

Locate release artifacts

定位版本制品

Follow links from the selected release page. Never construct NVIDIA download URLs by string concatenation.
Required artifacts:
  • Jetson Linux BSP image tarball.
  • Tegra Linux sample root filesystem tarball.
  • public_sources.tbz2
    .
  • x-tools.tbz2
    / Crosstool-NG Toolchain gcc matching the selected BSP release.
  • Developer Guide.
  • User Guide.
If a guide is not available as a direct file link, accept the release documentation URL as the artifact and record it in the final summary. If the toolchain is listed on a JetPack downloads page instead of the release page, follow the official page link and match the selected BSP release; do not synthesize the URL from a release number. Do not proceed until each required artifact is downloaded, already present at its destination, represented by a URL, or explicitly skipped by the user.
从所选版本页面中跟随链接查找。绝不能通过字符串拼接构造NVIDIA下载URL。
必需制品:
  • Jetson Linux BSP镜像压缩包。
  • Tegra Linux示例根文件系统压缩包。
  • public_sources.tbz2
  • 与所选BSP版本匹配的
    x-tools.tbz2
    / Crosstool-NG Toolchain gcc
  • 开发者指南。
  • 用户指南。
如果指南无法通过直接文件链接获取,则接受版本文档URL作为制品并记录在最终总结中。如果工具链在JetPack下载页面而非版本页面列出,则跟随官方页面链接并匹配所选BSP版本;请勿通过版本号合成URL。在每个必需制品完成下载、已存在于目标路径、由URL表示或被用户明确跳过之前,请勿继续操作。

Show the fetch plan

展示下载计划

Before changing the workspace, print a plan with:
  • selected release and release page URL;
  • active platform summary (
    reference_devkit.name
    , optional
    custom_carrier.name
    , and
    flash_config
    );
  • source URL and destination path, or documentation URL, for every artifact;
  • any existing destination file that will be reused;
  • any artifact that requires browser/EULA handling instead of
    curl
    .
Default to Download all. Do not ask an extra confirmation when every required artifact is downloadable, already present for reuse, or a documentation URL to record. Print the plan and continue to disk-space verification.
Still stop and ask before side effects in any of these cases:
  • the release required an incompatibility override;
  • a required artifact is missing and needs user-paste / skip;
  • a destination file would be overwritten rather than reused;
  • the artifact requires browser/EULA handling;
  • disk-space verification fails or cannot be computed safely.
在修改工作区之前,打印包含以下内容的计划:
  • 所选版本及版本页面URL;
  • 当前平台摘要(
    reference_devkit.name
    、可选的
    custom_carrier.name
    flash_config
    );
  • 每个制品的来源URL和目标路径,或文档URL;
  • 任何将被复用的现有目标文件;
  • 任何需要浏览器/EULA处理而非
    curl
    下载的制品。
默认选择全部下载。当所有必需制品均可下载、已存在可复用或为需记录的文档URL时,无需额外确认。打印计划后继续进行磁盘空间验证。
在以下任何情况下,仍需停止操作并询问用户后再执行副作用操作:
  • 版本需要兼容性覆盖;
  • 某个必需制品缺失,需要用户手动粘贴链接或跳过;
  • 目标文件将被覆盖而非复用;
  • 制品需要浏览器/EULA处理;
  • 磁盘空间验证失败或无法安全计算。

Verify disk space

验证磁盘空间

Sum
Content-Length
across artifacts to download (
curl -sI <url>
); refuse if
df -B1 --output=avail <workspace>
headroom < sum × 1.2. Skip URL-only artifacts.
计算所有待下载制品的
Content-Length
总和(通过
curl -sI <url>
获取);如果
df -B1 --output=avail <workspace>
显示的可用空间 < 总和 × 1.2,则拒绝执行。跳过仅URL形式的制品。

Download safely

安全下载

Create destination directories as needed. For direct file links, use a temporary
.part
path and rename only after success:
bash
mkdir -p "<destination-dir>"
curl -fL --retry 3 --retry-all-errors --retry-delay 5 -o "<destination>.part" "<artifact-url>"
mv "<destination>.part" "<destination>"
If a destination file already exists and is non-empty, reuse it by default after showing its path. Ask before overwriting. If an artifact download fails due to 404, 401/403, EULA/browser authentication, or a network error, stop and show the artifact URL plus expected destination path. Ask the user to download the file manually, skip that artifact, or cancel. Do not synthesize alternate NVIDIA URLs.
根据需要创建目标目录。对于直接文件链接,使用临时的
.part
路径,仅在下载成功后重命名:
bash
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。

Validate filenames

验证文件名

Before finishing, verify the BSP and rootfs tarball filenames contain the exact
R<ver>
token from the official artifact URL or filename discovered in Step 2.
<ver>
may have two or three numeric components (
R38.2
,
R38.2.1
,
R38.4
, etc.). Do not infer
R38.2.0
from
R38.2
, and do not assume that a selected two-component release maps to a three-component tarball name:
  • Jetson_Linux_R<ver>_aarch64.tbz2
  • Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2
Verify
public_sources.tbz2
is a bzip2 tarball when it exists locally:
bash
file -b "<workspace>/Downloads/public_sources.tbz2" | grep -q "bzip2 compressed"
Verify
x-tools.tbz2
the same way when it exists locally:
bash
file -b "<workspace>/Downloads/x-tools.tbz2" | grep -q "bzip2 compressed"
Warn, but do not fail, if document filenames differ from the release version; NVIDIA documentation naming is less consistent than tarballs.
完成下载前,验证BSP和根文件系统压缩包的文件名是否包含步骤2中发现的官方制品URL或文件名中的精确
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压缩包:
bash
file -b "<workspace>/Downloads/public_sources.tbz2" | grep -q "bzip2 compressed"
x-tools.tbz2
存在于本地时,以相同方式验证:
bash
file -b "<workspace>/Downloads/x-tools.tbz2" | grep -q "bzip2 compressed"
如果文档文件名与版本不一致,发出警告但不终止操作;NVIDIA文档的命名一致性不如压缩包。

Finish

完成操作

Report the selected release, downloaded/reused/skipped artifacts, and exact local paths. Then hand back to the caller with:
  1. /jetson-init-image
  2. /jetson-init-source
  3. /jetson-link-docs
报告所选版本、已下载/复用/跳过的制品以及确切的本地路径。然后将控制权交回调用方,后续执行:
  1. /jetson-init-image
  2. /jetson-init-source
  3. /jetson-link-docs

Gotchas

注意事项

  • Keep this skill download-only; extraction belongs to
    jetson-init-image
    and
    jetson-init-source
    .
  • Put image tarballs in the image root, not
    Downloads/
    , because
    jetson-init-image
    searches the image root, workspace root, and current directory.
  • Put
    public_sources.tbz2
    in
    Downloads/
    because
    jetson-init-source
    auto-discovers that path for Branch A.
  • Put
    x-tools.tbz2
    in
    Downloads/
    because
    jetson-init-source
    auto-extracts that path and writes the resulting
    source.toolchain
    prefix.
  • The User Guide maps to
    documents.bsp_user_guide
    in the profile schema (alongside
    bsp_developer_guide
    ).
    jetson-link-docs
    writes it when the user confirms; this skill only stages the file or URL.
  • 本技能仅负责下载;解压操作属于
    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
    前缀。
  • 用户指南对应配置文件架构中的
    documents.bsp_user_guide
    (与
    bsp_developer_guide
    并列)。
    jetson-link-docs
    会在用户确认后写入该信息;本技能仅负责暂存文件或URL。

Purpose

目的

Stage the four NVIDIA-shipped artifacts (BSP, sample rootfs, public_sources, x-tools) plus the Developer / User Guides at the exact paths the Setup skills look in, so
/jetson-init-image
,
/jetson-init-source
, and
/jetson-link-docs
can run offline once this skill is done.
将NVIDIA提供的四个制品(BSP、示例根文件系统、public_sources、x-tools)以及开发者/用户指南放置在设置技能指定的精确路径中,以便本技能完成后,
/jetson-init-image
/jetson-init-source
/jetson-link-docs
可以离线运行。

Prerequisites

前置条件

  • Active target profile resolved per
    ../../context/target-platform-contract.md
    .
  • Network access to
    developer.nvidia.com
    and the Jetson Linux archive page.
  • Workspace layout with the expected
    Image/
    ,
    Source/
    ,
    Downloads/
    , and
    Documents/
    roots (default workspace shape).
  • 根据
    ../../context/target-platform-contract.md
    解析得到当前目标配置文件。
  • 可访问
    developer.nvidia.com
    和Jetson Linux归档页面的网络权限。
  • 工作区布局包含预期的
    Image/
    Source/
    Downloads/
    Documents/
    根目录(默认工作区结构)。

Limitations

限制

  • Download-only; never extracts, runs
    apply_binaries.sh
    , mounts sources, registers documents, or mutates the active profile.
  • Release selection is bounded to entries published on the official Jetson Linux archive; pre-release or internal builds are out of scope.
  • No retry / mirror logic — failures are surfaced to the user, not silently retried.
  • 仅负责下载;绝不执行解压、运行
    apply_binaries.sh
    、挂载源码、注册文档或修改当前配置文件的操作。
  • 版本选择仅限于官方Jetson Linux归档页面发布的条目;预发布或内部构建不在范围内。
  • 无重试/镜像逻辑 — 失败会直接告知用户,不会静默重试。

Troubleshooting

故障排除

  • Release page not reachable — check VPN / proxy; do not invent fallback URLs. Stop and report.
  • Archive name mismatch with active platform — verify the release declares the active reference devkit; if not, ask the user to pick a supported release or switch target via
    /jetson-set-target
    .
  • public_sources.tbz2
    missing on archive
    — some releases ship it as a separate page; follow the release-page link rather than guessing the URL.
  • Existing files in the destination — refuse to overwrite without confirmation; downloads must be idempotent at the user's discretion.
  • 版本页面无法访问 — 检查VPN/代理;不要使用备用URL。停止操作并报告问题。
  • 归档名称与当前平台不匹配 — 验证版本是否声明支持当前参考开发套件;如果不支持,让用户选择受支持的版本或通过
    /jetson-set-target
    切换目标。
  • 归档中缺少
    public_sources.tbz2
    — 某些版本会将其放在单独页面;跟随版本页面的链接查找,而非猜测URL。
  • 目标路径中存在现有文件 — 未经确认不得覆盖;下载操作需根据用户判断保证幂等性。

References

参考资料