关于 jetson-set-target
jetson-set-target 用于在已有 Jetson 目标配置文件之间切换活动目标,只更新 active_target.yml,不创建配置文件。它会列出可用配置并在确认选择后更改指针。
主要功能
- 01列出已有目标配置
- 02按名称或文件名选择目标
- 03保留指针文件注释
- 04验证配置文件存在后更新活动指针
- 05跳过无法解析的配置并继续列出
适用场景
- 01在多个 Jetson 目标间切换
- 02为后续定制技能指定活动目标
- 03恢复指向有效配置文件的活动指针
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill jetson-set-target安装后在 Claude Code 中输入/jetson-set-target确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json详细介绍
设置目标平台
概述
此技能是目标平台契约中负责切换的一侧,详见
../../context/target-platform-contract.md。它只会
编辑 target-platform/active_target.yml;不会编写新的
配置文件 YAML。若要编写新的配置文件,请使用同级技能
jetson-init-target。
唯一输出:更新后的 target-platform/active_target.yml,指向
用户选择的现有配置文件。
何时调用
- 用户要求在现有配置文件中切换/更改/激活其他目标 平台。
- 下游技能因“no active target”而拒绝执行,并且
target-platform/中已有一个或多个配置文件 YAML。 - 用户通过文件名或产品名称指定目标,且相应配置文件 YAML 已存在于磁盘上。
如果 target-platform/ 不存在、为空,或仅包含
active_target.yml,则停止并告知用户先运行 jetson-init-target。
流程
检查配置文件目录
- 读取
target-platform/active_target.yml(如果文件不存在,则在本技能中将其视为active: NA——如有需要,将在“更新活动指针”步骤中创建该文件,并保留模板标头)。 - 列出
target-platform/*.yaml,排除active_target.yml本身。
| 情况 | 操作 |
|---|---|
| 不存在配置文件 YAML | 拒绝操作。告知用户运行 jetson-init-target 来编写配置文件。 |
| 只有一个配置文件,且已激活 | 告知用户该配置文件已激活;无需更改。停止。 |
| 只有一个配置文件,尚未激活 | 请用户确认,然后跳转到“更新活动指针”步骤并选择该配置文件。 |
| 有多个配置文件 | 继续执行“显示列表”步骤。 |
显示列表
按字母顺序列出配置文件并编号。使用 (active) 标记当前
激活的配置文件,让用户知道当前切换自哪个目标。对于每个配置文件,解析其 YAML,并显示一行
摘要,方便用户无需打开文件即可识别:reference_devkit.name(如果存在,则为
custom_carrier.name)以及 flash_config。
示例格式:
Profiles in target-platform/:
1) acme-vision-x1.yaml — Acme Vision X1 (custom carrier on AGX Thor T5000) — acme-vision-x1.conf
2) jetson-agx-orin-32gb.yaml — Jetson AGX Orin 32GB — jetson-agx-orin-devkit.conf
3) jetson-agx-thor-devkit.yaml — Jetson AGX Thor T5000 — jetson-agx-thor-devkit.conf (active)
4) jetson-orin-nano-8gb.yaml — Jetson Orin Nano 8GB — jetson-orin-nano-devkit.conf
如果配置文件 YAML 无法解析,或缺少预期字段,则显示
纯文件名,并附上 (无法解析 — 请修复或移除) 标记,然后跳过该文件继续处理;不要因为单个文件有问题就拒绝执行整个技能。
提示选择
提示:
请选择一个编号、纯文件名、产品名称(子字符串 匹配),或输入
cancel。
解析为单个配置文件名。如果用户选择的是当前已激活的配置文件,告知用户该配置文件已激活,然后停止,不要重写指针。如果存在歧义,则列出候选项并再次询问。
更新活动指针
编辑 target-platform/active_target.yml:
- 设置
active: <chosen-filename>.yaml。 - 保留标头注释块原样不动——只修改
active:行。 - 如果文件不存在(如果用户在未执行引导步骤的情况下手动设置了
target-platform/,则可能会缺少该文件),请从../../references/active_target_template.yaml创建该文件,然后设置active:。
确认
打印摘要:之前的活动值、新的活动值、所选配置文件的
reference_devkit.name(如果存在,也包括 custom_carrier.name),并提醒用户下游技能(jetson-customize-clocks、jetson-customize-nvpmodel、jetson-customize-fan、jetson-optimize-memory)现在将指向此目标。
如果本次运行由下游技能触发,请告知用户重新提交原始请求;不要静默地重新触发该技能。
前提条件
target-platform/存在,且至少包含一个*.yaml配置文件 (不包括active_target.yml)。target-platform/active_target.yml已存在,或模板../../references/active_target_template.yaml可用,以便此技能重新创建指针。
限制
- 仅编辑
active_target.yml中的active:行;绝不写入 配置文件 YAML。 - 如果不存在配置文件 YAML,则拒绝操作,并引导用户改用
jetson-init-target。 - 除简单的子字符串匹配外,不解析模糊的产品名称; 对有歧义的选择会再次提示用户。
故障排查
- 拒绝操作并提示“no profiles found” — 目录中除指针文件外没有
*.yaml;请先运行/jetson-init-target。 - 指针被改写为不存在的配置文件 — 由于写入前会验证所选文件名,这种情况不应发生;如果出现,请手动将
active_target.yml改回有效的文件名,或使用正确的 选择重新运行。 - 活动指针的值为
NA— 这是合法的“未选择”状态;任选一个列出的配置文件,指针就会被设置。
注意事项
- 此处不创建配置。 如果用户指定的目标对应的配置文件 YAML 不在磁盘上,则拒绝操作并引导用户使用
jetson-init-target。不要悄悄转而创建配置。 - 不要将
active_target.yml编辑为指向不存在的配置文件。 写入前,先确认所选文件名存在于target-platform/中。 - 编辑时,保留
active_target.yml的注释块 — 只能更改active:行。 - 从配置文件列表中排除
active_target.yml。 它虽位于同一目录中,但它是指针文件,不是配置文件。 active: NA是合法的“未选择”状态。 将其视为全新的指针 — 不要拒绝操作,只需显示列表并让用户选择。- 单个配置文件的快捷处理。 即使只有一个配置文件,也不要跳过用户确认 — 更改指针前仍需确认。
参考资料
../../context/target-platform-contract.md— 此技能写入所遵循的契约。../../references/active_target_template.yaml— 活动目标指针的架构模板(文件缺失时用于重新创建)。../jetson-init-target/SKILL.md— 相关技能:创建新的配置文件 YAML。