jetson-generate-kb
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGenerate Target Knowledge Base
生成目标知识库
Overview
概述
This skill produces a per-profile markdown reference at
(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:
target-platform/<profile-stem>.md- BSP image layout — top-level directories under
, presence of canonical subtrees (
bsp_image.root_path,rootfs/,bootloader/, …), and the nvpmodel variants matching the active module SKU.source/ - Source tree layout — top-level subtrees under
(
source.root_path,kernel-jammy-src/,hardware/nvidia/, etc.) and devicetree files matching the chip family.nvidia-oot/ - Documents — the references recorded in the profile, with local-path existence checks and one-line descriptions.
documents.*
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.
本skill会在(与配置文件YAML同级目录)生成一份按配置文件划分的Markdown参考文档。它将三类信息整合到一个文件中,以便后续Claude会话或用户无需重新遍历文件系统,即可查看当前目标的结构:
target-platform/<profile-stem>.md- BSP镜像布局 —— 下的顶级目录、标准子树(
bsp_image.root_path、rootfs/、bootloader/等)的存在情况,以及与当前模块SKU匹配的nvpmodel变体。source/ - 源码树布局 —— 下的顶级子树(
source.root_path、kernel-jammy-src/、hardware/nvidia/等),以及与芯片系列匹配的设备树文件。nvidia-oot/ - 文档 —— 配置文件中记录的引用,包含本地路径存在性检查和单行描述。
documents.*
该知识库是一份快照,标题中会标注日期。每当底层数据发生变化时,可重新运行本skill——它支持重复运行,每次运行都会覆盖之前的知识库。
When to invoke
调用时机
- After prepares the BSP for a freshly authored profile.
jetson-init-image - 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 or
bsp_image.*in the profile YAML.documents.* - When a downstream skill asks "where is X in this BSP?" and you'd rather check the KB than re-walk the tree.
- 在为新创建的配置文件准备好BSP之后。
jetson-init-image - 在重新提取BSP归档文件或在下应用补丁之后。
bsp_image.root_path - 在更新下的源码树之后。
source.root_path - 在编辑配置文件YAML中的或
bsp_image.*字段之后。documents.* - 当下游skill询问“此BSP中X位于何处?”,且你更倾向于查看知识库而非重新遍历树结构时。
Procedure
流程
Resolve the active target
解析当前目标
Resolve the active profile per the contract in
;
cache it in memory — the rest of the skill consumes only this
profile. Record (the bare filename minus )
as the KB output filename stem.
../../context/target-platform-contract.md<profile-stem>.yaml根据中的约定解析当前配置文件;将其缓存到内存中——本skill的其余部分仅使用该配置文件。将(不带的裸文件名)记录为知识库输出文件的名称前缀。
../../context/target-platform-contract.md<profile-stem>.yamlValidate inputs
验证输入
| Field | Required for KB? | If missing |
|---|---|---|
| yes | Refuse. A KB with no BSP root to scan is just a YAML restatement; tell the user to run |
| no | Skip the source-tree section; note "source_root not recorded" in the KB. |
| no | Render an empty Documents table with a "no documents recorded" note. |
If 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_image.root_path| 字段 | 知识库是否必需? | 缺失时的处理 |
|---|---|---|
| 是 | 拒绝执行。没有可扫描的BSP根目录的知识库只是YAML内容的重复;告知用户运行 |
| 否 | 跳过源码树部分;在知识库中注明“source_root未记录”。 |
| 否 | 渲染一个空的文档表格,并标注“未记录任何文档”。 |
如果已设置但磁盘上不存在该目录,将明确拒绝执行——不会为不存在的路径生成布局信息。
bsp_image.root_pathBSP discovery (under bsp_image.root_path
)
bsp_image.root_pathBSP发现(在bsp_image.root_path
下)
bsp_image.root_pathRun only the following cheap operations — no recursive scans, no
file content reads beyond directory listings:
- of
ls -1(one level deep). Record which directories are present.bsp_image.root_path - For each canonical subtree below, mark present/absent:
,
rootfs/,bootloader/,kernel/,source/,tools/.nv_tegra/ - Verify the active file exists at
flash_config. Record its path or<bsp_image.root_path>/<flash_config>.(missing) - List and filter to filenames matching
rootfs/etc/nvpmodel/. Record each match. Use the lower-case module id (e.g.nvpmodel_<module.id>_<module.sku>*.conf) and the YAML-quoted sku string (e.g.p3767).0001
仅执行以下轻量操作——不进行递归扫描,除目录列表外不读取任何文件内容:
- 对执行
bsp_image.root_path(仅一级目录)。记录存在的目录。ls -1 - 针对以下每个标准子树,标记其存在/缺失状态:、
rootfs/、bootloader/、kernel/、source/、tools/。nv_tegra/ - 验证当前文件是否存在于
flash_config。记录其路径或<bsp_image.root_path>/<flash_config>。(missing) - 列出下的文件,并筛选出匹配
rootfs/etc/nvpmodel/的文件名。记录每个匹配项。使用小写的模块ID(例如nvpmodel_<module.id>_<module.sku>*.conf)和YAML引用的SKU字符串(例如p3767)。0001
Source tree discovery (under source.root_path
)
source.root_path源码树发现(在source.root_path
下)
source.root_pathSkip this step entirely if is or missing.
Otherwise, run only:
source.root_pathNA- of
ls -1(one level deep).source.root_path - For each canonical subtree below, mark present/absent:
,
kernel-jammy-src/,hardware/nvidia/,nvidia-oot/,nvgpu/,nvethernetrm/,nvdisplay/,hwpm/.kernel-devicetree/ - If exists, list filenames matching
kernel-devicetree/generic-dts/dts/wheretegra<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>
如果为或缺失,则完全跳过此步骤。否则,仅执行:
source.root_pathNA- 对执行
source.root_path(仅一级目录)。ls -1 - 针对以下每个标准子树,标记其存在/缺失状态:、
kernel-jammy-src/、hardware/nvidia/、nvidia-oot/、nvgpu/、nvethernetrm/、nvdisplay/、hwpm/。kernel-devicetree/ - 如果存在,列出匹配
kernel-devicetree/generic-dts/dts/的文件名,其中tegra<chip>*是芯片系列的数字前缀(见下方芯片系列映射表)。最多记录30个匹配项;如果超过30个,记录总数并标注“显示前30个”。<chip>
Chip-family map (used in the "BSP discovery" and "Source tree discovery" steps)
芯片系列映射表(用于“BSP发现”和“源码树发现”步骤)
Derive from :
<chip>module.id | Chip family | |
|---|---|---|
| T234 — Orin | |
| T264 — Thor | |
If is not in this table, record the chip as
and skip the chip-prefixed devicetree
filter.
module.idunknown (module.id=<value>)从推导:
module.id<chip> | 芯片系列 | |
|---|---|---|
| T234 — Orin | |
| T264 — Thor | |
如果不在此表中,记录芯片为并跳过芯片前缀的设备树筛选。
module.idunknown (module.id=<value>)Documents pass
文档处理
For each field in from the loaded profile:
documents.*- Classify the value as URL (starts with ,
http://, orhttps://) or local path (anything else).ftp:// - For URLs: record verbatim. Do not fetch the URL — KB generation must remain offline. (A future skill can promote to deep indexing.)
- For local paths: check . Record the path; if missing on disk, append
os.path.exists.(missing)
The one-line description for each field comes from the marker in
— strip the wrapper and use the inner text.
../../references/platform_template.yaml<OPTIONAL: …>If the profile has no block, render the section with a
single line: jetson-link-docs
documents:_No documents recorded — run or hand-edit the profile to add references._针对加载的配置文件中下的每个字段:
documents.*- 将值分类为URL(以、
http://或https://开头)或本地路径(其他所有情况)。ftp:// - 对于URL:原样记录。请勿获取URL内容——知识库生成必须保持离线状态。(后续skill可扩展为深度索引。)
- 对于本地路径:检查。记录路径;如果磁盘上不存在,追加
os.path.exists。(missing)
每个字段的单行描述来自中的标记——去除包装,使用内部文本。
../../references/platform_template.yaml<OPTIONAL: …>如果配置文件中没有块,渲染该部分时显示单行内容:jetson-link-docs
documents:_未记录任何文档 —— 运行或手动编辑配置文件添加引用。_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使用以下结构渲染Markdown。在标题中使用当前日期(YYYY-MM-DD)。始终覆盖目标位置的现有知识库文件——覆盖前无需提示;重复运行是设计的预期用途。
目标路径:。
target-platform/<profile-stem>.mdRendered structure
渲染结构
markdown
undefinedmarkdown
undefinedTarget knowledge base — <profile-stem>
Target knowledge base — <profile-stem>
Generated <YYYY-MM-DD> from(BSP version<bsp_image.root_path>). Re-run<bsp_image.version>after extracting a new BSP, applying patches, or editing profile fields. This file is a regenerated snapshot — do not hand-edit.jetson-generate-kb
Generated <YYYY-MM-DD> from(BSP version<bsp_image.root_path>). Re-run<bsp_image.version>after extracting a new BSP, applying patches, or editing profile fields. This file is a regenerated snapshot — do not hand-edit.jetson-generate-kb
Profile facts
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>) ← omit this row if Case 1<custom_carrier.id>-<custom_carrier.sku> - Active flash conf:
<flash_config> - BSP path:
<bsp_image.root_path> - BSP version:
<bsp_image.version> - Source root: ← or "not recorded" if NA
<source.root_path>
- Reference devkit:
<reference_devkit.name> - Module: (
<module.id>-<module.sku>)<chip family label> - Reference carrier:
<carrier.id>-<carrier.sku> - Custom carrier: (
<custom_carrier.name>) ← omit this row if Case 1<custom_carrier.id>-<custom_carrier.sku> - Active flash conf:
<flash_config> - BSP path:
<bsp_image.root_path> - BSP version:
<bsp_image.version> - Source root: ← or "not recorded" if NA
<source.root_path>
BSP image layout
BSP image layout
Top-level directories under :
<bsp_image.root_path>| Directory | Present | Purpose |
|---|---|---|
| ✓ / ✗ | userspace rootfs (nvpmodel, nvfan, systemd units, etc.) |
| ✓ / ✗ | firmware blobs, BCT, MB1/MB2 dts |
| ✓ / ✗ | prebuilt kernel + modules |
| ✓ / ✗ | BSP source tree (kernel, OOT drivers, DT) |
| ✓ / ✗ | flashing helpers, jetson-io, kernel_flash |
| ✓ / ✗ | nvidia firmware tarballs, kernel-supplements |
Active flash conf : present at
or .
<flash_config><bsp_image.root_path>/<flash_config>(missing — verify before flashing)Top-level directories under :
<bsp_image.root_path>| Directory | Present | Purpose |
|---|---|---|
| ✓ / ✗ | userspace rootfs (nvpmodel, nvfan, systemd units, etc.) |
| ✓ / ✗ | firmware blobs, BCT, MB1/MB2 dts |
| ✓ / ✗ | prebuilt kernel + modules |
| ✓ / ✗ | BSP source tree (kernel, OOT drivers, DT) |
| ✓ / ✗ | flashing helpers, jetson-io, kernel_flash |
| ✓ / ✗ | nvidia firmware tarballs, kernel-supplements |
Active flash conf : present at
or .
<flash_config><bsp_image.root_path>/<flash_config>(missing — verify before flashing)nvpmodel files matching the active SKU
nvpmodel files matching the active SKU
Filtered from by :
rootfs/etc/nvpmodel/nvpmodel_<module.id>_<module.sku>*.conf<each match, one per line>
The active variant at boot is selected by from
plus super / safety state — see
for the resolution rules.
nvpower.sh/proc/device-tree/compatiblejetson-customize-nvpmodelFiltered from by :
rootfs/etc/nvpmodel/nvpmodel_<module.id>_<module.sku>*.conf<each match, one per line>
The active variant at boot is selected by from
plus super / safety state — see
for the resolution rules.
nvpower.sh/proc/device-tree/compatiblejetson-customize-nvpmodelSource tree layout
Source tree layout
(omit this whole section if is /missing)
source.root_pathNATop-level subtrees under :
<source.root_path>| Subtree | Present | Purpose |
|---|---|---|
| ✓ / ✗ | mainline 5.x kernel sources |
| ✓ / ✗ | NVIDIA platform DTs (per chip family) |
| ✓ / ✗ | NVIDIA out-of-tree kernel modules |
| ✓ / ✗ | GPU driver |
| ✓ / ✗ | ethernet driver |
| ✓ / ✗ | display driver |
| ✓ / ✗ | hardware performance monitor |
| ✓ / ✗ | devicetree sources |
(omit this whole section if is /missing)
source.root_pathNATop-level subtrees under :
<source.root_path>| Subtree | Present | Purpose |
|---|---|---|
| ✓ / ✗ | mainline 5.x kernel sources |
| ✓ / ✗ | NVIDIA platform DTs (per chip family) |
| ✓ / ✗ | NVIDIA out-of-tree kernel modules |
| ✓ / ✗ | GPU driver |
| ✓ / ✗ | ethernet driver |
| ✓ / ✗ | display driver |
| ✓ / ✗ | hardware performance monitor |
| ✓ / ✗ | devicetree sources |
Devicetree files for chip family <chip>
<chip>Devicetree files for chip family <chip>
<chip>(omit if is absent)
kernel-devicetree/generic-dts/dts/Files matching under :
tegra<chip>*kernel-devicetree/generic-dts/dts/<each match, one per line — cap at 30, then a "first 30 of N" note>
(omit if is absent)
kernel-devicetree/generic-dts/dts/Files matching under :
tegra<chip>*kernel-devicetree/generic-dts/dts/<each match, one per line — cap at 30, then a "first 30 of N" note>
Documents
Documents
| Field | Reference |
|---|---|
| Documents root folder | |
| BSP / Jetson Linux developer guide | |
| Tegra SoC Technical Reference Manual | |
| Jetson module data sheet | |
| Jetson module design guide (PDG) | |
| Jetson module thermal design guide (TDG) | |
| Jetson module schematic | |
| Reference carrier board specification | |
| Reference carrier schematic | |
| Custom carrier schematic | |
| Reference-devkit pinmux spreadsheet | |
| Custom-carrier pinmux spreadsheet | |
(Local paths are tagged if absent on disk. URLs are
recorded verbatim and not fetched. If is set, also tag
on it if the directory itself is gone — that signals
auto-mapping in won't work on a re-run.)
(missing)doc_root (missing)jetson-link-docs| Field | Reference |
|---|---|
| Documents root folder | |
| BSP / Jetson Linux developer guide | |
| Tegra SoC Technical Reference Manual | |
| Jetson module data sheet | |
| Jetson module design guide (PDG) | |
| Jetson module thermal design guide (TDG) | |
| Jetson module schematic | |
| Reference carrier board specification | |
| Reference carrier schematic | |
| Custom carrier schematic | |
| Reference-devkit pinmux spreadsheet | |
| Custom-carrier pinmux spreadsheet | |
(Local paths are tagged if absent on disk. URLs are
recorded verbatim and not fetched. If is set, also tag
on it if the directory itself is gone — that signals
auto-mapping in won't work on a re-run.)
(missing)doc_root (missing)jetson-link-docsHow to refresh this file
How to refresh this file
Re-run whenever any of the following changes:
jetson-generate-kb- the BSP at is re-extracted, patched, or upgraded,
<bsp_image.root_path> - the source tree at changes,
<source.root_path> - the active profile's or
bsp_image.*fields are edited.documents.*
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.
undefinedRe-run whenever any of the following changes:
jetson-generate-kb- the BSP at is re-extracted, patched, or upgraded,
<bsp_image.root_path> - the source tree at changes,
<source.root_path> - the active profile's or
bsp_image.*fields are edited.documents.*
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.
undefinedConfirm
确认
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.
打印简短摘要:
- 输出路径:。
target-platform/<profile-stem>.md - BSP顶级目录数量,以及哪些标准子树存在/缺失。
- 与当前SKU匹配的nvpmodel文件数量。
- 源码树部分:已渲染或已跳过(及原因)。
- 文档:已记录字段的数量,标记为的本地路径数量。
(missing)
如果是由下游skill触发的本次运行,告知用户重新发出原始请求。
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 . 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.
target-platform/<profile-stem>.md - Refuses on . 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.
bsp_image.root_path = NA - 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
next to
target-platform/<stem>.md. Don't accidentally read<stem>.yamlfiles in the profile-listing logic of.md(it already filters tojetson-set-target, but check before adding new file types).*.yaml - 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 rather than fabricate a
chip: unknownprefix. Update this skill's chip-family table when a new chip lands.<chip>
- 知识库是快照,不是实时视图。标题中的日期是权威依据——如果日期与当前不符,BSP/源码/文档可能已在底层发生变化。按需重新运行即可。
- 始终覆盖。覆盖下的旧知识库前不会提示。这是故意设计的——可重复运行是核心特性。告知用户请勿手动编辑该文件;如需修改,请编辑配置文件YAML或BSP树后重新生成。
target-platform/<profile-stem>.md - 当时拒绝执行。没有BSP路径的配置文件生成的知识库无实质内容。请勿生成此类知识库——而是引导用户填写配置文件YAML。
bsp_image.root_path = NA - 不获取URL内容。文档URL会原样记录。v0.1版本不支持深度索引(HTTP HEAD请求、PDF解析)。
- 不进行递归扫描。发现操作仅针对每个目录的一级内容,最多执行一次定向匹配(nvpmodel和设备树)。绝不遍历整个BSP——其体积庞大且速度缓慢。
- 设备树列表最多显示30个条目,以保持知识库的可读性。截断时显示“前30个,共N个”。
- 不要从设置类skill自动调用。设置类skill可在摘要中建议运行本skill,但需由用户主动选择。自动运行会隐藏I/O步骤,且可能让BSP/文档路径不完整的用户感到意外。
- 存在文件名冲突风险。知识库位于,与
target-platform/<stem>.md同级。请勿在<stem>.yaml的配置文件列表逻辑中误读jetson-set-target文件(当前已筛选为.md,但添加新文件类型前请检查)。*.yaml - 芯片系列映射表范围有限。如果未来新增的模块SKU不在映射表中,设备树筛选步骤会被跳过——知识库会标注,而非生成虚构的
chip: unknown前缀。新增芯片时需更新本skill的芯片系列表。<chip>
Prerequisites
前置条件
- Active target profile resolved per
.
../../context/target-platform-contract.md - recorded by
bsp_image:; this is the only required on-disk tree. If/jetson-init-imageis missing, render the KB without the source-tree section.source.root_path - Optional: already resolved
/jetson-init-sourcewhen the user wants source-tree discovery included.source: - Optional but recommended: already wrote the
/jetson-link-docsblock.documents:
- 已根据解析出当前目标配置文件。
../../context/target-platform-contract.md - 已记录
/jetson-init-image;这是唯一必需的磁盘目录树。如果bsp_image:缺失,将生成不带源码树部分的知识库。source.root_path - 可选:当用户需要包含源码树发现功能时,已解析
/jetson-init-source。source: - 可选但推荐:已写入
/jetson-link-docs块。documents:
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 rather than a fabricated prefix.
chip: unknown - Filename layout is fixed at to stay next to the profile YAML; renaming the YAML invalidates the link.
target-platform/<stem>.md
- 仅对BSP和源码树执行只读操作;绝不编辑配置文件YAML或重写源码文件。
- 设备树文件枚举依赖本skill内部的芯片系列表;未知的模块SKU会在知识库中标记为,而非生成虚构前缀。
chip: unknown - 文件路径固定为,以与配置文件YAML同级;重命名YAML会破坏此关联。
target-platform/<stem>.md
Troubleshooting
故障排除
- not found — re-run
bsp_image.root_pathso the BSP is extracted and the path is recorded before regenerating the KB./jetson-init-image - Source tree walk picks up wrong subtrees — override is stale; rerun
source.root_pathor correct the profile field./jetson-init-source - block missing from the KB —
documents:was never run; the KB falls back to "no documents bound" rather than guessing paths./jetson-link-docs - Devicetree section short / empty — chip-family table doesn't cover the active SoC; update the table and rerun.
- 未找到——重新运行
bsp_image.root_path,确保BSP已提取且路径已记录,然后重新生成知识库。/jetson-init-image - 源码树遍历识别到错误的子树——覆盖信息已过期;重新运行
source.root_path或修正配置文件字段。/jetson-init-source - 知识库中缺少块——从未运行过
documents:;知识库会默认显示“未绑定任何文档”,而非猜测路径。/jetson-link-docs - 设备树部分内容简短/为空——芯片系列表未涵盖当前SoC;更新表后重新运行。
References
参考资料
- — read-order contract this skill follows.
../../context/target-platform-contract.md - — origin of the canonical BSP/source subtree list.
../../context/bsp-customization-workflow.md - — source of the documents-field one-line descriptions.
../../references/platform_template.yaml - — sibling skill that authors the active target identity.
../jetson-init-target/SKILL.md - — sibling skill that authors the BSP image metadata this skill scans.
../jetson-init-image/SKILL.md - — sibling skill that flips the active pointer this skill resolves.
../jetson-set-target/SKILL.md
- —— 本skill遵循的读取顺序约定。
../../context/target-platform-contract.md - —— 标准BSP/源码子树列表的来源。
../../context/bsp-customization-workflow.md - —— 文档字段单行描述的来源。
../../references/platform_template.yaml - —— 创建当前目标标识的同级skill。
../jetson-init-target/SKILL.md - —— 创建本skill扫描的BSP镜像元数据的同级skill。
../jetson-init-image/SKILL.md - —— 切换本skill解析的当前指针的同级skill。
../jetson-set-target/SKILL.md