Skip to content
Development
Skill

/jetson-build-source

Use when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bsp_sources/. Triggers: build bsp, rebuild dtb, rebuild kernel.

From plugin
skills
3.8k200 skills

Claude Code

$ npx -y skills add NVIDIA/skills --skill jetson-build-source --agent claude-code

SKILL.md

jetson-build-source.SKILL.md
name: jetson-build-source
description: >-
  Use when you need to rebuild the BSP overlay — DT, OOT modules,
  or kernel — from changes under bsp_sources/. Triggers: build
  bsp, rebuild dtb, rebuild kernel.
version: 0.0.1
license: "Apache-2.0"
argument-hint: "dt | oot | kernel | full"
metadata:
  data-classification: public
  author: "Jetson Team"
  team: pts
  tags:
    - bsp
    - build
  domain: meta

Build BSP Source

Purpose

Rebuild the kernel-side artifacts (DTBs, OOT modules, in-tree modules, kernel `Image`) implied by changes under `<source.root_path>/bsp_sources/`, and write a manifest that `/jetson-promote-image` reads to stage those outputs into the BSP image. The skill never writes into `<bsp_image.root_path>` itself.

Prerequisites

  • Active target-platform profile with `bsp_image:` and

`source.toolchain:` resolved (run `/jetson-init-image` and `/jetson-init-source` first).

  • `<source.root_path>/bsp_sources/` populated with the kernel-side

checkout layout `/jetson-init-source` materializes.

  • `<bsp_image.root_path>/Linux_for_Tegra/source/kernel_src_build_env.sh`

present (extracted from `public_sources.tbz2`).

  • Host packages: `flex`, `bison`, `libssl-dev` (hard); `git`,

`build-essential`, `bc`, `zstd` (warn-only).

  • Cross-toolchain at `${source.toolchain}gcc` resolvable on disk.

Overview

This skill is the **Build** stage of the workflow — see [`../../context/bsp-customization-workflow.md`](../../context/bsp-customization-workflow.md) for where it sits in the Setup → Customize → Build → Deploy pipeline and what triggers it. The skill takes source-side customization commits, rebuilds the implied artifacts, and records which were rebuilt in a manifest. Outputs stay in-tree under `<source.root_path>/bsp_sources/`; [`jetson-promote-image`](../jetson-promote-image/SKILL.md) reads the manifest at Deploy to copy each rebuilt artifact into the matching path under `<bsp_image.root_path>/Linux_for_Tegra/`.

Overlay-only edits (`nvpmodel.conf`, `nvfancontrol.conf`, BPMP DTB) skip Build — `customize-*` stages them directly to the overlay tracker; BPMP DTB uses the `dtc` decompile → edit → recompile loop in [`../../references/bsp-customization-bpmp-dtb.md`](../../references/bsp-customization-bpmp-dtb.md).

**Custom-overlay slot ownership.** Kernel-DT customizations from every customize-* skill collect into a single composite `tegra<soc>-<carrier-id-sku>+<module-id>-xxxx-custom.dts` per active target — see [`../../references/bsp-customization-kernel-dtb.md`](../../references/bsp-customization-kernel-dtb.md) for the filename / location / append protocol. This skill is the **sole owner** of the composite's per-dir Makefile registration (`dtbo-y += <name>.dtbo`) and the carrier flash conf's `OVERLAY_DTB_FILE+=` line (the "Register composite custom overlay" step).

**Four build modes** matched to the dirty-repo profile:

| Mode | What's built | Auto-picks when | |---|---|---| | **dt** | NVIDIA DTBs only | only `hardware/nvidia/*` or `kernel-devicetree` dirty | | **oot** | OOT modules (six repos) | only OOT repos dirty | | **kernel** | Kernel `Image` + full in-tree `.ko` set + kernel-side dtbs | only `kernel/$KERNEL_SRC_DIR` dirty | | **full** | Everything above + optional install consolidation | mixed dirty set |

Mode selection: **auto** (default — invoke `/jetson-build-source` with no argument) walks the dirty-repo set; force a specific mode by passing it as the skill argument.

**Design principle: delegate to upstream.** Every build primitive already exists in `<bsp_image.root_path>/Linux_for_Tegra/source/` — the env file, top-level Makefile (`nvidia-dtbs` / `modules` / `modules_install`), kernel Makefile (`kernel` / `install`). The skill drives those primitives against `<source.root_path>/bsp_sources/` — never duplicates their logic in shell.

When to invoke

  • **Auto-chained** at the end of a Customize `customize-*` invocation

whenever Customize committed to a kernel-side source repo.

  • **Manual re-run** via `/jetson-build-source [<mode>]` when:
  • the auto-chained build was interrupted,
  • source commits arrived via `git pull` from other users,
  • the user wants to force a rebuild without a fresh edit,
  • the user wants a specific mode (e.g. install consolidation for

a manual scp deploy to a DUT).

Instructions

Resolve active target + paths + upstream env

Resolve the active profile per [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md). Refuse and route in these cases:

| Condition | Route to | |---|---| | No active profile, or `active: NA` | `/jetson-set-target` or `/jetson-init-target` | | Profile lacks `bsp_image:` | `/jetson-init-image` | | Profile lacks `source.toolchain:` | `/jetson-init-source` | | `<source.root_path>/bsp_sources/` missing or empty | `/jetson-init-source` | | `<bsp_image.root_path>/Linux_for_Tegra/source/kernel_src_build_env.sh` missing | `/jetson-init-image` (BSP not properly extracted) |

Bind:

WORKSPACE=<parent of target-platform/>
BSP_SRC=<bsp_image.root_path>/Linux_for_Tegra/source   # NVIDIA's build primitives
KS=<source.root_path>/bsp_sources                      # our kernel-side checkout
KOUT=<source.root_path>/.build/kernel-out              # DT-mode out-of-tree build dir
STAGE=<source.root_path>/.build/install-stage          # install consolidation (full mode / opt-in)
STATE=<source.root_path>/.build-state.yaml             # per-repo watermark
MANIFEST=<source.root_path>/.build-manifest.yaml       # rebuilt-artifact list for jetson-promote-image

**Source the NVIDIA build env** to inherit canonical names — never hardcode `kernel-noble`, the OOT module list, or `KERNEL_DEF_CONFIG`:

source "$BSP_SRC/kernel_src_build_env.sh"
# Now in scope: KERNEL_SRC_DIR (e.g. kernel-noble), KERNEL_DEF_CONFIG,
# OOT_SOURCE_LIST, kernel_name (e.g. noble), KERNEL_MODULAR_BUILD

Refuse if `$KS/kernel/$KERNEL_SRC_DIR/` is missing or if any name in `$OOT_SOURCE

Read more
@nvidia
Ships withskills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

3.8k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of NVIDIA/skills on GitHub, a chart by star-history.com

Other skills on skills.

nvidia-skill-finder

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…

@nvidia@nvidiaInstall Skill
accelerated-computing-cudf

accelerated-computing-…

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby,…

@nvidia@nvidiaInstall Skill
amc-run-rtsp-calibration

amc-run-rtsp-calibrati…

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or…

@nvidia@nvidiaInstall Skill
amc-run-sample-calibration

amc-run-sample-calibra…

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice.…

@nvidia@nvidiaInstall Skill
amc-run-video-calibration

amc-run-video-calibrat…

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live…

@nvidia@nvidiaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about jetson-build-source.

Which coding agents can use jetson-build-source?
jetson-build-source installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.