Jetson Fan Curve Customizer
Safely maintain nvfancontrol fan profiles and boot defaults in a Jetson BSP.
The skill clearly separates read-only bsp_image from the writable source overlay, requires a preview gate, commits, propagation-set synchronization, and discloses sudo, flashing, and scp/systemctl effects; it does not require explicit user confirmation at each consequential step, define backups or rollback, or demonstrate least-privilege execution, so points are deducted.
Operations, prerequisites, format constraints, and troubleshooting are detailed; however, the workflow depends on context documents and external Jetson tooling not supplied here, lacks key-path tests or executable validation, and leaves some hardware/platform diagnosis to the user, so the static score is conservative.
The audience, Orin/Thor scope, BSP-side boundary, and trigger phrases are clear, and the core function does not depend on overseas online services; input contracts, non-fit boundaries, hardware-variant handling, and Chinese-language support are limited, so points are deducted.
Frontmatter, version, license, examples, limitations, troubleshooting, benchmark material, and NVIDIA ownership are present; however, version 0.0.1 has no clear changelog or maintenance update path, the benchmark reports an author-format schema finding, and the SKILL.md and skill-card license statements are not fully consistent, so points are deducted.
The skill covers adding, removing, editing, default changes, listing, overlay handling, propagation, and deployment; nevertheless, curves require real thermal-acoustic data, hardware files and tach limits are unavailable, benchmark effectiveness is only 39%/49% and cannot be independently reproduced statically, and outputs require manual review, so points are deducted.
The SKILL.md, evaluation tasks, and benchmark provide auditable rules and limited evaluation records; there are no representative configuration fixtures, CI workflows, or key-path test suites, and the benchmark is not independently verifiable third-party execution evidence, so the static score remains below the allowed ceiling.
- Obtain explicit user confirmation before writes, commits, flashing, or live restarts, and prepare a recoverable configuration backup and rollback procedure.
- Verify the target BSP's actual FAN_PROFILE, THERMAL_GROUP, RPM ceiling, and characterized thermal-acoustic data; the example curve should not be treated as a safe production configuration.
- Resolve and validate the referenced context documents, changelog, author metadata, and license wording before publication.
What does this skill do, and when should you use it?
This skill manages nvfancontrol configuration on Jetson/Tegra Orin and Thor platforms. It supports adding, removing, and editing fan curves, along with changing the boot control mode, default profile, and governor. Changes are written only to the source overlay while the BSP image copy remains read-only, and the workflow requires committed changes. Write operations then need image promotion and flashing, or the documented copy-and-service-restart path for a running device.
It resolves the active target and BSP/source paths, then locates the appropriate nvfancontrol_<active-sku>.conf. It reads the pristine BSP copy and imports, edits, and commits the per-board configuration in the source overlay. Operations include listing profiles, adding or removing FAN_PROFILE blocks, editing TEMP/HYST/PWM/RPM curves, changing FAN_DEFAULT_CONTROL, FAN_DEFAULT_PROFILE, and FAN_DEFAULT_GOVERNOR, and propagating the same changed lines to related reference and carrier-derived configurations. After write operations, it directs the user to run /jetson-promote-image and /jetson-flash-image, or to copy the configuration and restart nvfancontrol.service.
- A Jetson Orin developer needs to add a quiet or aggressive fan profile and make it the boot default.
- A BSP engineer needs to adjust PWM, RPM, or temperature hysteresis on an existing curve to reduce noise or fan oscillation.
- A carrier maintainer needs to synchronize a fan-control change across the active SKU, reference platform, and derived carriers while preserving carrier-specific thermal and RPM parameters.
- A Jetson integrator needs to list the profiles and boot defaults currently defined for a per-board configuration.
- A BSP maintainer needs the change to remain in the overlay commit trail after image re-extraction.
What are this skill's strengths and limitations?
- Covers the full set of profile and boot-default operations: add, remove, edit, list, and change defaults.
- Clearly separates the read-only BSP image from the writable source overlay and preserves a Git change trail.
- Propagates only changed lines to derived carriers, preserving carrier-specific thermal groups and RPM limits.
- Includes file-format rules, validation guidance, troubleshooting, and deployment instructions.
- BSP-side only; it does not directly edit a running device by default.
- New or modified curves must be based on characterized platform thermal-acoustic data; the skill does not generate curves or copy them across chip families.
- Requires an active target, BSP image, source Git repository, and the expected Jetson Linux file layout.
- The supplied material provides no test suite, measured platform coverage, or performance benchmarks.
How do you install this skill?
Install it with the skills CLI flow documented by the repository: npx skills add nvidia/skills --skill jetson-customize-fan --yes. The README does not specify a manual-copy destination or another installation method for this skill.
How do you use this skill?
After the skill is loaded by an Agent, use a prompt such as add a profile called aggressive with the curve {0:255, 40:150, 80:0} or list defined fan profiles. Write operations require an active target, a BSP image, a source Git repository, and the expected Linux_for_Tegra paths. After editing, run /jetson-promote-image and /jetson-flash-image, or copy the configuration to the device and restart nvfancontrol.service as documented.
How does this skill compare with similar options?
Compared with flashing a complete BSP image, the documentation also describes a no-flash alternative: copy the overlay configuration to the running device and restart nvfancontrol.service. This is a deployment alternative, not a replacement for the overlay commit and image workflow.