Jetson USB Port Customization
Safely enable, disable, or change Jetson USB port roles through a kernel device-tree overlay.
The skill requires user confirmation for port actions, declares public data classification, forbids ODMDATA and upstream BSP edits, and requires a commit preview gate. However, composing and committing an overlay has persistent external effects, rollback is not explicitly defined, and permission boundaries, sensitive-data handling, and dependency provenance remain incomplete, so points are deducted.
SKILL.md and procedure.md provide detailed prerequisites, the three-place DT update rule, failure signatures, and refusal conditions. However, shared files, tools, and sibling skills are not verified in the supplied material, sidecar versions are inconsistent, and key paths cannot be reproduced statically; the score is therefore constrained to 9.
Invocation triggers, supported platforms, exclusions, required inputs, and output location are clearly stated for custom and reference carrier workflows. Chinese interaction and mainland-China network fit are not addressed, while some scenarios depend on external adaptation documentation and a local BSP environment, so points are deducted.
The skill uses layered SKILL, procedure, gotchas, binding, and sidecar documentation, with license, version, and team ownership clues. It lacks a clear changelog, maintenance/update path, and normalized author format; BENCHMARK also reports missing Instructions and Examples sections, and references retain the older modify-usb naming, so points are deducted.
The stated goal is a directly committable USB kernel-DT composite overlay, with coverage of topology, companion cascades, pinmux checks, merge invariants, and sidecar output. BENCHMARK reports two positive tasks passing, but no statically verifiable real output or hardware result is supplied; user review and later build/flash validation remain necessary, so the static cap yields 6.
The documents provide DT paths, phandles, commands, invariants, failure signatures, and source categories, and BENCHMARK supplies limited evaluation metrics. There is no committed test suite, CI coverage, or independently reproducible third-party execution evidence, and evidence URLs are absent, so the score is 4.
- The skill modifies and commits a composite DTS; confirm ports, USB2/USB3 companion cascades, hub downstream impact, and commit contents, and prepare a git rollback plan.
- Do not treat the BENCHMARK PASS as hardware validation; the supplied material does not prove dtc, fdtoverlay, or real Jetson boot results.
- Before use, verify shared references, sibling skills, tool versions, and sidecar-version consistency, and provide a Chinese interaction and network-reachability plan.
What does this skill do, and when should you use it?
This skill configures USB2 and USB3 SuperSpeed ports on custom carriers for Jetson Thor (Tegra264) or Orin (Tegra234). It resolves port wiring, USB2 companion relationships, GPIOs, and UPHY lanes from the device tree, carrier schematic, and pinmux documentation, then renders a kernel device-tree overlay. Each port change updates the PHY lane, port-controller binding, and xHCI phys list together. It does not allocate UPHY lanes, edit ODMDATA, patch pinmux DTSI files, compile DTBOs, or register flash configuration.
Checks the active profile, BSP source repository, carrier documents, and required tools; builds the USB topology and USB3-to-USB2 companion graph from the in-tree DTB; asks which ports to enable or disable and exposes companion and hub-fan-out consequences; verifies VBUS-enable, over-current, Type-C CC GPIOs, and SS wiring with pin_verifier.py; writes lane, port, and xHCI phys/phy-names changes into the composite custom overlay DTS, runs fdtoverlay and post-merge invariants, commits the change to bsp_sources/, and writes a run-state JSON sidecar.
- A Jetson custom-carrier developer needs to enable a USB2 or USB3 interface according to the actual board wiring.
- A system integrator needs to disable a USB hub or individual port without damaging the remaining stock-enabled ports.
- An engineer needs to diagnose a USB receptacle that does not enumerate, or repair a previous change that made lsusb empty on every port.
- A UPHY lane reallocation has changed USB3 SS assignments and the per-port device tree must follow it.
- A developer needs to change USB host, device, or OTG behavior while checking VBUS, over-current, and Type-C CC connections.
What are this skill's strengths and limitations?
- Explicitly keeps the lane, port, and xHCI phys-list changes synchronized, addressing common device-tree probe failures.
- Handles companion cascades and requires schematic and pinmux XLS evidence for custom carriers instead of guessing wiring.
- Produces a composite overlay DTS, merge validation, and run-state sidecar suitable for a Jetson BSP workflow.
- The skill is marked Apache-2.0; the repository README states that the collection is dual-licensed under Apache-2.0 and CC BY-4.0.
- It owns only the kernel device-tree overlay, not UPHY allocation, pinmux DTSI changes, DTBO compilation, flashing, or flash-conf registration.
- Only usb2-0 is OTG/xudc-capable; all other USB2 ports and all USB3 SS ports are host-only.
- It depends on the Jetson BSP source tree, device tree, platform documentation, and relevant carrier hardware records; it refuses custom-carrier runs when required documents are missing.
- The supplied material provides no independent test suite or platform-coverage data for this individual skill.
How do you install this skill?
Install the individual skill from NVIDIA's catalog with the skills CLI:
npx skills add nvidia/skills --skill jetson-customize-usb --yes
You can target an agent explicitly:
npx skills add nvidia/skills --skill jetson-customize-usb --agent codex
The README does not document a separate package for this skill. The catalog is synchronized from product repositories daily, and installed skills can be refreshed with npx skills update.
How do you use this skill?
With the skill loaded in an agent, make a concrete request such as “enable USB3 SS on my Jetson custom carrier” or “disable the USB hub and preserve the remaining ports”. Before running it, provide an active profile; for a custom carrier, both documents.custom_carrier_schematic and documents.custom_carrier_pinmux_xls are required, and /jetson-derive-carrier must have run. If an enabled USB3 SS port needs a non-stock UPHY allocation, run jetson-customize-uphy first. The skill uses interactive questions to confirm target ports and downstream steps.
How does this skill compare with similar options?
Within the same workflow, it complements rather than replaces jetson-customize-uphy, jetson-customize-pinmux, and jetson-build-source: those skills own UPHY allocation, SFIO/pinmux fixes, and DTBO build and flash-conf registration respectively.