jetson-customize-clocks
Use to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash.
Skill by Jetson Team
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nvidia-jetson-customize-clocks
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/jetson-customize-clocks
What's inside
- Skill name
jetson-customize-clocks- Description
- Use to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash. Do NOT use for live tuning or nvpmodel edits.
- License
- Apache-2.0
- Metadata
- author: Jetson Team · domain: clocks · data-classification: public
- Instructions
- 268 lines in SKILL.md · view on GitHub
Files (9)
- BENCHMARK.md
- SKILL.md
- evals.json · evals/
- bpmp-dtb-clock-edits.md · references/
- clock-control-model.md · references/
- emc-dvfs-disable.md · references/
- nvpower-sh-edits.md · references/
- skill-card.md
- skill.oms.sig
SKILL.md (first lines)
# Customize Clocks ## Purpose Customize CPU, GPU, and EMC clock behavior on a Jetson target by editing files under `Linux_for_Tegra/` before flashing the image. Two layers are in scope: - The **BPMP DTB** at `Linux_for_Tegra/bootloader/<BPFDTB_FILE>` — per-clock `max-rate-custom` ceilings, plus the EMC DVFS gate (bwmgr + cactmon on all SoCs; osp-controller on T26x only). - **nvpower.sh** at `Linux_for_Tegra/rootfs/etc/systemd/nvpower.sh` — cpufreq / devfreq governors and (optionally) per-device min / max / static rates written to sysfs at boot. Common triggers: "lock CPU/GPU/EMC frequency", "pin GPU to Fmax", "pin EMC to MAXN", "disable/enable EMC DVFS", "disable/enable CPU DVFS", "set CPU/GPU max rate", "change cpufreq governor". Out of scope: runtime clock tuning on a live target (no flash step), nvpmodel power-mode edits (use the sibling skill `/jetson-customize-nvpmodel`), and silicon-ceiling overrides (`max-rate-maxn` is read-only). ## Prerequisites Resolve the active profile per [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md). Refuse and route in these cases: | Condition | Refuse with | |---|---| | No active profile, or `active: NA` | Route to `/jetson-set-target` or `/jetson-init-target`. | | Profile lacks `bsp_image:` block | Route to `/jetson-init-image`. | | `<bsp_image.root_path>/Linux_for_Tegra/` missing | Route to `/jetson-init-image`. | | `<source.root_path>/Linux_for_Tegra/` missing or not a git repo | Route to `/jetson-init-source`. | Resolve paths: - `<bsp_image.root_path>` from `bsp_image.root_path:` if present, else `<workspace>/Image`. - `<source.root_path>` from `source.root_path:` if present, else `<workspace>/Source`. `<bsp_image.root_path>` is **read-only** for this skill; every write (Operation 1's BPMP DTB and Operation 2's `nvpower.sh`) lands under `<source.root_path>` (the overlay tracker). This is the workflow invariant in [`../../context/bsp-customization-workflow.md#workflow-invariants`](../../context/bsp-customization-workflow.md#workflow-invariants) — hand-editing upstream silently destroys the diff trail and makes `/jetson-promote-image` a noop. ## Instructions 1. Resolve the prerequisites above (active profile, BSP image extracted, source overlay tracker initialized). 2. Pick the operation from the table below. 3. Follow the linked procedure section — Operation 1 (BPMP DTB), Operation 2 (`nvpower.sh`), or the MAXN recipe for both. 4. Commit the edit inside the overlay tracker per each Operation's commit convention. 5. Deploy with `/jetson-promote-image` → `/jetson-flash-image`. The new BPMP DTB and `nvpower.sh` take effect on the next boot. ### Supported operations | Operation | Where the edit lives | Procedure section | |---|---|---| | Lock a CPU / GPU clock to a specific rate | BPMP DTB `max-rate-custom` on the clock node + `nvpower.sh` governor `performance` | "Content edit: `max-rate-custom`" + "Pick the edit" | | Lock EMC at its init rate (disable EMC DVFS) | BPMP DTB: `bwmgr.enabled = 0`, `cactmon.enabled = 0`, plus `/delete-node/ osp-controller` on T26x only | "Content edit: EMC DVFS disable / enable" | | Re-enable EMC DVFS | BPMP DTB: `bwmgr.enabled = 1`, `cactmon.enabled = 1`, restore `osp-controller` on T26x | "Content edit: EMC DVFS disable / enable" | | Pin everything to MAXN for stress runs | Combine the above + nvpmodel MAXN as boot default | see Recipe | | Lower a clock's hard ceiling without locking | BPMP DTB `max-rate-custom` only | "Content edit: `max-rate-custom`" | | Bound a device's rate without pinning | `nvpower.sh` min/max via sysfs | "Pick the edit" | ## Operation 1 — BPMP DTB edits Follow the BPMP-DTB customization protocol in [`../../references/bsp-customization-bpmp-dtb.md`](../../references/bsp-customization-bpmp-dtb.md). The protocol owns the mechanics — pristine import on first touch, `dtc` decompile, recompile, sanity-check, commit. This skill supplies only the **clock-specific content** (which nodes and properties to edit during the protocol's "Edit the DTS" step). The edited `.dtb` lands in the `<source.root_path>/Linux_for_Tegra/` overlay tracker. `/jetson-promote-image`'s channel A walks the tracker and copies the file into `bsp_image`. **Do not edit `<bsp_image.root_path>/Linux_for_Tegra/bootloader/<bpmp-dtb>` directly** — that's the promote output, not an input. ### Resolve the SKU-correct BPMP DTB Per the protocol's "Resolving the active BPMP DTB" section, read `BPFDTB_FILE` from the active flash conf. For the common Thor / single-SKU conf shapes this is the static `BPFDTB_FILE=...` line in the per-board `.conf` and the value is authoritative as-is. For **SKU-multiplexed conf shapes** (Orin AGX devkit conf chain that selects a different BPMP DTB per `board_sku`/`board_FAB` via `update_flash_args_common` — see [`../../context/bsp-customization-software-layers.md#per-board-conf-dispatch--update_flash_args_common`](../../context/bsp-customization-software-layers.md#per-board-conf-dispatch--update_flash_args_common)), walk the dispatch chain with `board_sku=<module.sku>` and `board_FAB=<module.revision or empty>` from the active profile, and read `BPFDTB_FILE` from the dispatch output — **not** from the static line of the per-board `.conf`. Static and dispatched values match for non-multiplexed confs; the dispatch is mandatory only when the conf chain conditionally overrides `BPFDTB_FILE`. ### List effective max rates (inspection) Inspect both layers of the runtime ceiling — see [`references/clock-control-model.md#effective-runtime-ceiling`](references/clock-control-model.md#effective-runtime-ceiling) — before deciding on a `max-rate-custom` value. Inspection cookbook (BPMP-side decompile + grep; nvpmodel-side awk over the boot default mode) is in [`references/bpmp-dtb-clock-edits.md#inspection-cookbook`](references/bpmp-dtb-clock-edits.md#inspection-cookbook). For the nvpmodel layer see [`/jetson-customize-nvpmodel`](../jetson-customize-nvpmodel/SKILL.md). This step does not mutate state — it's a precondition for sizing the edit in the "Content edit: `max-rate-custom` on a named clock node" step. ### Content edit: `max-rate-custom` on a named clock node During the "Edit the DTS" step of the protocol, modify the property inside the named clock node — never `lateinit`. `max-rate-custom` must be strictly below the clock's hard cap (`max-rate-maxn` if defined, otherwise the live `max_rate` from a running target of the same chip / SKU). DTS edit form, semantics, and the nvpmodel ↔ BPMP clock-node mapping live in [`references/bpmp-dtb-clock-edits.md`](references/bpmp-dtb-clock-edits.md). Then hand control back to the protocol — its "Recompile", "Sanity-check the recompiled blob", "Stage in the overlay tracker", and "Cleanup" steps cover the rest. Commit-message convention per the protocol: `<BPMP_BASENAME>: jetson-customize-clocks — <clock-node> max-rate-custom = <value>`.
From NVIDIA/skills, Apache-2.0.
More from NVIDIA/skills
- 0.846score
nemo-fabric-integrate
NVIDIA Corporation and Affiliates
Use this skill when integrating NVIDIA NeMo Fabric into a consumer application, service, evaluation harness, or platform through the typed Python SDK —…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-pipeline
Vinit Bansal <vinitkumarb@nvidia.com>
Use when planning, executing, and independently validating Jetson Video Codec SDK or PyNvVideoCodec encode/decode, transcode, segmentation, container decode…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-convert-pytorch
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Convert existing plain or manual PyTorch training code into an NVFLARE federated job using Client API model exchange, local validation, and job export; use…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nemo-relay-get-started
NVIDIA Corporation and Affiliates
Use this skill when first-time NeMo Relay users want help selecting and following an appropriate quick-start guide or verifying their first working integration.
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-recipe
Vinit Bansal <vinitkumarb@nvidia.com>
Use when turning a Jetson encoder use case into one surface-neutral recipe with native Video Codec SDK and PyNvVideoCodec projections.
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvidia-broadcast
NVIDIA Broadcast Team <broadcast-skills-dev@nvidia.com>
Use when controlling NVIDIA Broadcast through MCP to apply effects, process local media, select devices, or change camera resolution, or when Broadcast is…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-setup
Vinit Bansal <vinitkumarb@nvidia.com>
Use when installing, repairing, reusing, inspecting, or verifying readiness of the native NVIDIA Video Codec SDK or PyNvVideoCodec on Jetson, including the…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-diagnose-job
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Use when the user asks why a reported NVFLARE job failure signal occurred: the job failed, stalled, timed out, lost clients, ended with EXECUTION_EXCEPTION…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-convert-lightning
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Convert existing PyTorch Lightning training code into an NVFLARE federated job using the Lightning Client API patch, local validation, and job export; use…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nemo-relay-install
NVIDIA Corporation and Affiliates
Use this skill when choosing or running NeMo Relay installation for an agent runtime, application language, framework integration, or plugin bundle, or…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-fed-stats
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Compute federated statistics over tabular data (count, sum, mean, stddev, var, histogram, quantile, noise-protected min/max) and image data (count…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-capability
Vinit Bansal <vinitkumarb@nvidia.com>
Use when Jetson codec, profile, chroma, bit-depth, dimension, engine-count, or operational support must be reconciled from live APIs, authenticated NVIDIA…
SkillAFreshness: A★ 3.7KClaude Code +9
Signals
- Stars
- 3,718
- Forks
- 457
- Open issues
- 8
- Last commit (this folder)
- Jun 22, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/NVIDIA/skills
- Website
- docs.nvidia.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Jetson Team
- 0.742score
jetson-build-source
Jetson Team
Use when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bsp_sources/.
SkillCFreshness: C★ 3.7KClaude Code +9 - 0.739score
jetson-flash-image
Jetson Team
Use to flash a promoted BSP image to a Jetson DUT in RCM mode via flash.sh or l4t_initrd_flash.sh.
SkillCFreshness: C★ 3.7KClaude Code +9 - 0.739score
jetson-customize-camera
Jetson Team
Enable MIPI/GMSL camera sensors on a Jetson Thor or Orin custom carrier by rendering a kernel-DT overlay from the in-tree sensor DTSI.
SkillCFreshness: C★ 3.7KClaude Code +9 - 0.739score
jetson-customize-pcie
Jetson Team
Per-controller PCIe enable / disable / lanes / link-speed for a Jetson Thor or Orin custom carrier via ODMDATA + kernel-DT overlay.
SkillCFreshness: C★ 3.7KClaude Code +9 - 0.739score
jetson-customize-pinmux
Jetson Team
Per-pin SFIO / direction / initial-state configurator for a Jetson Orin or Thor custom carrier from the pinmux XLSM.
SkillCFreshness: C★ 3.7KClaude Code +9 - 0.739score
jetson-customize-uphy
Jetson Team
Configure Jetson UPHY lane allocation (uphy0/uphy1-config) on Orin/Thor custom carriers.
SkillCFreshness: C★ 3.7KClaude Code +9
Cite this page
jetson-customize-clocks skill. Agent Mart. https://agentmart.dev/skills/nvidia-jetson-customize-clocks (last updated 2026-10-24)