jetson-customize-clocks

Configure Jetson CPU, GPU, and EMC clock ceilings by editing BPMP DTB and nvpower.sh pre-flash.

2|Updated Aug 20, 2026
One-click install
npx skills add https://github.com/atomicrajat/industry_safety_monitoring_system --skill jetson-customize-clocks-atomicrajat
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jetson-customize-clocks
Source: https://github.com/atomicrajat/industry_safety_monitoring_system/tree/main/.claude/skills/jetson-customize-clocks
Command: npx skills add https://github.com/atomicrajat/industry_safety_monitoring_system --skill jetson-customize-clocks-atomicrajat

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Customizing clock behavior on NVIDIA Jetson targets requires editing low-level firmware files (BPMP DTB) and boot scripts (nvpower.sh) before flashing, with SoC-specific rules and multi-node edits that are easy to get wrong. This Skill guides agents through locking or capping CPU/GPU/EMC clocks, toggling EMC/CPU DVFS, and changing cpufreq governors safely within the overlay-tracker workflow. ## Core Features & Use Cases - BPMP DTB clock edits: Set max-rate-custom ceilings on named clock nodes, including the multi-node T23x GPU cap across nafll_gpusys and every nafll_gpcX partition. - EMC DVFS control: Disable or re-enable EMC DVFS with the correct SoC-conditional node set (bwmgr + cactmon on all SoCs, plus osp-controller deletion on T26x Thor only). - nvpower.sh governor edits: Change cpufreq/devfreq governors, pin devices to Fmax, or set min/max/static rates via the boot-time script. - Use Case: Pin an Orin AGX devkit to MAXN for an overnight stress run — remove clock ceilings, disable EMC DVFS, set performance governors, and deploy via the promote/flash chain. ## Quick Start Ask the agent to lock the GPU clock to a specific rate or disable EMC DVFS on your Jetson target using the jetson-customize-clocks skill before flashing the image.

Frequently Asked Questions about jetson-customize-clocks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I lock CPU or GPU clocks to a fixed rate on Jetson?

Set `max-rate-custom` on the clock's node in the BPMP DTB, strictly below `max-rate-maxn`, and set the cpufreq governor to performance in nvpower.sh. The edits land in the source overlay tracker and take effect after promote-image and flash-image.

How to disable EMC DVFS on Jetson Orin or Thor?

Set `bwmgr.enabled = <0x00>` and `cactmon.enabled = <0x00>` in the BPMP DTB on all SoCs. On T26x (Thor) also delete the `osp-controller` node; T23x (Orin) has no such node, so skip that step.

Why does my Jetson GPU still ramp to max-rate-maxn after setting max-rate-custom?

On T23x the GPU clock is split across `nafll_gpusys` and every `nafll_gpcX` partition; the cap binds only when applied to all of them. Also check the nvpmodel layer, since the runtime ceiling is the minimum of the BPMP cap and the active power-mode cap.

Can this skill tune clocks on a live running Jetson target?

No. All edits are image-build-time only, landing under the source overlay tracker and reaching the device via the promote-image then flash-image chain. Live runtime tuning and nvpmodel power-mode edits are out of scope.

What happens to nvpower.sh edits after an apt upgrade?

nvpower.sh is owned by the nvidia-l4t-init package, so upgrades overwrite in-place edits. For long-lived setups, use a systemd drop-in or a sibling helper file referenced by nvpower.sh instead.