mcpField
J
jetson-print-bsp-info

jetson-print-bsp-info

github.com/nvidia测试与质量3.8k1.1k 次安装今天更新
代码仓库

关于 jetson-print-bsp-info

jetson-print-bsp-info 是用于在 Linux 主机上只读检查 Jetson Linux_for_Tegra BSP 目录的技能。它报告 L4T 版本、板级配置文件及 rootfs 是否已填充。

主要功能

  1. 01验证 Linux_for_Tegra 目录
  2. 02读取 L4T 版本头信息
  3. 03列出板级配置文件
  4. 04检查 rootfs 填充状态
  5. 05输出简明状态报告

适用场景

  1. 01解包 BSP 后检查目录
  2. 02刷写前确认 L4T 版本
  3. 03检查 apply_binaries.sh 是否填充 rootfs

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/jetson-print-bsp-info确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

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

详细介绍

jetson-print-bsp-info

在主机 PC 上打印 Jetson Linux_for_Tegra(BSP)目录树的简要摘要。

此技能旨在作为 jetson-bsp-skills 仓库和 NVIDIA 全局技能 CI 的参考示例。它只执行只读检查,不会刷写设备或更改 rootfs。

用途

在刷写前,采集 Linux_for_Tegra BSP 目录树的基线快照(版本、开发板配置、rootfs 状态),以便尽早发现“L4T 版本错误”或“rootfs 从未填充”等问题。

适用场景

  • 用户已解压 Jetson BSP tarball,并想在刷写前确认 L4T 版本、受支持的开发板和 rootfs 状态。
  • 需要快速检查 Linux_for_Tegra/ 目录是否有效(是否包含预期的脚本和配置文件)。

先决条件

  • 在主机 PC(Linux)上运行,而非在 Jetson 目标设备上运行。
  • 已从 Jetson BSP tarball 解压出 Linux_for_Tegra/ 目录。
  • 可使用标准 CLI:ls、head、cat、paste、sed。

输入

  • L4T_ROOT(可选):Linux_for_Tegra/ 目录的绝对路径。若未设置,则使用当前工作目录。

说明

按顺序执行每个步骤,并将捕获的值打印到 输出格式 中所示的报告。

  1. 解析 L4T_ROOT,并验证该目录是 Linux_for_Tegra 根目录;否则提前退出。flash.sh 和 nv_tegra/ 是每个 BSP 都包含的两个锚点文件:
    L4T_ROOT="${L4T_ROOT:-$PWD}"
    if [ ! -f "$L4T_ROOT/flash.sh" ] || [ ! -d "$L4T_ROOT/nv_tegra" ]; then
      echo "Not a Linux_for_Tegra root: '$L4T_ROOT' (missing flash.sh or nv_tegra/)"
      exit 1
    fi
    echo "$L4T_ROOT"
    
  2. 提取 L4T 版本头部行。主机端的标准位置是 nv_tegra/nv_tegra_release;同一文件也会由 apply_binaries.sh 复制到 rootfs 中。只有第一行有用,其余内容是很长的库 SHA 列表:
    head -1 "$L4T_ROOT/nv_tegra/nv_tegra_release" 2>/dev/null \
      || head -1 "$L4T_ROOT/rootfs/etc/nv_tegra_release" 2>/dev/null \
      || echo "L4T release info not found"
    
  3. 列出受支持的开发板配置文件,并将它们合并为一行逗号分隔的内容:
    (cd "$L4T_ROOT" && ls *.conf 2>/dev/null) | paste -sd, -
    
  4. 检查 rootfs 是否已填充。空的 rootfs/ 表示尚未运行 apply_binaries.sh:
    if [ -f "$L4T_ROOT/rootfs/etc/passwd" ]; then
      echo "populated"
    else
      echo "empty"
    fi
    

输出格式

打印一份简短报告,包含以下部分;尽可能每部分单独一行:

L4T root:        <path>
L4T release:     <release header line>
Board configs:   <comma-separated list>
Rootfs:          populated | empty

示例

Orin AGX BSP(L4T R36)的示例输出:

L4T root:        $HOME/Linux_for_Tegra
L4T release:     # R36 (release), REVISION: 3.0
Board configs:   jetson-agx-orin-devkit.conf,jetson-orin-nano-devkit.conf
Rootfs:          populated

在尚未运行 apply_binaries.sh 的全新解压 BSP 上的示例输出:

L4T root:        /tmp/Linux_for_Tegra
L4T release:     # R39 (release), REVISION: 0.0
Board configs:   jetson-agx-thor-devkit.conf
Rootfs:          empty

错误处理

如果底层文件缺失,每条命令都会回退到带有明确标签的 "... not found" 字符串;此技能不会在报告生成过程中途报错。如果 L4T_ROOT 中没有 flash.sh 和 nv_tegra/,则提前退出并显示清晰的“not a Linux_for_Tegra root”消息,而不是打印误导性信息。

限制

  • 仅执行只读检查;不验证签名、内核镜像或设备树覆盖文件。
  • 仅将 rootfs/etc/passwd 是否存在作为 rootfs 已填充的判断依据;无法检测只填充了一部分的 rootfs。
  • 列出 L4T_ROOT/ 中所有 *.conf 开发板配置;不会尝试推断用户打算刷写哪个配置。

故障排除

  • 错误: Not a Linux_for_Tegra root: '...' (missing flash.sh or nv_tegra/) 原因: L4T_ROOT 指向父目录、已解压的 rootfs 或无关路径。 解决方案: 将 L4T_ROOT 指向包含 flash.sh 的目录(通常是 Linux_for_Tegra/)。

  • 错误: L4T release info not found 原因: nv_tegra/nv_tegra_release 和 rootfs/etc/nv_tegra_release 均不存在;BSP tarball 可能不完整,或尚未运行 apply_binaries.sh。 解决方案: 重新解压 BSP tarball,或运行 apply_binaries.sh 以填充 rootfs。

注意事项

  • 不要修改任何文件。此技能为只读。
  • 如果存在多个开发板配置文件,请全部列出;不要猜测用户打算刷写哪一个。

评论

支持 Markdown