Jetson BSP nvpmodel 电源模式定制
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/jetson-customize-nvpmodel。
技能介绍
问题背景
Jetson / Tegra 设备上电后由 nvpmodel 决定 CPU、GPU、EMC、TPC 等时钟钳位与默认电源包络。NVIDIA BSP 在 rootfs/etc/nvpmodel/ 下为每块模块/SKU 提供独立配置文件;若要在镜像构建侧固定启动模式、增删自定义功率档位或改默认 PM_CONFIG DEFAULT=,直接改上游 bsp_image 会在下次 jetson-init-image 时被覆盖,且破坏与 /jetson-promote-image 配套的差异跟踪。
技能如何工作
本技能仅处理 BSP 叠加层(overlay tracker)下的 nvpmodel_*.conf 编辑;bsp_image 副本只读。运行前按活动配置解析目标板对应的 nvpmodel 文件名(DTB compatible + nvpower.sh 映射,或 _super 等变体),并拒绝无 Linux_for_Tegra、无 bsp_image 等前置缺失场景。
核心能力对应五类操作:
- 添加/移除
POWER_MODEL块(非标准包络须用 NVIDIA Power Estimator 导出,禁止从邻近模式插值估功率) - 编辑 现有模式内的钳位、核心在线、
NAME=等 - 修改 文件尾部
PM_CONFIG DEFAULT=启动默认值 - 列出 已定义模式(只读,无需叠加配方)
写入前统一走叠加编辑配方(原始 import + 定制 commit);编辑后需对传播集同步:参考平台配置、同模块由 jetson-derive-carrier 派生的兄弟文件,以及 _super 变体——后者只移植结构性变更,保留其更高的 MAX_FREQ/MIN_FREQ 上限,避免整文件覆盖压平超级包络。
格式上须遵守 BSP 头规范:TYPE=FILE 为字符串、TYPE=CLOCK 为 Hz 整数、-1 仅对 CLOCK 表示无上限;POWER_MODEL 引用的 PARAM_NAME 须先声明;频率须落在内核 available_frequencies 表内;CORE_0 不可离线。
边界与注意
- 技能不会在运行中设备上执行
nvpmodel -m;生效需走/jetson-promote-image→/jetson-flash-image,或 scp 到/etc/nvpmodel/后手动切换。 - PARAM 命名随芯片系而异(如 T234 的
CPU_A78_*),须从现有块逐字复制,勿自行发明。 - 删除模式时若
DEFAULT=指向该 ID,须改指向剩余有效 ID,并grep根文件系统中硬编码的nvpmodel -m引用。
使用场景
- 为 P3767 等 SKU 从 Power Estimator 导出 30 W 档位,写入叠加层并设为 `PM_CONFIG DEFAULT=` 启动默认
- 定制载板 BSP 需删除多余 `POWER_MODEL` ID,并修正尾部 DEFAULT 避免启动无法应用默认值
- Thor 目标仅将启动包络固定为 MAXN,不改 CPU/GPU 钳位,只改每板 conf 底部 DEFAULT
- 编辑活动 SKU 的 nvpmodel 后,向参考平台、derive-carrier 兄弟文件及 `_super` 变体做结构性同步
适合人员
- 维护 `Linux_for_Tegra` 叠加仓库、需在 promote 前固化每板启动功耗档的 Jetson BSP 工程师
- 为量产烧录前指定默认 nvpmodel 模式、避免产线手工 `nvpmodel -m` 的嵌入式产品集成工程师
- 使用 jetson-derive-carrier 生成多份 `nvpmodel_*.conf`、改一处需全谱系一致传播的载板方案开发者
- 按项目热设计约束新增非标准功率包络、且拒绝在现有模式间插值估频的 Orin/Thor 平台调优人员