mcpField
J
jetson-set-target

jetson-set-target

github.com/nvidia开发3.8k1.1k 次安装今天更新
代码仓库

关于 jetson-set-target

jetson-set-target 用于在已有 Jetson 目标配置文件之间切换活动目标,只更新 active_target.yml,不创建配置文件。它会列出可用配置并在确认选择后更改指针。

主要功能

  1. 01列出已有目标配置
  2. 02按名称或文件名选择目标
  3. 03保留指针文件注释
  4. 04验证配置文件存在后更新活动指针
  5. 05跳过无法解析的配置并继续列出

适用场景

  1. 01在多个 Jetson 目标间切换
  2. 02为后续定制技能指定活动目标
  3. 03恢复指向有效配置文件的活动指针

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill jetson-set-target

安装后在 Claude Code 中输入/jetson-set-target确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
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。

流程

检查配置文件目录
  1. 读取 target-platform/active_target.yml(如果文件不存在,则在本技能中将其视为 active: NA——如有需要,将在“更新活动指针”步骤中创建该文件,并保留模板标头)。
  2. 列出 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 是合法的“未选择”状态。 将其视为全新的指针 — 不要拒绝操作,只需显示列表并让用户选择。
  • 单个配置文件的快捷处理。 即使只有一个配置文件,也不要跳过用户确认 — 更改指针前仍需确认。

参考资料

评论

支持 Markdown