[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M787RR6VCM63VSP9QJV3DBC9":3,"skill-same:01M787RR6VCM63VSP9QJV3DBC9":99},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":14,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M787RR6VCM63VSP9QJV3DBC9","jetson-customize-camera",null,"Enable MIPI\u002FGMSL camera sensors on a Jetson Thor or Orin custom carrier by rendering a kernel-DT overlay from the in-tree sensor DTSI. Do NOT use for UPHY lane allocation or ODMDATA edits.","Solizardking\u002Ftrain2earn","Solizardking","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F108096810?v=4","01M786KDB10AYV042N0F9BD5B5","Clawd","01M786KDC5C3NPE4W44C5641EZ",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: jetson-customize-camera\ndescription: >-\n  Enable MIPI\u002FGMSL camera sensors on a Jetson Thor or Orin custom\n  carrier by rendering a kernel-DT overlay from the in-tree sensor\n  DTSI. Do NOT use for UPHY lane allocation or ODMDATA edits.\nversion: 0.0.1\nlicense: \"Apache-2.0\"\nmetadata:\n  data-classification: public\n  author: \"Jetson Team\"\n  tags:\n    - bsp\n    - phase-2\n    - io\n    - camera\n    - csi\n  domain: meta\n---\n\n# Customize camera (CSI \u002F MIPI \u002F GMSL sensor bring-up)\n\n## Overview\n\nTegra264 (Thor) and Tegra234 (Orin) expose a single `tegra-capture-vi`\ncontroller fronted by NVCSI and a fixed set of CSI ports. Camera\nbring-up is:\n\n1. **Sensor selection** — picked from the set NVIDIA ships in-tree\n   `.dtsi` references for on the active platform.\n2. **Carrier + module support check** — verified against the Camera\n   Development Guide, Adaptation Guide §Camera, carrier schematic,\n   Module TRM, and carrier pinmap.\n3. **Wiring** — derived from the in-tree\n   `tegra\u003Csoc>-camera-\u003Csensor>*.dtsi` when one exists (**the DTSI IS\n   the wiring source of truth**); captured per-sensor from the user\n   when the sensor is custom.\n4. **Kernel-DT overlay** — cpp-expand the in-tree DTSI, extract its\n   `fragment@N` body, append into the composite custom overlay\n   `.dts` for the active target (per\n   [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)),\n   verify the composite with `fdtoverlay`.\n   `\u002Fjetson-build-source` compiles the composite and owns the\n   carrier conf's `OVERLAY_DTB_FILE+=` registration.\n\n**Agentic, not table-driven** — sensor list is built at runtime by\nglobbing in-tree per-sensor dtbos. No `_THOR_CAMERAS` dict, no\n`questions.json`, no Python renderer in the question path.\n\n**No ODMDATA edit** — cameras don't consume UPHY lanes (CSI is a\nseparate PHY pool). The skill emits only a kernel-DT overlay; the\nODMDATA line in the carrier conf is untouched by this skill.\n\nThe output is **one commit**:\n- Camera `fragment@N` block (plus `jetson-header-name` on the\n  composite root if not already present) appended to the composite\n  custom overlay `.dts` per\n  [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)\n  → committed to the `bsp_sources\u002F` hardware repo.\n  `\u002Fjetson-build-source` compiles the composite to `.dtbo` and\n  owns its Makefile + flash-conf registration.\n\n## When to invoke\n\n- The user says \"enable camera\", \"configure CSI\", \"wire a Hawk \u002F\n  Owl \u002F IMX sensor\", \"MIPI camera\", \"GMSL camera\", or asks to bring\n  up `tegra-capture-vi` \u002F NVCSI on a custom carrier.\n- Flash boots but `v4l2-ctl --list-devices` shows no\n  `tegra-capture-vi` channels, OR sensor enumeration on a fresh\n  daughter-card needs to be confirmed.\n- A sensor was previously enabled and the user wants to add another\n  (multi-sensor bring-up).\n\n**Prerequisites:**\n\n- Active profile with `reference_devkit:` + `custom_carrier:` blocks.\n- `\u003Csource.root_path>\u002FLinux_for_Tegra\u002F.git` exists\n  (`\u002Fjetson-init-source`).\n- `\u002Fjetson-derive-carrier` has run — the carrier flash-conf fork is\n  in the overlay tracker.\n- `\u003Csource.root_path>\u002Fbsp_sources\u002Fhardware\u002Fnvidia\u002F\u003Cchip-dir>\u002Fnv-public\u002Foverlay\u002F`\n  exists and contains the in-tree per-sensor `.dtsi` files (sourced\n  by `\u002Fjetson-init-source`'s Branch A archive extract).\n- `\u003Csource.root_path>\u002Fbsp_sources\u002Fkernel\u002Fkernel-noble\u002Finclude\u002Fdt-bindings\u002F`\n  contains the macro headers cpp needs (`source_sync.sh` may need to\n  run if Branch B was used — see Step 5a.i below).\n- Source-of-truth docs registered or supplied at prompt:\n  Camera Development Guide (in `bsp_developer_guide` mirror or\n  separate path), Adaptation Guide §Camera, carrier schematic, SoC\n  TRM, Module Design Guide.\n- `dtc`, `cpp`, `fdtoverlay` on PATH.\n\n## Procedure\n\nDetailed step-by-step procedure (Steps 1–7, with all tables, code\nblocks, and gates) lives in\n[`references\u002Fprocedure.md`](references\u002Fprocedure.md). Summary:\n\n1. **Step 1** — Resolve active target + open source-of-truth docs.\n2. **Step 2** — Enumerate supported sensors by globbing in-tree\n   per-platform camera dtbos; classify as DPHY-direct \u002F GMSL \u002F\n   custom. Never invent sensors.\n3. **Step 3 \u002F 3a** — Cross-check carrier + module support against\n   DTSI, Camera Development Guide, Adaptation Guide §Camera, SoC TRM,\n   Module Design Guide, schematic, and carrier pinmap. Render the\n   wiring table FIRST, then issue the confirm-or-customize gate.\n4. **Step 4** (custom path only) — Batched per-sensor wiring\n   questions auto-filled from the carrier pinmap.\n5. **Step 5** — Append exactly ONE `\u002F* custom-bsp: camera:\u003Csensor> *\u002F`\n   fragment to the composite custom overlay `.dts` (see\n   [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)).\n   Clone path cpp-expands the in-tree DTSI; custom path splices Step-4\n   answers + mode tables in-place. Idempotently set\n   `jetson-header-name` on the composite root. Verify with\n   `dtc` + `fdtoverlay` (pre-compile single-fragment gate;\n   post-compile deep-tree uniqueness gate). Commit via the\n   workflow's commit-message preview gate.\n6. **Step 6** — Verify ancillary CAM pin SFIOs (`cam_i2c_*`,\n   `extperiph\u003Cm>_clk`, reset\u002FPWDN\u002FPWR_EN GPIOs) via\n   `pin_verifier.py`; route mismatches to `\u002Fjetson-customize-pinmux`.\n7. **Step 7** — Atomic-write run-state JSON sidecar at\n   `\u003Cworkspace>\u002Ftarget-platform\u002F\u003Cprofile-stem>.jetson-customize-camera.json`\n   and emit the headline, then drive the downstream next-step chain via\n   sequential `AskUserQuestion` prompts per `references\u002Fprocedure.md`\n   Step 7. **The chain is a documented workflow gate, not a clarifying\n   question — auto-mode does NOT exempt it.** Never substitute a\n   printed \"Next step: …\" line for the prompts.\n\n## Gotchas\n\n- **Dual-fragment trap.** Contribute exactly ONE camera-tagged\n  `fragment@N` to the composite. A second one carrying status\n  overrides triggers dtc deep-merge → duplicate sibling subtrees\n  (e.g. two `tca9546@70`) → runtime first-match drops the dtsi-\n  supplied deep tree → camera silently doesn't enumerate. Gate on\n  this skill's marker only (Step 5c).\n- **Composite root `compatible` is owned globally, not by this\n  skill.** Don't widen from any in-tree per-sensor dtbo's\n  `compatible` (devkit-SKU-gated). Fix the composite root if needed.\n- **`jetson-header-name` from any in-tree per-sensor dtbo.** Fixed,\n  carrier-agnostic; read once, paste onto the metadata root.\n- **DO NOT also append the in-tree per-sensor dtbo to\n  `OVERLAY_DTB_FILE`.** Registering both your rendered overlay AND\n  the in-tree `tegra\u003Csoc>-p3971-camera-\u003Csensor>-overlay.dtbo`\n  produces a phantom subdev bind that bricks camera enumeration.\n- **Stub overlay is a known footgun.** Committing\n  `tegra-capture-vi { status=\"okay\"; num-channels=\u003CN>; }` with no\n  ports \u002F sensor \u002F nvcsi body bricks the camera (`all channel init\n  failed`). Splice the FULL sensor body via cpp + dtc.\n- **Sensor mode tables must be spliced, never hand-authored.**\n  `mode\u003CN>`, `sensor_modes`, `pixel_phase` — copy verbatim from the\n  closest in-tree DTSI.\n- **`camera_common_regulator_get (null) ERR: -EINVAL`** = missing\n  `avdd-reg` \u002F `iovdd-reg` \u002F `dvdd-reg` strings — splice the FULL\n  sensor body; always-on rails fall back to dummy regulator.\n- **External `&label` refs must exist in base DTB's `__symbols__`.**\n  Use `target-path = \"\u002Ftegra-capture-vi\"` when the label is absent;\n  `fdtoverlay` exits non-zero with `FDT_ERR_NOTFOUND` otherwise.\n- **`cpp` failure on `dt-bindings\u002Fgpio\u002Fgpio.h: No such file`** =\n  L4T source tree isn't staged. Re-run `\u002Fjetson-init-source` (Branch\n  B's `source_sync.sh` fetches the headers). Never fabricate the\n  macro expansion.\n- **No ODMDATA edit, no flash-conf edit.** Camera doesn't consume\n  UPHY lanes. The carrier conf's `ODMDATA=\"...\"` is untouched.\n  `OVERLAY_DTB_FILE+=` is owned by `\u002Fjetson-build-source` Step\n  5.0a — this skill never touches the carrier flash conf.\n- **Don't touch the upstream BSP at `\u003Cbsp_image.root_path>`.** All\n  edits land in `\u003Csource.root_path>\u002FLinux_for_Tegra\u002F` (overlay\n  tracker) and `\u003Csource.root_path>\u002Fbsp_sources\u002F` (overlay `.dts`)\n  under the pristine + customization commit pattern.\n\n## References\n\n- [`references\u002Fprocedure.md`](references\u002Fprocedure.md) — full\n  step-by-step Steps 1–7 procedure (extracted from this SKILL.md).\n- [`references\u002Fcsi-dt-bindings.md`](references\u002Fcsi-dt-bindings.md) —\n  CSI \u002F nvcsi \u002F vi DT binding reference notes.\n- [`references\u002Foverlay-template.md`](references\u002Foverlay-template.md) —\n  guidance on the metadata-root + clone-body overlay shape.\n- [`references\u002Fcamera-overlay-templates\u002F`](references\u002Fcamera-overlay-templates\u002F)\n  — starter `.dts.tmpl` templates: `dphy-direct.dts.tmpl`,\n  `gmsl-serdes.dts.tmpl`.\n- [`..\u002F..\u002Fscripts\u002Fpin_verifier.py`](..\u002F..\u002Fscripts\u002Fpin_verifier.py)\n  — shared HSIO pin verifier (Step 6).\n- [`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\n  — `documents:` block consumed by Step 1.\n- [`..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md`](..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md#workflow-invariants)\n  — overlay edit protocol.\n- [`..\u002Fjetson-customize-pinmux\u002FSKILL.md`](..\u002Fjetson-customize-pinmux\u002FSKILL.md) —\n  sibling skill auto-invoked by Step 6 to fix HSIO pin SFIO\n  mismatches (CAM I²C, MCLK, reset GPIOs).\n- [`..\u002Fjetson-derive-carrier\u002FSKILL.md`](..\u002Fjetson-derive-carrier\u002FSKILL.md)\n  — must run first; produces the carrier base overlay (the\n  `*-dynamic.dtbo`) this skill's composite stacks after.\n- [`..\u002Fjetson-init-source\u002FSKILL.md`](..\u002Fjetson-init-source\u002FSKILL.md) —\n  produces the overlay tracker + `bsp_sources` repo (with the\n  `hardware\u002Fnvidia\u002F\u003Cchip-dir>\u002F` per-sensor DTSI tree) this skill\n  reads and commits into.\n","# Customize camera (CSI \u002F MIPI \u002F GMSL sensor bring-up)\n\n## Overview\n\nTegra264 (Thor) and Tegra234 (Orin) expose a single `tegra-capture-vi`\ncontroller fronted by NVCSI and a fixed set of CSI ports. Camera\nbring-up is:\n\n1. **Sensor selection** — picked from the set NVIDIA ships in-tree\n   `.dtsi` references for on the active platform.\n2. **Carrier + module support check** — verified against the Camera\n   Development Guide, Adaptation Guide §Camera, carrier schematic,\n   Module TRM, and carrier pinmap.\n3. **Wiring** — derived from the in-tree\n   `tegra\u003Csoc>-camera-\u003Csensor>*.dtsi` when one exists (**the DTSI IS\n   the wiring source of truth**); captured per-sensor from the user\n   when the sensor is custom.\n4. **Kernel-DT overlay** — cpp-expand the in-tree DTSI, extract its\n   `fragment@N` body, append into the composite custom overlay\n   `.dts` for the active target (per\n   [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)),\n   verify the composite with `fdtoverlay`.\n   `\u002Fjetson-build-source` compiles the composite and owns the\n   carrier conf's `OVERLAY_DTB_FILE+=` registration.\n\n**Agentic, not table-driven** — sensor list is built at runtime by\nglobbing in-tree per-sensor dtbos. No `_THOR_CAMERAS` dict, no\n`questions.json`, no Python renderer in the question path.\n\n**No ODMDATA edit** — cameras don't consume UPHY lanes (CSI is a\nseparate PHY pool). The skill emits only a kernel-DT overlay; the\nODMDATA line in the carrier conf is untouched by this skill.\n\nThe output is **one commit**:\n- Camera `fragment@N` block (plus `jetson-header-name` on the\n  composite root if not already present) appended to the composite\n  custom overlay `.dts` per\n  [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)\n  → committed to the `bsp_sources\u002F` hardware repo.\n  `\u002Fjetson-build-source` compiles the composite to `.dtbo` and\n  owns its Makefile + flash-conf registration.\n\n## When to invoke\n\n- The user says \"enable camera\", \"configure CSI\", \"wire a Hawk \u002F\n  Owl \u002F IMX sensor\", \"MIPI camera\", \"GMSL camera\", or asks to bring\n  up `tegra-capture-vi` \u002F NVCSI on a custom carrier.\n- Flash boots but `v4l2-ctl --list-devices` shows no\n  `tegra-capture-vi` channels, OR sensor enumeration on a fresh\n  daughter-card needs to be confirmed.\n- A sensor was previously enabled and the user wants to add another\n  (multi-sensor bring-up).\n\n**Prerequisites:**\n\n- Active profile with `reference_devkit:` + `custom_carrier:` blocks.\n- `\u003Csource.root_path>\u002FLinux_for_Tegra\u002F.git` exists\n  (`\u002Fjetson-init-source`).\n- `\u002Fjetson-derive-carrier` has run — the carrier flash-conf fork is\n  in the overlay tracker.\n- `\u003Csource.root_path>\u002Fbsp_sources\u002Fhardware\u002Fnvidia\u002F\u003Cchip-dir>\u002Fnv-public\u002Foverlay\u002F`\n  exists and contains the in-tree per-sensor `.dtsi` files (sourced\n  by `\u002Fjetson-init-source`'s Branch A archive extract).\n- `\u003Csource.root_path>\u002Fbsp_sources\u002Fkernel\u002Fkernel-noble\u002Finclude\u002Fdt-bindings\u002F`\n  contains the macro headers cpp needs (`source_sync.sh` may need to\n  run if Branch B was used — see Step 5a.i below).\n- Source-of-truth docs registered or supplied at prompt:\n  Camera Development Guide (in `bsp_developer_guide` mirror or\n  separate path), Adaptation Guide §Camera, carrier schematic, SoC\n  TRM, Module Design Guide.\n- `dtc`, `cpp`, `fdtoverlay` on PATH.\n\n## Procedure\n\nDetailed step-by-step procedure (Steps 1–7, with all tables, code\nblocks, and gates) lives in\n[`references\u002Fprocedure.md`](references\u002Fprocedure.md). Summary:\n\n1. **Step 1** — Resolve active target + open source-of-truth docs.\n2. **Step 2** — Enumerate supported sensors by globbing in-tree\n   per-platform camera dtbos; classify as DPHY-direct \u002F GMSL \u002F\n   custom. Never invent sensors.\n3. **Step 3 \u002F 3a** — Cross-check carrier + module support against\n   DTSI, Camera Development Guide, Adaptation Guide §Camera, SoC TRM,\n   Module Design Guide, schematic, and carrier pinmap. Render the\n   wiring table FIRST, then issue the confirm-or-customize gate.\n4. **Step 4** (custom path only) — Batched per-sensor wiring\n   questions auto-filled from the carrier pinmap.\n5. **Step 5** — Append exactly ONE `\u002F* custom-bsp: camera:\u003Csensor> *\u002F`\n   fragment to the composite custom overlay `.dts` (see\n   [`..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md`](..\u002F..\u002Freferences\u002Fbsp-customization-kernel-dtb.md)).\n   Clone path cpp-expands the in-tree DTSI; custom path splices Step-4\n   answers + mode tables in-place. Idempotently set\n   `jetson-header-name` on the composite root. Verify with\n   `dtc` + `fdtoverlay` (pre-compile single-fragment gate;\n   post-compile deep-tree uniqueness gate). Commit via the\n   workflow's commit-message preview gate.\n6. **Step 6** — Verify ancillary CAM pin SFIOs (`cam_i2c_*`,\n   `extperiph\u003Cm>_clk`, reset\u002FPWDN\u002FPWR_EN GPIOs) via\n   `pin_verifier.py`; route mismatches to `\u002Fjetson-customize-pinmux`.\n7. **Step 7** — Atomic-write run-state JSON sidecar at\n   `\u003Cworkspace>\u002Ftarget-platform\u002F\u003Cprofile-stem>.jetson-customize-camera.json`\n   and emit the headline, then drive the downstream next-step chain via\n   sequential `AskUserQuestion` prompts per `references\u002Fprocedure.md`\n   Step 7. **The chain is a documented workflow gate, not a clarifying\n   question — auto-mode does NOT exempt it.** Never substitute a\n   printed \"Next step: …\" line for the prompts.\n\n## Gotchas\n\n- **Dual-fragment trap.** Contribute exactly ONE camera-tagged\n  `fragment@N` to the composite. A second one carrying status\n  overrides triggers dtc deep-merge → duplicate sibling subtrees\n  (e.g. two `tca9546@70`) → runtime first-match drops the dtsi-\n  supplied deep tree → camera silently doesn't enumerate. Gate on\n  this skill's marker only (Step 5c).\n- **Composite root `compatible` is owned globally, not by this\n  skill.** Don't widen from any in-tree per-sensor dtbo's\n  `compatible` (devkit-SKU-gated). Fix the composite root if needed.\n- **`jetson-header-name` from any in-tree per-sensor dtbo.** Fixed,\n  carrier-agnostic; read once, paste onto the metadata root.\n- **DO NOT also append the in-tree per-sensor dtbo to\n  `OVERLAY_DTB_FILE`.** Registering both your rendered overlay AND\n  the in-tree `tegra\u003Csoc>-p3971-camera-\u003Csensor>-overlay.dtbo`\n  produces a phantom subdev bind that bricks camera enumeration.\n- **Stub overlay is a known footgun.** Committing\n  `tegra-capture-vi { status=\"okay\"; num-channels=\u003CN>; }` with no\n  ports \u002F sensor \u002F nvcsi body bricks the camera (`all channel init\n  failed`). Splice the FULL sensor body via cpp + dtc.\n- **Sensor mode tables must be spliced, never hand-authored.**\n  `mode\u003CN>`, `sensor_modes`, `pixel_phase` — copy verbatim from the\n  closest in-tree DTSI.\n- **`camera_common_regulator_get (null) ERR: -EINVAL`** = missing\n  `avdd-reg` \u002F `iovdd-reg` \u002F `dvdd-reg` strings — splice the FULL\n  sensor body; always-on rails fall back to dummy regulator.\n- **External `&label` refs must exist in base DTB's `__symbols__`.**\n  Use `target-path = \"\u002Ftegra-capture-vi\"` when the label is absent;\n  `fdtoverlay` exits non-zero with `FDT_ERR_NOTFOUND` otherwise.\n- **`cpp` failure on `dt-bindings\u002Fgpio\u002Fgpio.h: No such file`** =\n  L4T source tree isn't staged. Re-run `\u002Fjetson-init-source` (Branch\n  B's `source_sync.sh` fetches the headers). Never fabricate the\n  macro expansion.\n- **No ODMDATA edit, no flash-conf edit.** Camera doesn't consume\n  UPHY lanes. The carrier conf's `ODMDATA=\"...\"` is untouched.\n  `OVERLAY_DTB_FILE+=` is owned by `\u002Fjetson-build-source` Step\n  5.0a — this skill never touches the carrier flash conf.\n- **Don't touch the upstream BSP at `\u003Cbsp_image.root_path>`.** All\n  edits land in `\u003Csource.root_path>\u002FLinux_for_Tegra\u002F` (overlay\n  tracker) and `\u003Csource.root_path>\u002Fbsp_sources\u002F` (overlay `.dts`)\n  under the pristine + customization commit pattern.\n\n## References\n\n- [`references\u002Fprocedure.md`](references\u002Fprocedure.md) — full\n  step-by-step Steps 1–7 procedure (extracted from this SKILL.md).\n- [`references\u002Fcsi-dt-bindings.md`](references\u002Fcsi-dt-bindings.md) —\n  CSI \u002F nvcsi \u002F vi DT binding reference notes.\n- [`references\u002Foverlay-template.md`](references\u002Foverlay-template.md) —\n  guidance on the metadata-root + clone-body overlay shape.\n- [`references\u002Fcamera-overlay-templates\u002F`](references\u002Fcamera-overlay-templates\u002F)\n  — starter `.dts.tmpl` templates: `dphy-direct.dts.tmpl`,\n  `gmsl-serdes.dts.tmpl`.\n- [`..\u002F..\u002Fscripts\u002Fpin_verifier.py`](..\u002F..\u002Fscripts\u002Fpin_verifier.py)\n  — shared HSIO pin verifier (Step 6).\n- [`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\n  — `documents:` block consumed by Step 1.\n- [`..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md`](..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md#workflow-invariants)\n  — overlay edit protocol.\n- [`..\u002Fjetson-customize-pinmux\u002FSKILL.md`](..\u002Fjetson-customize-pinmux\u002FSKILL.md) —\n  sibling skill auto-invoked by Step 6 to fix HSIO pin SFIO\n  mismatches (CAM I²C, MCLK, reset GPIOs).\n- [`..\u002Fjetson-derive-carrier\u002FSKILL.md`](..\u002Fjetson-derive-carrier\u002FSKILL.md)\n  — must run first; produces the carrier base overlay (the\n  `*-dynamic.dtbo`) this skill's composite stacks after.\n- [`..\u002Fjetson-init-source\u002FSKILL.md`](..\u002Fjetson-init-source\u002FSKILL.md) —\n  produces the overlay tracker + `bsp_sources` repo (with the\n  `hardware\u002Fnvidia\u002F\u003Cchip-dir>\u002F` per-sensor DTSI tree) this skill\n  reads and commits into.\n",{"name":5,"license":15,"version":24,"metadata":25,"description":7},"0.0.1",{"tags":26,"author":32,"domain":33,"data-classification":34},[27,28,29,30,31],"bsp","phase-2","io","camera","csi","Jetson Team","meta","public","main","86cc27ffd16af6cb85948f1155578e6f3f61cc4c","skillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn","https:\u002F\u002Fgithub.com\u002FSolizardking","https:\u002F\u002Fmusebook.trade","Got a mile high and never came down","2026-10-08 11:52:53",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add Solizardking\u002Ftrain2earn --skill jetson-customize-camera",{"tool":49,"command":50},"bunx","bunx skills add Solizardking\u002Ftrain2earn --skill jetson-customize-camera",{"tool":52,"command":53},"pnpm","pnpm dlx skills add Solizardking\u002Ftrain2earn --skill jetson-customize-camera","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002FSKILL.md",true,[57,63,67,71,75,79,83,87,91,95],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"BENCHMARK.md","REFERENCE","参考文档",3842,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002FBENCHMARK.md",{"path":64,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":65,"sourceHtmlUrl":66},"metadata.json",407,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Fmetadata.json",{"path":68,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fcamera-overlay-templates\u002Fdphy-direct.dts.tmpl",8355,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Fcamera-overlay-templates\u002Fdphy-direct.dts.tmpl",{"path":72,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fcamera-overlay-templates\u002Fgmsl-serdes.dts.tmpl",8425,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Fcamera-overlay-templates\u002Fgmsl-serdes.dts.tmpl",{"path":76,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fcamera-overlay-templates\u002FREADME.md",2641,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Fcamera-overlay-templates\u002FREADME.md",{"path":80,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fcsi-dt-bindings.md",3685,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Fcsi-dt-bindings.md",{"path":84,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Foverlay-template.md",7726,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Foverlay-template.md",{"path":88,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fprocedure.md",17361,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Freferences\u002Fprocedure.md",{"path":92,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":93,"sourceHtmlUrl":94},"skill-card.md",3857,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Fskill-card.md",{"path":96,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":97,"sourceHtmlUrl":98},"verification.json",2490,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Fjetson-customize-camera\u002Fverification.json",[100,108,116,124,131,139],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":104,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":19},"01M78B94RSCAKMH1QS79VE6DG9","testing","For testing with Light Protocol programs and clients on localnet, devnet, and mainnet validation.","MIT","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Ftesting\u002FSKILL.md",[],[],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":104,"licenseFileUrl":112,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":19},"01M78B81BKY8RX12HETPG8YKWK","qedgen","Formally verify programs by writing Lean 4 proofs. Trigger this skill whenever the user wants to formally verify code, generate Lean 4 proofs, prove properties about algorithms or smart contracts, verify invariants, convert program logic into formal specifications, or anything involving Lean 4 and formal verification. Also trigger when the user mentions \"qedgen\", \"lean proof\", \"formal proof\", \"verify my code\", \"prove correctness\", \"formal verification\", or wants mathematical guarantees about their implementation.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fsolana-formal-verification\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fsolana-formal-verification\u002FSKILL.md",[],[],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":104,"licenseFileUrl":120,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":19},"01M78B7Q7C5K54E01DN83A60KG","solana-dev","Use when user asks to \"build a Solana dapp\", \"write an Anchor program\", \"create a token\", \"debug Solana errors\", \"set up wallet connection\", \"test my Solana program\", \"deploy to devnet\", or \"explain Solana concepts\" (rent, accounts, PDAs, CPIs, etc.). Also use for quick on-chain lookups via public RPC + curl — \"what's the balance of \u003Cwallet>\", \"look up transaction \u003Csig>\", \"token balance for \u003Caccount>\", \"check this address on mainnet\u002Fdevnet\". End-to-end Solana development playbook covering wallet connection, Anchor\u002FPinocchio programs, Codama client generation, LiteSVM\u002FMollusk\u002FSurfpool testing, security checklists, and JSON-RPC curl lookups against public clusters. Integrates with the Solana MCP server for live documentation search. Prefers framework-kit (@solana\u002Fclient + @solana\u002Freact-hooks) for UI, wallet-standard-first connection (incl. ConnectorKit), @solana\u002Fkit for client\u002FRPC code, and @solana\u002Fweb3-compat for legacy boundaries.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fsolana-dev\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fsolana-dev\u002FSKILL.md",[],[],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":104,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":19},"01M78B7HXD6N6GWKSVRQ8F6Q31","solana-common-errors","Diagnose and fix common Solana development errors — GLIBC mismatches, Anchor version conflicts, cargo build-sbf \u002F platform-tools failures, LiteSVM issues, edition2024 crate pins, RPC airdrops, and Anchor 0.29→0.32 migrations. Use when builds fail, Anchor CLI won't install, or CI breaks on Debian\u002FUbuntu.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fsolana-common-errors\u002FSKILL.md",[],[],{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":135,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":19},"01M78B6T7YSYWQ0N4DP40QDXEZ","skill-creator","Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fskill-creator\u002Flicense.txt","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fskill-creator\u002FSKILL.md",[],[],{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":104,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":19},"01M78B1VFT9X5AND7AE1HZPZGF","phantom-wallet-mcp","Execute wallet operations through the Phantom MCP server. Use when the user wants to interact with their Phantom wallet directly — get addresses, transfer SOL or SPL tokens, buy\u002Fswap tokens, sign transactions, and sign messages across Solana, Ethereum, Bitcoin, and Sui. Requires the @phantom\u002Fmcp-server to be configured as an MCP server.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Ftrain2earn\u002Fblob\u002Fmain\u002Fskillhub\u002Fskills\u002Fphantom-wallet-mcp\u002FSKILL.md",[],[]]