jetson-generate-kb
NVIDIA/skills
BSP 루트와 소스 트리를 탐색하여 이미지 레이아웃, 소스 트리 구조 및 문서 참조 정보를 기록함으로써, 대상별 지식 기반 마크다운 파일을 생성합니다.
...모든 것을 확장하십시오대상 지식베이스 생성
개요
이 스킬은
target-platform/ (프로필 YAML 파일과 동급 수준). 이 스킬은
세 가지 항목을 하나의 파일로 묶어, 향후 Claude 세션이나
사용자가 파일 시스템을 다시 탐색하지 않고도 활성 대상의 구조를
확인할 수 있도록 합니다:
- BSP 이미지 레이아웃 —
bsp_image.root_path, 표준 서브트리(rootfs/,bootloader/,source/, …)의 존재 여부, 그리고 활성 모듈 SKU와 일치하는 nvpmodel 변형. - 소스 트리 레이아웃 —하위의 최상위 서브트리(
source.root_path(kernel-jammy-src/,hardware/nvidia/,nvidia-oot/하위의 최상위 서브트리 등) 및 칩 제품군에 맞는 디바이스 트리 파일. - 문서 —
documents.*프로필에 기록된 참조 정보로, 로컬 경로 존재 여부 확인 및 한 줄 분량의 설명이 포함됩니다.
KB는 헤더에 날짜가 표시된 스냅샷입니다. 기본 데이터가 변경될 때마다 이 스킬을 다시 실행하십시오. 이 스킬은 의도적으로 재실행이 가능하며, 실행할 때마다 이전 KB를 덮어씁니다.
호출 시점
- 다음과 같은 경우
jetson-init-image새로 작성된 프로필에 대한 BSP를 준비한 후. - BSP 아카이브를 다시 추출하거나
bsp_image.root_path. - 다음에서 소스 트리를 업데이트한 후
source.root_path. - 편집 후
bsp_image.*또는documents.*프로필 YAML에서 편집한 후. - 하류 스킬에서 "이 BSP에서 X는 어디에 있나요?"라고 묻는 경우, 트리를 다시 탐색하기보다는 차라리 KB를 확인하고 싶을 때.
절차
활성 대상 해결
계약에 따라 활성 프로필을 해결하고
../../context/target-platform-contract.md;
메모리에 캐시합니다 — 나머지 스킬은 이
프로필만을 사용합니다. 기록 (파일 이름에서 .yaml)
를 KB 출력 파일 이름의 어근으로 기록합니다.
입력값 유효성 검사
| 필드 | KB에 필수 항목인가? | 누락 시 |
|---|---|---|
bsp_image.root_path |
예 | 거부합니다. 스캔할 BSP 루트가 없는 KB는 단순한 YAML 재표현에 불과합니다. 사용자에게 jetson-init-image 프로필을 수동으로 편집하도록 안내하십시오. |
source.root_path |
아니요 | source-tree 섹션을 건너뜁니다. KB에 "source_root 미기록"이라고 기록합니다. |
documents.* |
아니요 | "기록된 문서가 없음"이라는 메모와 함께 빈 문서 테이블을 표시합니다. |
만약 bsp_image.root_path 설정되어 있으나 디스크에 해당 디렉터리가 존재하지 않는 경우,
명확한 메시지와 함께 거부하십시오 — 존재하지 않는 경로에 대한 레이아웃을
임의로 생성하지 마십시오.
BSP 탐색 ( bsp_image.root_path)
다음과 같은 비용이 적은 작업만 실행하십시오 — 재귀적 스캔 금지, 디렉터리 목록을 넘어서는 파일 내용 읽기 금지:
ls -1(한 단계 깊이). 존재하는디렉터리를 기록하십시오.bsp_image.root_path(한 단계 깊이). 어떤 디렉터리가 존재하는지 기록한다.- 아래의 각 정규 하위 트리에 대해, 존재 여부를 표시합니다:
rootfs/,bootloader/,kernel/,source/,tools/,nv_tegra/. - 활성
flash_config파일이에 있는지 확인하십시오. 해당 경로 또는/ (missing). - 목록
rootfs/etc/nvpmodel/를 나열하고nvpmodel_. 일치하는 항목을 각각 기록합니다. 소문자 모듈 ID(예:_ *.conf p3767)와 YAML 따옴표로 묶인 sku 문자열(예:0001).
소스 트리 탐색 (아래 source.root_path)
다음 조건에 해당할 경우 이 단계를 완전히 건너뛰십시오 source.root_path 가 NA 인 경우 이 단계를 완전히 건너뛰십시오.
그렇지 않은 경우 다음만 실행하십시오:
ls -1의source.root_path(한 단계 깊이).- 아래의 각 정규 부분 트리에 대해 존재 여부를 표시하십시오:
kernel-jammy-src/,hardware/nvidia/,nvidia-oot/,nvgpu/,nvethernetrm/,nvdisplay/,hwpm/,kernel-devicetree/. - 만약
kernel-devicetree/generic-dts/dts/존재할 경우, 다음 조건에 일치하는tegra여기서* 는 칩 패밀리의 숫자 접두사입니다(아래 칩 패밀리 매핑 참조). 최대 30개까지 기록하고, 그 이상일 경우 개수와 “처음 30개 표시”라는 메모를 기록하십시오.
칩 패밀리 매핑표 (“BSP 탐색” 및 “소스 트리 탐색” 단계에서 사용)
파생 에서 module.id:
module.id |
칩 패밀리 | 접두사 |
|---|---|---|
p3701, p3767 |
T234 — Orin | 234 |
p3834 |
T264 — 토르 | 264 |
만약 module.id 이 표에 없는 경우, 칩을
unknown (module.id= 로 기록하고 칩 접두사가 붙은 디바이스 트리
필터는 건너뛰십시오.
문서가 통과하면
다음과 같이 documents.* 각 필드에 대해:
- 값을 URL(
http://,https://, 또는ftp://로 시작하는 경우) 또는 로컬 경로(그 외 모든 경우)로 분류하십시오. - URL의 경우: 그대로 기록하십시오. URL을 불러오지 마십시오 — 지식베이스(KB) 생성은 오프라인 상태로 유지되어야 합니다. (향후 스킬에서 심층 색인화로 확장될 수 있습니다.)
- 로컬 경로의 경우:
os.path.exists. 경로를 기록하고, 디스크에 없는 경우(missing).
각 필드에 대한 한 줄 설명은
../../references/platform_template.yaml
— 내부 텍스트를 사용하십시오.
프로필에 documents: 블록이 없는 경우, 해당 섹션을
한 줄로 렌더링합니다: _No documents recorded — run jetson-link-docs or hand-edit the profile to add references._
KB 렌더링 및 작성
아래 구조를 사용하여 마크다운을 렌더링합니다. 헤더에는 오늘의 날짜 (YYYY-MM-DD)를 사용합니다. 대상 위치에 있는 기존 KB 파일이 있으면 항상 덮어씁니다. 덮어쓰기 전에 확인 메시지를 표시하지 마십시오. 재실행이 예정된 사용 방식입니다.
대상 위치: target-platform/.
렌더링된 구조
# Target knowledge base —
> Generated from `` (BSP version ``).
> Re-run `jetson-generate-kb` after extracting a new BSP, applying
> patches, or editing profile fields. This file is a regenerated
> snapshot — do not hand-edit.
## Profile facts
- **Reference devkit:** ``
- **Module:** `-` (``)
- **Reference carrier:** `-`
- **Custom carrier:** `` (`-`) _← omit this row if Case 1_
- **Active flash conf:** ``
- **BSP path:** ``
- **BSP version:** ``
- **Source root:** `` _← or "_not recorded_" if NA_
## BSP image layout
Top-level directories under ``:
| Directory | Present | Purpose |
|---|---|---|
| `rootfs/` | ✓ / ✗ | userspace rootfs (nvpmodel, nvfan, systemd units, etc.) |
| `bootloader/` | ✓ / ✗ | firmware blobs, BCT, MB1/MB2 dts |
| `kernel/` | ✓ / ✗ | prebuilt kernel + modules |
| `source/` | ✓ / ✗ | BSP source tree (kernel, OOT drivers, DT) |
| `tools/` | ✓ / ✗ | flashing helpers, jetson-io, kernel_flash |
| `nv_tegra/` | ✓ / ✗ | nvidia firmware tarballs, kernel-supplements |
Active flash conf ``: present at
`/` _or_ `(missing — verify before flashing)`.
### nvpmodel files matching the active SKU
Filtered from `rootfs/etc/nvpmodel/` by `nvpmodel__*.conf`:
- ``
The active variant at boot is selected by `nvpower.sh` from
`/proc/device-tree/compatible` plus super / safety state — see
`jetson-customize-nvpmodel` for the resolution rules.
## Source tree layout
(omit this whole section if `source.root_path` is `NA`/missing)
Top-level subtrees under ``:
| Subtree | Present | Purpose |
|---|---|---|
| `kernel-jammy-src/` | ✓ / ✗ | mainline 5.x kernel sources |
| `hardware/nvidia/` | ✓ / ✗ | NVIDIA platform DTs (per chip family) |
| `nvidia-oot/` | ✓ / ✗ | NVIDIA out-of-tree kernel modules |
| `nvgpu/` | ✓ / ✗ | GPU driver |
| `nvethernetrm/` | ✓ / ✗ | ethernet driver |
| `nvdisplay/` | ✓ / ✗ | display driver |
| `hwpm/` | ✓ / ✗ | hardware performance monitor |
| `kernel-devicetree/` | ✓ / ✗ | devicetree sources |
### Devicetree files for chip family ``
(omit if `kernel-devicetree/generic-dts/dts/` is absent)
Files matching `tegra*` under `kernel-devicetree/generic-dts/dts/`:
- ``
## Documents
| Field | Reference |
|---|---|
| Documents root folder | `` _or_ _not recorded_ |
| BSP / Jetson Linux developer guide | `` _or_ _not recorded_ |
| Tegra SoC Technical Reference Manual | `` _or_ _not recorded_ |
| Jetson module data sheet | `` _or_ _not recorded_ |
| Jetson module design guide (PDG) | `` _or_ _not recorded_ |
| Jetson module thermal design guide (TDG) | `` _or_ _not recorded_ |
| Jetson module schematic | `` _or_ _not recorded_ |
| Reference carrier board specification | `` _or_ _not recorded_ |
| Reference carrier schematic | `` _or_ _not recorded_ |
| Custom carrier schematic | `` _or_ _not recorded / N/A (no custom carrier)_ |
| Reference-devkit pinmux spreadsheet | `` _or_ _not recorded_ |
| Custom-carrier pinmux spreadsheet | `` _or_ _not recorded / N/A (no custom carrier)_ |
(Local paths are tagged ` (missing)` if absent on disk. URLs are
recorded verbatim and not fetched. If `doc_root` is set, also tag
` (missing)` on it if the directory itself is gone — that signals
auto-mapping in `jetson-link-docs` won't work on a re-run.)
## How to refresh this file
Re-run `jetson-generate-kb` whenever any of the following changes:
- the BSP at `` is re-extracted, patched, or upgraded,
- the source tree at `` changes,
- the active profile's `bsp_image.*` or `documents.*` fields are edited.
This file is overwritten on every run. Do not hand-edit it — edit the
source data (profile YAML or the BSP tree) and re-run instead.
확인
간략한 요약 출력:
- 출력 경로:
target-platform/..md - BSP 최상위 디렉터리 수 및 어떤 정규 하위 트리가 존재했는지/존재하지 않았는지.
- 활성 SKU에 대한 nvpmodel 일치 횟수.
- 소스 트리 섹션: 렌더링되었는지 또는 건너뛴지(및 그 이유).
- 문서: 기록된 필드 수, 로컬 경로 중 플래그가 지정된 개수
(missing).
하류 스킬이 이 실행을 트리거한 경우, 사용자에게 원래 요청을 다시 보내도록 안내하십시오.
주의 사항
- KB는 실시간 보기가 아닌 스냅샷입니다. 날짜가 표시된 헤더가 기준이 됩니다. 오늘 날짜와 일치하지 않는다면, BSP/소스/문서가 내부에서 변경되었을 수 있습니다. 필요 시 다시 실행하십시오.
- 항상 기존 내용을 덮어씁니다. 이전 KB를 덮어쓰기 전에
별도의 확인 메시지가 표시되지 않습니다
target-platform/. 이는 의도된 동작입니다 — 재실행 가능성은 이 기능의 핵심 목적이기 때문입니다. 사용자에게 파일을 수동으로 편집하지 말고 프로필 YAML이나 BSP를 편집한 후 다시 생성하도록 안내하십시오..md bsp_image.root_path = NA인 경우 실행을 거부합니다. BSP 경로가 없는 프로필은 내용이 없는 KB를 생성합니다. 이러한 프로필을 작성하지 말고, 대신 사용자에게 프로필 YAML을 참조하여 직접 입력하도록 안내하십시오.- URL 가져오기 기능은 없습니다. 문서 URL은 있는 그대로 기록됩니다. 심층 색인화 (HTTP HEAD, PDF 구문 분석)로 확장하는 것은 v0.1의 범위 밖입니다.
- 재귀적 스캔은 수행하지 않습니다. 검색은 디렉터리당 한 단계 깊이만 수행되며, 최대 하나의 대상 글로브(nvpmodel + devicetree)만 사용됩니다. 전체 BSP를 훑지 마십시오 — 용량이 방대하고 속도가 느립니다.
- KB의 가독성을 유지하기 위해 디바이스 트리 목록을 30개 항목으로 제한합니다. 중간이 잘릴 경우 "N개 중 처음 30개"라고 표시합니다.
- 설정 스킬에서 자동으로 호출하지 마십시오. 설정 요약에서 이 스킬을 실행할 것을 제안할 수는 있으나, 사용자가 수동으로 선택해야 합니다. 자동 실행은 I/O 단계를 숨기게 되어 BSP/문서 경로가 불완전한 사용자에게 혼란을 줄 수 있습니다.
- 파일명 충돌 위험. 이 KB는
target-platform/바로.md 에 위치합니다. 프로필 목록 로직에서 실수로 파일을.yaml .md파일을 읽지 않도록 하십시오.jetson-set-target(이미 필터링되어*.yaml로 필터링되어 있지만, 새 파일 유형을 추가하기 전에 확인하십시오). - 칩 패밀리 매핑이 불완전합니다. 향후 매핑에
포함되지 않은 모듈 SKU가 추가될 경우, 디바이스 트리 필터링 단계가 건너뜁니다 — KB
에는
chip: unknown가짜접두사를 임의로 생성하는 대신이를 기록할 것입니다. 새로운 칩이 도입되면 이 스킬의 칩 패밀리 테이블을 업데이트하십시오.
필수 조건
- 활성 대상 프로필은
../../context/target-platform-contract.md. bsp_image:기록된 대로해결된 활성 타겟 프로필이 있어야 합니다./jetson-init-image; 이것이 유일한 필수 디스크 상의 트리입니다. 만약source.root_path가 누락된 경우, 소스 트리 섹션 없이 KB를 렌더링합니다.- 선택 사항:
/jetson-init-source이미 해결됨source:사용자가 소스 트리 탐색을 포함하기를 원할 때. - 선택 사항이지만 권장:
/jetson-link-docs이미documents:블록을 작성했습니다.
제한 사항
- BSP 및 소스 트리에 대해서는 읽기 전용으로 처리되며, 프로필 YAML을 편집하거나 소스 파일을 재작성하지 않습니다.
- 디바이스트리 파일 열거는 이 스킬 내부의 칩 패밀리 테이블에
의존하며, 알 수 없는 모듈 SKU는 임의의 접두사 대신
chip: unknown가공된 접두사가 아닌 상태로 KB에 등록됩니다. - 파일 이름 구조는
target-platform/프로필 YAML 바로 옆에 위치하도록 고정되어 있습니다. YAML의 이름을 변경하면 링크가 무효화됩니다..md
문제 해결
bsp_image.root_path찾을 수 없음 — 다시 실행/jetson-init-image그래서 BSP가 추출되고 경로가 기록된 후 KB를 재생성합니다.- 소스 트리 탐색에서 잘못된 하위 트리가 선택됨 —
source.root_path재정의 내용이 오래된 경우; 다시 실행하거나/jetson-init-source또는 프로필 필드를 수정하십시오. documents:KB에서 블록이 누락됨 —/jetson-link-docs실행된 적 없습니다; KB는 경로를 추측하기보다는 "바인딩된 문서 없음"으로 되돌아가게 됩니다.- 디바이스트리 섹션이 짧거나 비어 있음 — 칩 패밀리 테이블이 활성 SoC를 포함하지 않음; 테이블을 업데이트하고 다시 실행하십시오.
참조
../../context/target-platform-contract.md— 이 스킬이 따르는 읽기 순서 계약.../../context/bsp-customization-workflow.md— 표준 BSP/소스 서브트리 목록의 출처.../../references/platform_template.yaml— 문서 필드의 한 줄 설명 출처.../jetson-init-target/SKILL.md— 활성 대상 ID를 생성하는 형제 스킬.../jetson-init-image/SKILL.md— 이 스킬이 스캔하는 BSP 이미지 메타데이터를 생성하는 형제 스킬.../jetson-set-target/SKILL.md— 이 스킬이 해결하는 활성 포인터를 반전시키는 형제 스킬.
---
name: jetson-generate-kb
description: Generates a per-target knowledge-base markdown file by walking the BSP root and source tree, documenting image layout, source tree structure, and document references.
license: Apache-2.0
---
# Generate Target Knowledge Base
## Overview
This skill produces a **per-profile** markdown reference at
`target-platform/<profile-stem>.md` (sibling to the profile YAML). It
bundles three things into one file so a future Claude session — or the
user — can see the shape of the active target without re-walking the
filesystem:
1. **BSP image layout** — top-level directories under
`bsp_image.root_path`, presence of canonical subtrees (`rootfs/`,
`bootloader/`, `source/`, …), and the nvpmodel variants matching
the active module SKU.
2. **Source tree layout** — top-level subtrees under
`source.root_path` (`kernel-jammy-src/`, `hardware/nvidia/`,
`nvidia-oot/`, etc.) and devicetree files matching the chip family.
3. **Documents** — the `documents.*` references recorded in the
profile, with local-path existence checks and one-line descriptions.
The KB is a **snapshot**, dated in its header. Re-run this skill
whenever the underlying data changes — it is intentionally
re-runnable and overwrites the previous KB on each run.
## When to invoke
- After `jetson-init-image` prepares the BSP for a freshly authored
profile.
- After re-extracting a BSP archive or applying patches under
`bsp_image.root_path`.
- After updating the source tree at `source.root_path`.
- After editing `bsp_image.*` or `documents.*` in the profile YAML.
- When a downstream skill asks "where is X in this BSP?" and you'd
rather check the KB than re-walk the tree.
## Procedure
### Resolve the active target
Resolve the active profile per the contract in
[`../../context/target-platform-contract.md`](../../context/target-platform-contract.md);
cache it in memory — the rest of the skill consumes only this
profile. Record `<profile-stem>` (the bare filename minus `.yaml`)
as the KB output filename stem.
### Validate inputs
| Field | Required for KB? | If missing |
|---|---|---|
| `bsp_image.root_path` | **yes** | Refuse. A KB with no BSP root to scan is just a YAML restatement; tell the user to run `jetson-init-image` or hand-edit the profile. |
| `source.root_path` | no | Skip the source-tree section; note "source_root not recorded" in the KB. |
| `documents.*` | no | Render an empty Documents table with a "no documents recorded" note. |
If `bsp_image.root_path` is set but the directory does not exist on disk,
refuse with a clear message — do not fabricate a layout for a path
that isn't there.
### BSP discovery (under `bsp_image.root_path`)
Run **only** the following cheap operations — no recursive scans, no
file content reads beyond directory listings:
1. `ls -1` of `bsp_image.root_path` (one level deep). Record which
directories are present.
2. For each canonical subtree below, mark present/absent:
`rootfs/`, `bootloader/`, `kernel/`, `source/`, `tools/`,
`nv_tegra/`.
3. Verify the active `flash_config` file exists at
`<bsp_image.root_path>/<flash_config>`. Record its path or
`(missing)`.
4. List `rootfs/etc/nvpmodel/` and filter to filenames matching
`nvpmodel_<module.id>_<module.sku>*.conf`. Record each match.
Use the lower-case module id (e.g. `p3767`) and the YAML-quoted
sku string (e.g. `0001`).
### Source tree discovery (under `source.root_path`)
Skip this step entirely if `source.root_path` is `NA` or missing.
Otherwise, run only:
1. `ls -1` of `source.root_path` (one level deep).
2. For each canonical subtree below, mark present/absent:
`kernel-jammy-src/`, `hardware/nvidia/`, `nvidia-oot/`, `nvgpu/`,
`nvethernetrm/`, `nvdisplay/`, `hwpm/`, `kernel-devicetree/`.
3. If `kernel-devicetree/generic-dts/dts/` exists, list filenames
matching `tegra<chip>*` where `<chip>` is the chip-family numeric
prefix (see chip-family map below). Record up to 30 hits; if more,
record the count and a "showing first 30" note.
#### Chip-family map (used in the "BSP discovery" and "Source tree discovery" steps)
Derive `<chip>` from `module.id`:
| `module.id` | Chip family | `<chip>` prefix |
|---|---|---|
| `p3701`, `p3767` | T234 — Orin | `234` |
| `p3834` | T264 — Thor | `264` |
If `module.id` is not in this table, record the chip as
`unknown (module.id=<value>)` and skip the chip-prefixed devicetree
filter.
### Documents pass
For each field in `documents.*` from the loaded profile:
1. Classify the value as **URL** (starts with `http://`, `https://`,
or `ftp://`) or **local path** (anything else).
2. For URLs: record verbatim. **Do not fetch the URL** — KB
generation must remain offline. (A future skill can promote to deep
indexing.)
3. For local paths: check `os.path.exists`. Record the path; if
missing on disk, append ` (missing)`.
The one-line description for each field comes from the marker in
[`../../references/platform_template.yaml`](../../references/platform_template.yaml)
— strip the `<OPTIONAL: …>` wrapper and use the inner text.
If the profile has no `documents:` block, render the section with a
single line: `_No documents recorded — run `jetson-link-docs`
or hand-edit the profile to add references._`
### Render and write the KB
Render the markdown using the structure below. Use today's date
(YYYY-MM-DD) in the header. Always overwrite any existing KB file at
the destination — do not prompt before overwriting; re-runs are the
intended use.
Destination: `target-platform/<profile-stem>.md`.
#### Rendered structure
```markdown
# Target knowledge base — <profile-stem>
> Generated <YYYY-MM-DD> from `<bsp_image.root_path>` (BSP version `<bsp_image.version>`).
> Re-run `jetson-generate-kb` after extracting a new BSP, applying
> patches, or editing profile fields. This file is a regenerated
> snapshot — do not hand-edit.
## Profile facts
- **Reference devkit:** `<reference_devkit.name>`
- **Module:** `<module.id>-<module.sku>` (`<chip family label>`)
- **Reference carrier:** `<carrier.id>-<carrier.sku>`
- **Custom carrier:** `<custom_carrier.name>` (`<custom_carrier.id>-<custom_carrier.sku>`) _← omit this row if Case 1_
- **Active flash conf:** `<flash_config>`
- **BSP path:** `<bsp_image.root_path>`
- **BSP version:** `<bsp_image.version>`
- **Source root:** `<source.root_path>` _← or "_not recorded_" if NA_
## BSP image layout
Top-level directories under `<bsp_image.root_path>`:
| Directory | Present | Purpose |
|---|---|---|
| `rootfs/` | ✓ / ✗ | userspace rootfs (nvpmodel, nvfan, systemd units, etc.) |
| `bootloader/` | ✓ / ✗ | firmware blobs, BCT, MB1/MB2 dts |
| `kernel/` | ✓ / ✗ | prebuilt kernel + modules |
| `source/` | ✓ / ✗ | BSP source tree (kernel, OOT drivers, DT) |
| `tools/` | ✓ / ✗ | flashing helpers, jetson-io, kernel_flash |
| `nv_tegra/` | ✓ / ✗ | nvidia firmware tarballs, kernel-supplements |
Active flash conf `<flash_config>`: present at
`<bsp_image.root_path>/<flash_config>` _or_ `(missing — verify before flashing)`.
### nvpmodel files matching the active SKU
Filtered from `rootfs/etc/nvpmodel/` by `nvpmodel_<module.id>_<module.sku>*.conf`:
- `<each match, one per line>`
The active variant at boot is selected by `nvpower.sh` from
`/proc/device-tree/compatible` plus super / safety state — see
`jetson-customize-nvpmodel` for the resolution rules.
## Source tree layout
(omit this whole section if `source.root_path` is `NA`/missing)
Top-level subtrees under `<source.root_path>`:
| Subtree | Present | Purpose |
|---|---|---|
| `kernel-jammy-src/` | ✓ / ✗ | mainline 5.x kernel sources |
| `hardware/nvidia/` | ✓ / ✗ | NVIDIA platform DTs (per chip family) |
| `nvidia-oot/` | ✓ / ✗ | NVIDIA out-of-tree kernel modules |
| `nvgpu/` | ✓ / ✗ | GPU driver |
| `nvethernetrm/` | ✓ / ✗ | ethernet driver |
| `nvdisplay/` | ✓ / ✗ | display driver |
| `hwpm/` | ✓ / ✗ | hardware performance monitor |
| `kernel-devicetree/` | ✓ / ✗ | devicetree sources |
### Devicetree files for chip family `<chip>`
(omit if `kernel-devicetree/generic-dts/dts/` is absent)
Files matching `tegra<chip>*` under `kernel-devicetree/generic-dts/dts/`:
- `<each match, one per line — cap at 30, then a "first 30 of N" note>`
## Documents
| Field | Reference |
|---|---|
| Documents root folder | `<doc_root>` _or_ _not recorded_ |
| BSP / Jetson Linux developer guide | `<bsp_developer_guide>` _or_ _not recorded_ |
| Tegra SoC Technical Reference Manual | `<soc_tech_ref_manual>` _or_ _not recorded_ |
| Jetson module data sheet | `<module_data_sheet>` _or_ _not recorded_ |
| Jetson module design guide (PDG) | `<module_design_guide>` _or_ _not recorded_ |
| Jetson module thermal design guide (TDG) | `<module_thermal_design_guide>` _or_ _not recorded_ |
| Jetson module schematic | `<module_schematic>` _or_ _not recorded_ |
| Reference carrier board specification | `<carrier_board_spec>` _or_ _not recorded_ |
| Reference carrier schematic | `<carrier_schematic>` _or_ _not recorded_ |
| Custom carrier schematic | `<custom_carrier_schematic>` _or_ _not recorded / N/A (no custom carrier)_ |
| Reference-devkit pinmux spreadsheet | `<ref_devkit_pinmux_xls>` _or_ _not recorded_ |
| Custom-carrier pinmux spreadsheet | `<custom_carrier_pinmux_xls>` _or_ _not recorded / N/A (no custom carrier)_ |
(Local paths are tagged ` (missing)` if absent on disk. URLs are
recorded verbatim and not fetched. If `doc_root` is set, also tag
` (missing)` on it if the directory itself is gone — that signals
auto-mapping in `jetson-link-docs` won't work on a re-run.)
## How to refresh this file
Re-run `jetson-generate-kb` whenever any of the following changes:
- the BSP at `<bsp_image.root_path>` is re-extracted, patched, or upgraded,
- the source tree at `<source.root_path>` changes,
- the active profile's `bsp_image.*` or `documents.*` fields are edited.
This file is overwritten on every run. Do not hand-edit it — edit the
source data (profile YAML or the BSP tree) and re-run instead.
```
### Confirm
Print a short summary:
- Output path: `target-platform/<profile-stem>.md`.
- BSP top-level directory count and which canonical subtrees were
present / absent.
- nvpmodel match count for the active SKU.
- Source-tree section: rendered or skipped (and why).
- Documents: count of recorded fields, count of local paths flagged
`(missing)`.
If a downstream skill triggered this run, tell the user to re-issue
their original request.
## Gotchas
- **The KB is a snapshot, not a live view.** The dated header is
authoritative — if it doesn't match today, the BSP/source/docs may
have changed underneath. Re-run on demand.
- **Always overwrites.** No prompt before clobbering the previous KB
at `target-platform/<profile-stem>.md`. This is intentional —
re-runnability is the whole point. Tell the user not to hand-edit
the file; edit profile YAML or the BSP and regenerate.
- **Refuses on `bsp_image.root_path = NA`.** A profile with no BSP path
produces a content-free KB. Do not write one — instead, point the
user at the profile YAML to fill in.
- **No URL fetching.** Document URLs are recorded verbatim. Promoting
to deep indexing (HTTP HEAD, PDF parsing) is out of scope for v0.1.
- **No recursive scans.** Discovery is one level deep per directory,
with at most one targeted glob (nvpmodel + devicetree). Never walk
the entire BSP — it's huge and slow.
- **Cap devicetree listings at 30 entries** to keep the KB readable.
Show "first 30 of N" when truncating.
- **Don't auto-invoke from setup skills.** Setup may suggest running
this skill in its summary, but the user opts in. Auto-running hides
the I/O step and surprises users whose BSP/doc paths are incomplete.
- **Filename collision risk.** The KB sits at
`target-platform/<stem>.md` next to `<stem>.yaml`. Don't accidentally
read `.md` files in the profile-listing logic of
`jetson-set-target` (it already filters to `*.yaml`, but check
before adding new file types).
- **Chip-family map is short.** If a future module SKU is added that
isn't in the map, the devicetree filter step is skipped — the KB
will note `chip: unknown` rather than fabricate a `<chip>` prefix.
Update this skill's chip-family table when a new chip lands.
## Prerequisites
- Active target profile resolved per
`../../context/target-platform-contract.md`.
- `bsp_image:` recorded by `/jetson-init-image`; this is the only
required on-disk tree. If `source.root_path` is missing, render the KB
without the source-tree section.
- Optional: `/jetson-init-source` already resolved `source:` when the
user wants source-tree discovery included.
- Optional but recommended: `/jetson-link-docs` already wrote the
`documents:` block.
## Limitations
- Read-only against the BSP and source trees; never edits the profile
YAML or rewrites source files.
- Devicetree-file enumeration depends on the chip-family table inside
this skill; an unknown module SKU lands in the KB as `chip: unknown`
rather than a fabricated prefix.
- Filename layout is fixed at `target-platform/<stem>.md` to stay next
to the profile YAML; renaming the YAML invalidates the link.
## Troubleshooting
- **`bsp_image.root_path` not found** — re-run `/jetson-init-image` so
the BSP is extracted and the path is recorded before regenerating
the KB.
- **Source tree walk picks up wrong subtrees** — `source.root_path`
override is stale; rerun `/jetson-init-source` or correct the
profile field.
- **`documents:` block missing from the KB** — `/jetson-link-docs` was
never run; the KB falls back to "no documents bound" rather than
guessing paths.
- **Devicetree section short / empty** — chip-family table doesn't
cover the active SoC; update the table and rerun.
## References
- [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md) — read-order contract this skill follows.
- [`../../context/bsp-customization-workflow.md`](../../context/bsp-customization-workflow.md) — origin of the canonical BSP/source subtree list.
- [`../../references/platform_template.yaml`](../../references/platform_template.yaml) — source of the documents-field one-line descriptions.
- [`../jetson-init-target/SKILL.md`](../jetson-init-target/SKILL.md) — sibling skill that authors the active target identity.
- [`../jetson-init-image/SKILL.md`](../jetson-init-image/SKILL.md) — sibling skill that authors the BSP image metadata this skill scans.
- [`../jetson-set-target/SKILL.md`](../jetson-set-target/SKILL.md) — sibling skill that flips the active pointer this skill resolves.
모든 파일
5개 파일jetson-generate-kb 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/NVIDIA/skills/tree/main/skills/jetson-generate-kb # Copy SKILL.md to your .claude/skills/ directory
복사





집
