切换Jetson目标平台Skill jetson-set-target

该技能用于在已有的目标平台配置文件(profile YAML)之间切换Jetson的活动目标平台指针,只更新 active_target.yml 而不创建新配置,通常在 customize/build/flash 前使用,以便下游技能解析到正确的目标平台。关键词:Jetson、目标平台切换、active_target、profile配置、平台管理。

平台管理与诊断 0 次安装 0 次浏览 更新于 9/6/2026
名称 jetson-set-target
描述 >- 将活动的Jetson目标平台指针切换到一个现有的profile YAML。 在customize/build/flash之前使用以更改目标;不用于编写配置文件 — 请改用jetson-init-target。
版本 0.0.1
开源协议 “Apache-2.0” metadata: data-classification: public
作者 “Jetson Team” tags: - target-platform - configuration - meta domain: meta

设置目标平台

概述

本技能是 ../../context/target-platform-contract.md 中目标平台契约的切换器侧。它仅编辑 target-platform/active_target.yml;从不创建新的 profile YAML。要创建新的 profile,请使用同级技能 jetson-init-target

单一输出:target-platform/active_target.yml 更新为用户选择的现有 profile。

何时调用

  • 用户要求在已存在的 profiles 之间切换/更改/激活另一个目标平台。
  • 下游技能以“没有活动目标”拒绝服务 并且 target-platform/ 中已包含一个或多个 profile YAML。
  • 用户通过文件名或产品名称指定目标,且该 profile YAML 已在磁盘上。

如果 target-platform/ 不存在、为空,或仅包含 active_target.yml,则停止并告知用户先运行 jetson-init-target

操作步骤

检查 profiles 目录

  1. 读取 target-platform/active_target.yml(对于本技能,将缺失文件视为 active: NA — 如有需要,将在“更新活动指针”步骤中创建该文件,并保留模板头部)。
  2. 列出 target-platform/*.yaml排除 active_target.yml 本身。
情形 操作
不存在 profile YAML 拒绝。告诉用户运行 jetson-init-target 来创建一个。
只有一个 profile,且已激活 告诉用户它已激活;无需更改。停止。
只有一个 profile,未激活 与用户确认,然后跳转到“更新活动指针”步骤并选择该 profile。
多个 profiles 继续执行“显示列表”步骤。

显示列表

按字母顺序打印 profiles,编号。用 (active) 标记当前活动选择,以便用户知道他们要从哪个切换。对于每个 profile,解析其 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

如果某个 profile YAML 解析失败或缺少预期字段,则显示裸文件名并附上 (unparseable — fix or remove) 标记,然后跳过;不要因为一个坏文件而拒绝整个技能。

提示选择

提示:

选择一个数字、裸文件名、产品名称(子字符串匹配)或 cancel

解析为单个 profile 文件名。如果用户选择了当前活动的 profile,请告知他们并停止,不要重写指针。如果存在歧义,列出候选并再次询问。

更新活动指针

编辑 target-platform/active_target.yml

  • 设置 active: <chosen-filename>.yaml
  • 逐字保留头部注释块 — 只修改 active: 行。
  • 如果文件不存在(如果用户在没有引导步骤的情况下手动设置了 target-platform/,则可能缺失),从 ../../references/active_target_template.yaml 创建它,然后设置 active:

确认

打印摘要:先前的活动值、新的活动值、所选 profile 的 reference_devkit.name(如果存在则包括 custom_carrier.name),以及提醒:下游技能(jetson-customize-clocksjetson-customize-nvpmodeljetson-customize-fanjetson-optimize-memory)现在将解析到此目标。

如果下游技能触发了此运行,请告诉用户重新发出其原始请求;不要静默地重新触发它。

先决条件

  • target-platform/ 存在且包含至少一个 *.yaml profile(不包括 active_target.yml)。
  • target-platform/active_target.yml 存在,或者 ../../references/active_target_template.yaml 处的模板可用,以便本技能可以重新创建指针。

限制

  • 仅编辑 active_target.yml 中的 active: 行;从不写入 profile YAML。
  • 当没有 profile YAML 存在时拒绝 — 而是引导用户到 jetson-init-target
  • 不解析超出简单子字符串匹配的模糊产品名称;歧义选择会重新提示。

故障排除

  • “未找到 profiles”拒绝 — 目录中除了指针外没有 *.yaml;请先运行 /jetson-init-target
  • 指针被重写为缺失的 profile — 不应该发生,因为所选择的文件名在写入前已验证;如果出现,请手动将 active_target.yml 编辑回有效的文件名,或使用正确的选择重新运行。
  • 活动指针读取为 NA — 合法的“未选择”状态;选择列出的任何 profile,指针将被设置。

注意事项

  • 此处不进行创作。 如果用户指定的目标的 profile YAML 不在磁盘上,请拒绝并引导他们到 jetson-init-target。不要静默地进入创作流程。
  • 不要将 active_target.yml 指向缺失的 profile。 在写入之前,请验证所选择的文件名存在于 target-platform/ 中。
  • 编辑时保留 active_target.yml 的注释块 — 只应更改 active: 行。
  • 从 profile 列表中排除 active_target.yml。它位于同一目录中,但它是指针,而不是 profile。
  • active: NA 是合法的“未选择”状态。 将其与新的指针一样对待 — 不要拒绝,只需显示列表并让用户选择。
  • 单 profile 快捷方式。 如果只存在一个 profile,不要跳过用户确认 — 在翻转指针之前仍需确认。

参考