/jetson-init-source
Set up the BSP source workspace: Linux_for_Tegra overlay tracker, bsp_sources, Crosstool-NG toolchain. Use after jetson-init-image; not for fetching inputs.
$ npx -y skills add NVIDIA/skills --skill jetson-init-source --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/jetson-init-source
Context preview
The summary Claude sees to decide when to auto-load this skill.
Set up the BSP source workspace: Linux_for_Tegra overlay tracker, bsp_sources, Crosstool-NG toolchain. Use after jetson-init-image; not for fetching inputs.
SKILL.md
jetson-init-source.SKILL.mdname: jetson-init-source
description: >-
Set up the BSP source workspace: Linux_for_Tegra overlay tracker,
bsp_sources, Crosstool-NG toolchain. Use after jetson-init-image;
not for fetching inputs.
version: 0.0.1
license: "Apache-2.0"
metadata:
data-classification: public
author: "Jetson Team"
tags:
- bsp
- workspace
- kernel
- bootstrap
domain: metaInitialize BSP Customization Workspace
Overview
This skill bootstraps the source-side workspace that customize-* / build skills depend on: the `Linux_for_Tegra` overlay tracker (git repo for pristine + customization commits), the `bsp_sources/` mono-tree (kernel, OOT, nvgpu, display, hwpm, hardware DTs), and a working NVIDIA Crosstool-NG cross-compile prefix. It owns only the `source:` block in the active profile and the on-disk source workspace under `<source.root_path>` (default: `<workspace>/Source`).
Responsibilities:
1. Optionally record a non-default `source.root_path`. 2. Create or mount the `Linux_for_Tegra` overlay tracker. 3. Materialize `bsp_sources` using the precedence in the "Materialize the BSP-sources baseline" step. 4. Resolve and record `source.toolchain`. 5. Clone extra user-defined repos from `source.repos:`.
When to invoke
- The user asks to bootstrap, init, or sync the BSP customization
workspace.
- A downstream customization skill refused with "no workspace
tracker at `<source.root_path>/Linux_for_Tegra/`".
- After `jetson-init-image` (Setup's next step on a fresh target).
Procedure
Quick-start prefill mapping
Follow the shared [`quick_start_prefill` contract](../../context/bsp-customization-workflow.md#quick_start_prefill-contract). This skill has source-specific mappings:
- `quick_start_prefill.source.public_sources_archive` maps to the
Branch-A archive candidate.
- `quick_start_prefill.source.repos` maps to proposed `source.repos:`
entries; validate reserved keys and `url:` / `archive:` mutual exclusion before writing.
- `quick_start_prefill.source.toolchain` may be a cross-compile prefix,
a `gcc` path, a containing `bin/` directory, an `x-tools.tbz2` archive path, or `skip`.
This skill remains the only owner of `source.root_path`, `source.repos:`, and `source.toolchain` profile writes.
Resolve the active target + paths
Resolve the active profile + workspace defaults per the contract in [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md).
- **Refuse** if `<bsp_image.root_path>` does not contain
`Linux_for_Tegra/` (BSP not extracted — route to `/jetson-init-image`).
- If the profile has `source.root_path:`, use it. Otherwise
`<source.root_path>` defaults to `<workspace>/Source`; use that default silently and do not write `source.root_path:` to the profile. Ask only for an explicit custom path, unrelated content at the default path, or an unwritable parent.
Read `source.repos:` (if present) into a map keyed by entry name, each carrying optional `url`, `ref`, `subdir`, `path`. Reserved keys: `Linux_for_Tegra` (overlay tracker), `bsp_sources` (kernel-source repo). Every other key is an extra user-defined repo.
(Optional) prompt for `source.root_path` override
Only when `source.root_path` is absent from the profile **and** one of the override conditions above applies:
> `source.root_path`: default = `<workspace>/Source`. Press Enter to > accept, or enter an absolute path to override.
- **On Enter** — keep the default; do not touch the profile.
- **On override path** — validate the closest existing parent is
writable; refuse and re-prompt if not. Edit `target-platform/<active>.yaml` in place to add/update `source.root_path:`. Preserve all other blocks, comments, and quoting — use a round-tripping YAML loader (e.g. `ruamel.yaml`).
Fires at most once per profile. Otherwise create `<workspace>/Source` as needed and continue without prompting.
Materialize `Linux_for_Tegra`
Mount path is canonical: `<source.root_path>/Linux_for_Tegra/`.
**Default** (no `source.repos.Linux_for_Tegra` entry):
LFT="<source.root_path>/Linux_for_Tegra"
mkdir -p "$LFT"
[ -d "$LFT/.git" ] || git -C "$LFT" init
Empty tracker. **Do not commit anything here** — pristine imports happen file-by-file when customization skills run.
**Override** (`url`, `ref`, optional `subdir`):
# Clone the user's repo to a side location, then mount the
# expected tree (subdir or repo root) at the canonical path.
CLONE="<source.root_path>/.repos/Linux_for_Tegra"
git clone <url> -b <ref> "$CLONE"
ln -s "$CLONE/<subdir or .>" "<source.root_path>/Linux_for_Tegra"
If the mount already exists with valid git state, skip; refuse if it exists with unrelated content.
Materialize the BSP-sources baseline
Three branches, dispatched **in precedence order** against the profile entry `source.repos.bsp_sources`:
| Order | Profile state | Branch | |---|---|---| | 1 | `url:` set | **C. Customer git clone** (explicit override always wins) | | 2 | `archive:` set, **OR** entry absent **AND** `<workspace>/Downloads/public_sources.tbz2` exists | **A. Local archive extraction** (default) | | 3 | Entry absent **AND** no local archive | **B. `source_sync.sh`** (fallback) |
`url:` and `archive:` are **mutually exclusive** — refuse if both are set in the same entry.
Branch A is the preferred default because it sidesteps NVIDIA git egress entirely (the most common Setup failure mode). Branch B exists for fresh workspaces with no pre-downloaded tarball. Branch C is for customer forks of the whole BSP layout.
Branch A — Local archive extraction (default)
Default branch: extract a pre-downloaded `public_sources.tbz2` into `<source.root_path>/bsp_sources/` as a single mono-repo (`git init` + pristine commit). See [`references/branch-a-extraction.md`](references/branch-a-extraction.md) for the full archive shape, path-resolution rules, and the extraction script (including the Tegra OOT Makefile force-repla
Read more
name: jetson-init-source
description: >-
Set up the BSP source workspace: Linux_for_Tegra overlay tracker,
bsp_sources, Crosstool-NG toolchain. Use after jetson-init-image;
not for fetching inputs.
version: 0.0.1
license: "Apache-2.0"
metadata:
data-classification: public
author: "Jetson Team"
tags:
- bsp
- workspace
- kernel
- bootstrap
domain: metaInitialize BSP Customization Workspace
Overview
This skill bootstraps the source-side workspace that customize-* / build skills depend on: the `Linux_for_Tegra` overlay tracker (git repo for pristine + customization commits), the `bsp_sources/` mono-tree (kernel, OOT, nvgpu, display, hwpm, hardware DTs), and a working NVIDIA Crosstool-NG cross-compile prefix. It owns only the `source:` block in the active profile and the on-disk source workspace under `<source.root_path>` (default: `<workspace>/Source`).
Responsibilities:
1. Optionally record a non-default `source.root_path`. 2. Create or mount the `Linux_for_Tegra` overlay tracker. 3. Materialize `bsp_sources` using the precedence in the "Materialize the BSP-sources baseline" step. 4. Resolve and record `source.toolchain`. 5. Clone extra user-defined repos from `source.repos:`.
When to invoke
- The user asks to bootstrap, init, or sync the BSP customization
workspace.
- A downstream customization skill refused with "no workspace
tracker at `<source.root_path>/Linux_for_Tegra/`".
- After `jetson-init-image` (Setup's next step on a fresh target).
Procedure
Quick-start prefill mapping
Follow the shared [`quick_start_prefill` contract](../../context/bsp-customization-workflow.md#quick_start_prefill-contract). This skill has source-specific mappings:
- `quick_start_prefill.source.public_sources_archive` maps to the
Branch-A archive candidate.
- `quick_start_prefill.source.repos` maps to proposed `source.repos:`
entries; validate reserved keys and `url:` / `archive:` mutual exclusion before writing.
- `quick_start_prefill.source.toolchain` may be a cross-compile prefix,
a `gcc` path, a containing `bin/` directory, an `x-tools.tbz2` archive path, or `skip`.
This skill remains the only owner of `source.root_path`, `source.repos:`, and `source.toolchain` profile writes.
Resolve the active target + paths
Resolve the active profile + workspace defaults per the contract in [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md).
- **Refuse** if `<bsp_image.root_path>` does not contain
`Linux_for_Tegra/` (BSP not extracted — route to `/jetson-init-image`).
- If the profile has `source.root_path:`, use it. Otherwise
`<source.root_path>` defaults to `<workspace>/Source`; use that default silently and do not write `source.root_path:` to the profile. Ask only for an explicit custom path, unrelated content at the default path, or an unwritable parent.
Read `source.repos:` (if present) into a map keyed by entry name, each carrying optional `url`, `ref`, `subdir`, `path`. Reserved keys: `Linux_for_Tegra` (overlay tracker), `bsp_sources` (kernel-source repo). Every other key is an extra user-defined repo.
(Optional) prompt for `source.root_path` override
Only when `source.root_path` is absent from the profile **and** one of the override conditions above applies:
> `source.root_path`: default = `<workspace>/Source`. Press Enter to > accept, or enter an absolute path to override.
- **On Enter** — keep the default; do not touch the profile.
- **On override path** — validate the closest existing parent is
writable; refuse and re-prompt if not. Edit `target-platform/<active>.yaml` in place to add/update `source.root_path:`. Preserve all other blocks, comments, and quoting — use a round-tripping YAML loader (e.g. `ruamel.yaml`).
Fires at most once per profile. Otherwise create `<workspace>/Source` as needed and continue without prompting.
Materialize `Linux_for_Tegra`
Mount path is canonical: `<source.root_path>/Linux_for_Tegra/`.
**Default** (no `source.repos.Linux_for_Tegra` entry):
LFT="<source.root_path>/Linux_for_Tegra" mkdir -p "$LFT" [ -d "$LFT/.git" ] || git -C "$LFT" init
Empty tracker. **Do not commit anything here** — pristine imports happen file-by-file when customization skills run.
**Override** (`url`, `ref`, optional `subdir`):
# Clone the user's repo to a side location, then mount the # expected tree (subdir or repo root) at the canonical path. CLONE="<source.root_path>/.repos/Linux_for_Tegra" git clone <url> -b <ref> "$CLONE" ln -s "$CLONE/<subdir or .>" "<source.root_path>/Linux_for_Tegra"
If the mount already exists with valid git state, skip; refuse if it exists with unrelated content.
Materialize the BSP-sources baseline
Three branches, dispatched **in precedence order** against the profile entry `source.repos.bsp_sources`:
| Order | Profile state | Branch | |---|---|---| | 1 | `url:` set | **C. Customer git clone** (explicit override always wins) | | 2 | `archive:` set, **OR** entry absent **AND** `<workspace>/Downloads/public_sources.tbz2` exists | **A. Local archive extraction** (default) | | 3 | Entry absent **AND** no local archive | **B. `source_sync.sh`** (fallback) |
`url:` and `archive:` are **mutually exclusive** — refuse if both are set in the same entry.
Branch A is the preferred default because it sidesteps NVIDIA git egress entirely (the most common Setup failure mode). Branch B exists for fresh workspaces with no pre-downloaded tarball. Branch C is for customer forks of the whole BSP layout.
Branch A — Local archive extraction (default)
Default branch: extract a pre-downloaded `public_sources.tbz2` into `<source.root_path>/bsp_sources/` as a single mono-repo (`git init` + pristine commit). See [`references/branch-a-extraction.md`](references/branch-a-extraction.md) for the full archive shape, path-resolution rules, and the extraction script (including the Tegra OOT Makefile force-repla
Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.
Other skills on nvidia-skills.
- /nvidia-skill-finder
Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA products, hardware, software, SDKs, GPUs, Jetson/JetPack/L4T/BSP/SDK Manager/driver/flashing/setup, CUDA, NIM, NeMo, Omniverse/OpenUSD/SimReady,
Open skill - /accelerated-computing-cudf
Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
Open skill - /aiq-deploy
Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.
Open skill - /aiq-research
Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.
Open skill - /amc-run-sample-calibration
Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.
Open skill - /amc-run-video-calibration
Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP/live streams, use amc-run-rtsp-calibration instead.
Open skill

