| 名称 | jetson-init-target |
| 描述 | >- 编写一个新的 Jetson 目标平台配置文件(reference_devkit + 可选 custom_carrier),并更新活动指针。用于创建目标;不用于切换现有配置文件。 |
| 版本 | 0.0.1 |
| 开源协议 | “Apache-2.0” metadata: data-classification: public |
| 作者 | “Jetson Team” tags: - target-platform - configuration - meta domain: meta |
初始化目标平台(Initialize Target Platform)
概述
本技能用于编写新的目标平台配置文件 YAML,即目标平台契约的写入端。它使用 BSP 平台目录作为产品与闪存配置的标准目录,使用平台模板作为字段模式。流程为:选择参考产品与闪存配置,然后(可选)添加定制载板信息。参考/定制两种场景仅由用户是否提供定制载板信息区分。
范围仅限于 reference_devkit: 和 custom_carrier: 块。其它块(bsp_image:、source:、documents:)由其它姊妹技能处理。输出为新的 target-platform/<name>.yaml,并默认更新 active_target.yml。如需切换已存在的配置文件,请使用 jetson-set-target。
何时调用
- 用户要求创建/编写/添加新的目标平台配置文件。
- 下游技能因“无活动目标”拒绝,且
target-platform/下还没有任何配置文件时(否则建议使用jetson-set-target)。 - 用户想要一个磁盘上不存在的目标配置文件。
执行流程
快速启动预填映射
遵循共享的 quick_start_prefill 契约。本技能使用 quick_start_prefill.target.active_platform 作为所选目录行,使用 quick_start_prefill.target.custom_carrier 作为定制载板意图。若预填缺失/无效/不明确,才提问。
技能如何使用模板
加载 platform_template.yaml,每个占位值带标记:<REQUIRED:描述>(必填,NA 会警告)、<OPTIONAL:描述>(可选,跳过则省略)、<DERIVED:描述>(程序按目录与用户选择填充,不提问)。
检查当前状态
- 若
target-platform/不存在,则创建并从active_target_template.yaml复制为active_target.yml。 - 读取
active_target.yml。 - 列出
target-platform/*.yaml(排除active_target.yml)。
根据是否存在配置文件的不同情况,确定是继续引导创建还是指示使用 jetson-set-target。
读取平台目录
读取 bsp-platforms-catalogue.md,使用“Product / Chip / SKU / Flash Config Mapping”表格作为产品名称、CVM/CVB SKU、默认闪存配置和变体后缀的唯一依据。
选择参考产品(基线)
先打印完整目录列表,按芯片族分组并编号。每个芯片族第一行作为快捷选择,也支持输入数字索引。若硬件是带有这些 Jetson 模块的定制载板,则选择最接近的参考开发套件作为基线。输入 cancel 取消;不允许 skip;键入必须是数字或 cancel。
选择闪存配置
目录行中“Default flash conf”为选项 1,“Variants”为选项 2…N。若变体写 (same as <other>),则复用相应行的变体。无变体则使用默认配置继续。
可选:添加定制载板信息
根据 quick_start_prefill.target.custom_carrier 决定是否添加。若意图为 add,通过 AskUserQuestions UI 收集所有缺少的字段:name、id、sku、revision、flash_config。flash_config 建议使用 name 的 kebab-case 加 .conf。SKU 等需要以 YAML 引号保留数字前导零。若用户不知道值,建议读取 /proc/device-tree/chosen/ids;仍不可得则必填字段可填 NA。(模板有意不加 custom_carrier.module/chip_family,模块身份来源于 reference_devkit.module。)
确认
展示生成的 YAML。文件名建议:仅参考时为产品名称的 kebab-case 加 .yaml;含定制载板时为 custom_carrier.name 的 kebab-case 加 .yaml。若重名则询问。初次引导(无任何配置文件)时自动激活,不询问;已有配置则询问是否激活新配置。
写入(及激活)
写入 target-platform/<filename>.yaml,若已存在先询问避免覆盖。若属于引导自动激活或用户接受激活,则编辑 active_target.yml 中的 active: 行(保留注释头)。拒绝激活则保留原样。
再次确认
打印摘要:配置文件路径、活动指针状态、Tegra 家族、是否记录 custom_carrier:,并提醒下游技能会按活动配置文件解析。若无激活,提示使用 jetson-set-target。
后续步骤:1) /jetson-init-image 提取 BSP 并附加 bsp_image:;2) /jetson-init-source 克隆仓库;3) /jetson-link-docs(可选)注册文档;然后执行 4) /jetson-generate-kb 生成知识库;5) /jetson-derive-carrier(仅定制载板)物化载板 flash conf/DTSI。
前置条件
bsp-platforms-catalogue.md和platform_template.yaml可达。- 对
target-platform/(及active_target.yml)有写权限。 - 如需查询模块/载板信息,可在已启动设备上读取
/proc/device-tree/chosen/ids。
限制
- 仅处理
reference_devkit:、custom_carrier:及active_target.yml指针;不写入其它块。 - 不发明 SKU、模块 ID、载板元数据或闪存配置;不知道必填值时记录
NA或中止。
故障排除
- 用户想切换而不是创建:拒绝并指向
jetson-set-target。 - 目录中找不到产品:先在
bsp-platforms-catalogue.md添加行,不要在本技能内修改产品列表。 NA卡住:用/proc/device-tree/chosen/ids获取真实值并重跑。active_target.yml注释丢失:使用ruamel.yaml并从模板恢复。
参考
bsp-platforms-catalogue.md—— 产品/闪存配置目录target-platform-contract.md—— 契约platform_template.yaml—— 字段模式active_target_template.yaml—— 活动指针模板- 姊妹技能:
jetson-set-target、jetson-init-image、jetson-init-source、jetson-link-docs