jetson-set-target

Par nvidia · skills

Bascule le pointeur de plateforme cible Jetson active vers un profil YAML existant. À utiliser avant customize/build/flash pour changer de cible ; ne sert pas à créer des profils — utilisez plutôt jetson-init-target.

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

Définir la plateforme cible

Vue d'ensemble

Cette skill est le côté switcher du contrat de plateforme cible dans ../../context/target-platform-contract.md. Elle modifie uniquement target-platform/active_target.yml ; elle ne crée jamais de nouveau profil YAML. Pour créer un nouveau profil, utilisez la skill sœur jetson-init-target.

Sortie unique : target-platform/active_target.yml mis à jour pour pointer vers le profil existant choisi par l'utilisateur.

Quand invoquer

  • L'utilisateur demande de basculer / changer / activer une plateforme cible différente parmi les profils qui existent déjà.
  • Une skill en aval a refusé avec « no active target » et target-platform/ contient déjà un ou plusieurs profils YAML.
  • L'utilisateur nomme une cible par nom de fichier ou produit, et ce profil YAML existe déjà sur disque.

Si target-platform/ est absent, vide, ou ne contient que active_target.yml, arrêtez et dites à l'utilisateur d'exécuter d'abord jetson-init-target.

Procédure

Examiner le répertoire des profils

  1. Lisez target-platform/active_target.yml (traitez un fichier manquant comme active: NA pour les besoins de cette skill — le fichier sera créé à l'étape « Mettre à jour le pointeur actif » si nécessaire, en préservant l'en-tête du modèle).
  2. Listez target-platform/*.yaml, en excluant active_target.yml lui-même.
Situation Action
Aucun profil YAML n'existe Refusez. Dites à l'utilisateur d'exécuter jetson-init-target pour en créer un.
Exactement un profil, déjà actif Dites à l'utilisateur qu'il est déjà actif ; aucun changement nécessaire. Arrêtez.
Exactement un profil, pas actif Confirmez avec l'utilisateur, puis passez à l'étape « Mettre à jour le pointeur actif » avec ce profil sélectionné.
Plusieurs profils Passez à l'étape « Afficher la liste ».

Afficher la liste

Affichez les profils en ordre alphabétique, numérotés. Marquez la sélection active actuelle avec (active) pour que l'utilisateur sache d'où il bascule. Pour chaque profil, analysez son YAML et affichez un résumé d'une ligne pour que l'utilisateur puisse l'identifier sans ouvrir les fichiers : le reference_devkit.name (ou custom_carrier.name s'il est présent) plus le flash_config.

Forme d'exemple :

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

Si un profil YAML n'analyse pas correctement ou que les champs attendus manquent, affichez le nom de fichier seul avec un marqueur (unparseable — fix or remove) et passez au suivant ; ne refusez pas la skill entière à cause d'un fichier défectueux.

Inviter à sélectionner

Invite :

Choisissez un numéro, le nom de fichier brut, le nom du produit (correspondance de sous-chaîne), ou cancel.

Résolvez en un seul nom de fichier de profil. Si l'utilisateur choisit le profil actuellement actif, dites-le-lui et arrêtez sans réécrire le pointeur. Si c'est ambigu, listez les candidats et demandez à nouveau.

Mettre à jour le pointeur actif

Modifiez target-platform/active_target.yml :

  • Définissez active: <chosen-filename>.yaml.
  • Préservez le bloc de commentaires d'en-tête verbatim — modifiez uniquement la ligne active:.
  • Si le fichier n'existe pas (il peut être absent si l'utilisateur a configuré manuellement target-platform/ sans l'étape bootstrap), créez-le à partir de ../../references/active_target_template.yaml puis définissez active:.

Confirmer

Affichez un résumé : la valeur active précédente, la nouvelle valeur active, le reference_devkit.name du profil choisi (et custom_carrier.name s'il est présent), et un rappel que les skills en aval (jetson-customize-clocks, jetson-customize-nvpmodel, jetson-customize-fan, jetson-optimize-memory) résoudront maintenant à cette cible.

Si une skill en aval a déclenché cette exécution, dites à l'utilisateur de rééditer sa demande originale ; ne la retriggerez pas silencieusement.

Prérequis

  • target-platform/ existe et contient au moins un profil *.yaml (en excluant active_target.yml).
  • target-platform/active_target.yml est présent, ou le modèle à ../../references/active_target_template.yaml est disponible pour que cette skill puisse recréer le pointeur.

Limitations

  • Modifie uniquement la ligne active: dans active_target.yml ; n'écrit jamais les profils YAML.
  • Refuse quand aucun profil YAML n'existe — achemine l'utilisateur vers jetson-init-target à la place.
  • Ne résout pas les noms de produits flous au-delà d'une simple correspondance de sous-chaîne ; les sélections ambiguës sont re-demandées.

Dépannage

  • Refus « no profiles found » — le répertoire n'a aucun *.yaml autre que le pointeur ; exécutez d'abord /jetson-init-target.
  • Pointeur réécrit vers un profil manquant — ne devrait pas se produire car le nom de fichier choisi est vérifié avant d'écrire ; s'il apparaît, modifiez manuellement active_target.yml en revenant à un nom de fichier valide ou réexécutez avec la bonne sélection.
  • Le pointeur actif lit NA — état « no selection » légitime ; choisissez n'importe quel profil listé et le pointeur sera défini.

Pièges

  • Pas d'authoring ici. Si l'utilisateur nomme une cible dont le profil YAML n'existe pas sur disque, refusez et achemin-ez-le vers jetson-init-target. Ne tombez pas silencieusement en authoring.
  • Ne modifiez pas active_target.yml pour pointer vers un profil manquant. Vérifiez que le nom de fichier choisi existe dans target-platform/ avant d'écrire.
  • Préservez le bloc de commentaires active_target.yml lors de la modification — seule la ligne active: doit changer.
  • Excluez active_target.yml de la liste des profils. Il se trouve dans le même répertoire mais c'est le pointeur, pas un profil.
  • active: NA est l'état « no selection » légitime. Traitez-le de la même façon qu'un nouveau pointeur — ne refusez pas, affichez simplement la liste et laissez l'utilisateur choisir.
  • Raccourci à un profil. Si un seul profil existe, ne passez pas la confirmation utilisateur — confirmez toujours avant de basculer le pointeur.

Références

Skills similaires