Agent Skills
返回列表
💻

Jetson BSP 源码构建

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/jetson-build-source。

技能介绍

要解决什么问题

在 Jetson BSP 定制流水线里,你在 /bsp_sources/ 里改的是内核侧源码(设备树、OOT 驱动、内核本身),但不会也不应该手工把 .dtb、.ko、Image 拷进 /Linux_for_Tegra/。你需要一次可重复的构建步骤:根据「哪些仓库相对上次成功构建变脏了」决定重建范围,调用 NVIDIA 上游已有的 kernel_src_build_env.sh 与 Makefile 原语,把产物留在源码树内,并写一份清单给 /jetson-promote-image 做部署。

纯覆盖层文件(如 nvpmodel.conf、BPMP DTB 的 dtc 循环)不走本技能;内核-DT 定制应进入复合覆盖层插槽,本技能负责在 dt/full 模式下注册 dtbo-y 与 OVERLAY_DTB_FILE。

技能如何工作

  • 前置校验:解析活跃目标配置;缺少 bsp_image:、source.toolchain:、空的 /bsp_sources/ 或缺失 kernel_src_build_env.sh 时,路由到 jetson-init-image / jetson-init-source 等设置技能,不在此解析工具链(只读 source.toolchain 并校验 CROSS_COMPILE 末尾短横线)。
  • 脏检测:用 $STATE 对比各内核侧仓库 HEAD 与未提交改动;Customize 提交后可被自动链接触发。
  • 四种模式:auto(默认)映射脏集 → dt / oot / kernel / full;也可传参强制单一模式。full 顺序为 kernel → oot → dt。
  • 构建与清单:委托 /Linux_for_Tegra/source/ 的 make 目标作用于 /bsp_sources/;按「追溯到脏」规则写入 .build-manifest.yaml(原子 mv),成功后更新 .build-state.yaml。

边界与注意点

  • OOT 单独构建要求此前至少跑过 kernel 或 full,否则应拒绝并提示先构建内核头文件环境。
  • R36.x Branch-A 可能在 $KS/Makefile 留下 dGPU/OpenRM 编排器,导致交叉 modules 出现 '-mlittle-endian' unrecognized;通用设置是安全网,根因修复在 jetson-init-source 提取阶段。
  • 复合覆盖层 Makefile 须在最后一个字面命名的 dtbo-y += 之后插入,否则 .dtbo 会被静默丢弃。
  • 主机硬性依赖:flex、bison、libssl-dev;构建输出不进覆盖层 git 历史,部署契约是清单而非直接写 BSP 映像树。

使用场景

  • customize 技能提交内核侧仓库后,需要按脏仓库自动触发 dt/oot/kernel/full 重建并生成 promote 清单
  • 从同事处 git pull 了 bsp_sources 新提交,要在不重复手工 make 的情况下对齐上次构建状态
  • 只改了六个 OOT 仓库里的驱动,希望单独跑 oot 模式而不是整包 full
  • 中断的自动链构建失败后,手动调用本技能并指定 kernel 或 full 以恢复可部署产物

适合人员

  • 负责载板内核-DT 与复合 overlay 的 BSP 集成工程师,提交定制后需稳定进入构建与烧录配置注册
  • 维护 Jetson 内核与 OOT 模块的嵌入式 Linux 开发者,依赖 source.toolchain 与脏 HEAD 标记做增量重建
  • 在「设置→定制→构建→部署」工作流中值守 promote 前环节的平台工程师,需要可追溯的 build manifest
  • R36/R38 多版本 BSP 环境下排查 Makefile 与 modules 交叉编译问题的现场支持工程师