| 名称 | jetson-print-bsp-info |
| 描述 | 当需要在主机PC上从Linux_for_Tegra根目录打印Jetson BSP信息(L4T版本、板卡配置、根文件系统状态)时使用。这是一个示例技能。 |
| 版本 | 0.0.1 |
| 开源协议 | “Apache-2.0” metadata: |
| 作者 | “Jetson团队” tags: [jetson, bsp, 信息] languages: [bash] data-classification: public |
jetson-print-bsp-info
打印主机PC上Jetson Linux_for_Tegra(BSP)目录树的简要摘要。
此技能旨在作为jetson-bsp-skills仓库和NVIDIA-wide技能CI的参考示例。它执行只读检查——不烧录,不修改根文件系统。
目的
在烧录前捕获Linux_for_Tegra BSP目录树(版本、板卡配置、根文件系统状态)的基线快照,以便及早发现“L4T版本错误”或“根文件系统从未填充”等问题。
何时使用
- 用户已解压Jetson BSP tarball,希望在烧录前确认L4T版本、支持的板卡以及根文件系统状态。
- 需要快速检查
Linux_for_Tegra/目录是否有效(存在预期的脚本和配置文件)。
先决条件
- 在主机PC(Linux)上运行,而非在Jetson目标设备上。
- 已从Jetson BSP tarball解压出
Linux_for_Tegra/目录。 - 可用的标准CLI:
ls、head、cat、paste、sed。
输入
L4T_ROOT(可选):Linux_for_Tegra/目录的绝对路径。如果未设置,则使用当前工作目录。
说明
按顺序运行每个步骤,并将捕获的值打印到输出格式下的报告中。
- 解析
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" - 提取 L4T版本头行。规范的主机端位置是
nv_tegra/nv_tegra_release;同一文件由apply_binaries.sh复制到根文件系统。只有第一行有用——其余是一个很长的库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" - 列出支持的板卡配置文件,并将其连接为一行逗号分隔的列表:
(cd "$L4T_ROOT" && ls *.conf 2>/dev/null) | paste -sd, - - 检查根文件系统是否已填充。空的
rootfs/表示尚未运行apply_binaries.sh:if [ -f "$L4T_ROOT/rootfs/etc/passwd" ]; then echo "populated" else echo "empty" fi
输出格式
打印一份简短报告,尽量每部分一行:
L4T root: <路径>
L4T release: <版本头行>
Board configs: <逗号分隔的列表>
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/,则提前退出,并显示明确的“不是Linux_for_Tegra根目录”消息,而不是打印误导信息。
限制
- 仅只读检查——不验证签名、内核映像或设备树覆盖层。
- 仅检查
rootfs/etc/passwd的存在作为根文件系统已填充的代理;不会检测半填充的根文件系统。 - 列出
L4T_ROOT/中的所有*.conf板卡配置;不会尝试推断用户打算烧录哪一个。
故障排除
-
错误:
Not a Linux_for_Tegra root: '...' (missing flash.sh or nv_tegra/)原因:L4T_ROOT指向父目录、解压的根文件系统或无关路径。 解决方案: 将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以填充根文件系统。
注释
- 不修改任何文件。此技能是只读的。
- 如果存在多个板卡配置文件,列出所有——不要尝试猜测用户打算烧录哪一个。