jetson-print-bsp-infoSkill jetson-print-bsp-info

用于在主机PC上打印Jetson Linux_for_Tegra (BSP) 的关键信息,包括L4T版本、支持的板卡配置列表以及根文件系统填充状态,帮助用户在烧录前快速验证BSP树的有效性。关键词:Jetson、BSP、L4T版本、板卡配置、根文件系统、Linux_for_Tegra、烧录前检查、只读工具

BSP与板级支持 0 次安装 0 次浏览 更新于 9/6/2026
名称 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:lsheadcatpastesed

输入

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

说明

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

  1. 解析 L4T_ROOT验证该目录是Linux_for_Tegra根目录——否则提前退出。flash.shnv_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复制到根文件系统。只有第一行有用——其余是一个很长的库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/表示尚未运行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.shnv_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_releaserootfs/etc/nv_tegra_release均不存在——BSP tarball可能不完整,或从未运行apply_binaries.sh解决方案: 重新解压BSP tarball,或运行apply_binaries.sh以填充根文件系统。

注释

  • 不修改任何文件。此技能是只读的。
  • 如果存在多个板卡配置文件,列出所有——不要尝试猜测用户打算烧录哪一个。