npx skills add ...
npx skills add nvidia/skills --skill jetson-init-image
Extract Jetson Linux + sample-rootfs tarballs and run apply_binaries.sh for the active target, then record bsp_image in the profile. Use after jetson-init-target; not for source-tree setup.
npx skills add nvidia/skills --skill jetson-init-image
Output is only bsp_image: in the active profile: derived version
plus root_path only when overriding <workspace>/Image.
<bsp_image.root_path>/Linux_for_Tegra/.bsp_image: block yet.Resolve the active profile per
../../context/target-platform-contract.md.
Refuse if there is no active profile or reference_devkit: is missing.
<workspace> is the parent of the active profile's target-platform/
directory. <bsp_image.root_path> defaults to <workspace>/Image.
| Profile state | Action |
|---|---|
bsp_image.root_path exists | Use it without prompting. |
bsp_image: exists without root_path | Use <workspace>/Image. |
No bsp_image: block | Ask once: Enter for default, or absolute override path. |
For an override, validate that the closest existing parent is writable.
Omit root_path when the default is used.
Use the shared GPU-driver invariant from
../../context/target-platform-contract.md.
Derive the expected stack from reference_devkit.module.id and the
catalogue:
| Chip family | Module IDs | Stack | apply_binaries.sh flag |
|---|---|---|---|
| T234 / Orin | p3701, p3767 | nvgpu | none |
| T264 and later / Thor+ | p3834 | OpenRM | --openrm |
Refuse unknown module IDs. The --openrm flag is only valid on BSP
releases that ship the OpenRM stack; if the active BSP doesn't expose
the flag, omit it regardless of what the target wants.
If <bsp_image.root_path>/Linux_for_Tegra/ already exists:
Do not extract over it unless the user explicitly requested re-extraction and accepted the overwrite risk.
Derive the on-disk version from Linux_for_Tegra/nv_tegra_release.
Ask before replacing a different recorded bsp_image.version.
Verify the installed GPU stack against the platform-derived expectation when possible. Detection precedence (first probe that yields a definitive answer wins):
Linux_for_Tegra/rootfs/etc/nv_tegra_release carries an
INSTALL_TYPE= token on BSP releases that expose it (newer
lines). Read and compare directly.find Linux_for_Tegra -name nvgpu.ko: present →
nvgpu, absent → OpenRM.If the installed stack conflicts with the active target, refuse and ask the user to re-extract with the correct stack or fix the target profile. Otherwise skip extraction and update the profile.
When extraction is needed, search:
<bsp_image.root_path>/<workspace>/Prompt for absolute paths for anything missing. Required filenames:
Jetson_Linux_R<ver>_aarch64.tbz2Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2Both filenames must contain the same R<ver> token. Refuse mismatches
and record <ver> as bsp_image.version. Do not download tarballs.
Use absolute tarball paths; they may live outside
<bsp_image.root_path>.
Set GPU_STACK from the "Determine GPU stack" step above. Abort on the first failing command and
surface the failed command.
Persist the resolved BSP image metadata in the active target profile so
later skills can find the BSP without re-prompting. Preserve existing
blocks, comments, and quoted SKU values; use a round-tripping YAML
writer such as ruamel.yaml.
Rules:
root_path: refuse automatic rewrite.version.Report the image path, extracted vs reused state, GPU stack, derived
version, and profile update status. Then suggest /jetson-init-source.
Materialize Linux_for_Tegra/ on disk by extracting the right Jetson
Linux + sample-rootfs tarballs and running apply_binaries.sh with
the GPU-stack flag derived from the active target (nvgpu for T234,
OpenRM for T264+). Then commit the derived BSP version into the
profile's bsp_image: block.
../../context/target-platform-contract.md./jetson-download-bsp or hand-placed).Image/ root (or the override
bsp_image.root_path).sudo available for apply_binaries.sh.bsp_image: block; source tree, documents, and
carrier profile are owned by sibling skills.Linux_for_Tegra/ without explicit
user direction./jetson-download-bsp or
hand-stage the inputs.apply_binaries.sh exits non-zero — re-read its console output;
most failures are missing sudo, missing rootfs tarball, or wrong
GPU stack flag for the SoC generation.nv_tegra_release absent after extract — extraction stopped
early; verify tarball integrity and rerun.version disagrees with the tarball filename — the
tarball was renamed; trust the value parsed from
Linux_for_Tegra/nv_tegra_release over filenames.root_path already in profile — refuse and
ask the user to confirm before overwriting.bsp_image:
root_path: <absolute override path> # omit for <workspace>/Image
version: "<derived version>"