Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 229% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 93% | 0% |
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:
re-extraction and accepted the overwrite risk.
Linux_for_Tegra/nv_tegra_release.Ask before replacing a different recorded bsp_image.version.
expectation when possible. Detection precedence (first probe that yields a definitive answer wins):
Linux_for_Tegra/rootfs/etc/nv_tegra_release carries anINSTALL_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.
Orin is always nvgpu in current BSPs), fall back to the catalogue-derived expectation without disk probing.
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>.
bashROOT="<bsp_image.root_path>" BSP_TARBALL="<absolute path to Jetson_Linux_R<ver>_aarch64.tbz2>" ROOTFS_TARBALL="<absolute path to Tegra_Linux_Sample-Root-Filesystem_R<ver>_aarch64.tbz2>" mkdir -p "$ROOT" tar xjf "$BSP_TARBALL" -C "$ROOT" sudo tar xpjf "$ROOTFS_TARBALL" -C "$ROOT/Linux_for_Tegra/rootfs" cd "$ROOT/Linux_for_Tegra" if [ "$GPU_STACK" = "openrm" ]; then sudo ./apply_binaries.sh --openrm else sudo ./apply_binaries.sh fi
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.
yamlbsp_image: root_path: <absolute override path> # omit for <workspace>/Image version: "<derived version>"
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.
on disk (e.g. by /jetson-download-bsp or hand-placed).
Image/ root (or the overridebsp_image.root_path).
sudo available for apply_binaries.sh.bsp_image: block; source tree, documents, andcarrier profile are owned by sibling skills.
Linux_for_Tegra/ without explicituser direction.
/jetson-download-bsp orhand-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 stoppedearly; verify tarball integrity and rerun.
version disagrees with the tarball filename — thetarball was renamed; trust the value parsed from Linux_for_Tegra/nv_tegra_release over filenames.
root_path already in profile — refuse andask the user to confirm before overwriting.
../../context/target-platform-contract.md../../references/bsp-platforms-catalogue.md../../references/platform_template.yaml../jetson-init-target/SKILL.md../jetson-init-source/SKILL.md../jetson-flash-image/SKILL.mdOther measured skills in the registry, with their headline benchmark lift.