jetson-print-bsp-info

Par nvidia · skills

Utilisez cette compétence lorsque vous avez besoin d'afficher les informations BSP Jetson (version L4T, configurations de carte, état du rootfs) depuis une racine Linux_for_Tegra sur le PC hôte. Il s'agit d'un exemple de skill.

npx skills add https://github.com/nvidia/skills --skill jetson-print-bsp-info

jetson-print-bsp-info

Affiche un résumé concis d'un arborescence Jetson Linux_for_Tegra (BSP) sur le PC hôte.

Cette skill est destinée à servir d'exemple de référence pour le repo jetson-bsp-skills et la CI skills au niveau NVIDIA. Elle effectue une inspection en lecture seule — pas de flashage, pas de modifications de rootfs.

Purpose

Capturer un instantané de base d'une arborescence BSP Linux_for_Tegra (release, configurations board, état du rootfs) avant le flashage, afin de détecter tôt les problèmes comme « mauvaise version L4T » ou « rootfs jamais peuplé ».

When to use

  • Un utilisateur a décompressé une tarball BSP Jetson et souhaite confirmer la version L4T, les boards supportées et l'état du rootfs avant de flasher.
  • Vous avez besoin d'une vérification rapide qu'un répertoire Linux_for_Tegra/ semble valide (scripts et fichiers de configuration attendus présents).

Prerequisites

  • Exécution sur le PC hôte (Linux), pas sur la cible Jetson.
  • Un répertoire Linux_for_Tegra/ extrait d'une tarball BSP Jetson.
  • CLIs standard disponibles : ls, head, cat, paste, sed.

Inputs

  • L4T_ROOT (optionnel) : chemin absolu vers le répertoire Linux_for_Tegra/. Si non défini, utiliser le répertoire de travail courant.

Instructions

Exécuter chaque étape dans l'ordre et imprimer les valeurs capturées dans le rapport affiché sous Output format.

  1. Résoudre L4T_ROOT et valider que le répertoire est une racine Linux_for_Tegra — quitter tôt sinon. flash.sh et nv_tegra/ sont les deux artefacts d'ancrage que chaque BSP fournit :
    L4T_ROOT="${L4T_ROOT:-$PWD}"
    if [ ! -f "$L4T_ROOT/flash.sh" ] || [ ! -d "$L4T_ROOT/nv_tegra" ]; then
      echo "Not a Linux_for_Tegra root: '$L4T_ROOT' (missing flash.sh or nv_tegra/)"
      exit 1
    fi
    echo "$L4T_ROOT"
  2. Extraire la ligne d'en-tête de la release L4T. L'emplacement canonique côté hôte est nv_tegra/nv_tegra_release ; le même fichier est copié dans le rootfs par apply_binaries.sh. Seule la première ligne est utile — le reste est une longue liste de SHAs de bibliothèques :
    head -1 "$L4T_ROOT/nv_tegra/nv_tegra_release" 2>/dev/null \
      || head -1 "$L4T_ROOT/rootfs/etc/nv_tegra_release" 2>/dev/null \
      || echo "L4T release info not found"
  3. Lister les fichiers de configuration board supportés et les joindre sur une ligne séparée par des virgules :
    (cd "$L4T_ROOT" && ls *.conf 2>/dev/null) | paste -sd, -
  4. Vérifier si le rootfs a été peuplé. Un rootfs/ vide signifie que apply_binaries.sh n'a pas encore été exécuté :
    if [ -f "$L4T_ROOT/rootfs/etc/passwd" ]; then
      echo "populated"
    else
      echo "empty"
    fi

Output format

Afficher un court rapport avec ces sections, une ligne chacune si possible :

L4T root:        <path>
L4T release:     <release header line>
Board configs:   <comma-separated list>
Rootfs:          populated | empty

Examples

Exemple de sortie sur un BSP Orin AGX (L4T R36) :

L4T root:        $HOME/Linux_for_Tegra
L4T release:     # R36 (release), REVISION: 3.0
Board configs:   jetson-agx-orin-devkit.conf,jetson-orin-nano-devkit.conf
Rootfs:          populated

Exemple de sortie sur un BSP fraîchement décompressé où apply_binaries.sh n'a pas encore été exécuté :

L4T root:        /tmp/Linux_for_Tegra
L4T release:     # R39 (release), REVISION: 0.0
Board configs:   jetson-agx-thor-devkit.conf
Rootfs:          empty

Error handling

Chaque commande se replie sur une chaîne clairement étiquetée "... not found" si le fichier sous-jacent est manquant — la skill ne génère jamais d'erreur en milieu de rapport. Si L4T_ROOT ne contient pas flash.sh et nv_tegra/, quitter tôt avec un message clair « not a Linux_for_Tegra root » plutôt que d'afficher des informations trompeuses.

Limitations

  • Inspection en lecture seule uniquement — ne valide pas les signatures, images kernel ou device-tree overlays.
  • Vérifie uniquement la présence de rootfs/etc/passwd comme proxy de rootfs peuplé ; ne détectera pas un rootfs partiellement peuplé.
  • Énumère tous les fichiers de configuration board *.conf dans L4T_ROOT/ ; ne tente pas de déduire lequel l'utilisateur a l'intention de flasher.

Troubleshooting

  • Error: Not a Linux_for_Tegra root: '...' (missing flash.sh or nv_tegra/) Cause: L4T_ROOT pointe vers un répertoire parent, un rootfs extrait, ou un chemin sans rapport. Solution: Pointer L4T_ROOT vers le répertoire qui contient flash.sh (généralement Linux_for_Tegra/).

  • Error: L4T release info not found Cause: Ni nv_tegra/nv_tegra_release ni rootfs/etc/nv_tegra_release n'existe — la tarball BSP peut être incomplète ou apply_binaries.sh n'a jamais été exécuté. Solution: Réextraire la tarball BSP ou exécuter apply_binaries.sh pour peupler le rootfs.

Notes

  • Ne pas modifier aucun fichier. Cette skill est en lecture seule.
  • Si plusieurs fichiers de configuration board existent, les énumérer tous — ne pas tenter de deviner lequel l'utilisateur a l'intention de flasher.

Skills similaires