jetson-flash-image
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFlash BSP Image
刷入BSP镜像
Purpose
用途
Push a promoted to a Jetson DUT by running the NVIDIA flashing toolchain ( or ) from the in-tree . The DUT must be in RCM (recovery) mode at flash time. This is the flash leg of the BSP overlay deploy chain ( → ); see the BSP overlay workflow at .
bsp_imageflash.shl4t_initrd_flash.shLinux_for_Tegra//jetson-promote-image/jetson-flash-image../../context/bsp-customization-workflow.mdDesign principle. Four invariants govern this skill; each is fully explained in the Instructions step that owns it.
- Host-side flash variables (,
<board>, flow tool, per-board<boot-dev>,.conf) are resolved from the active profile or the in-tree BSP.boardctl - Artifact paths (,
DTB_FILE, partition XML, BCTs, DRAM training) are resolved insideBPFDTB_FILE/flash.shat flash time froml4t_initrd_flash.sh/board_skuread off the DUT's EEPROM.board_FAB - The DUT's EEPROM is authoritative; the profile is an authoring-time prediction reconciled by the preflight cross-check. Empty EEPROM values are valid, not refusal triggers.
- The user explicitly confirms a printed resolution before flashing.
Out of scope: BSP customization (use the skills), promoting the overlay tracker into (use ), and producing a custom carrier's flash conf (use ).
/jetson-customize-*bsp_image/jetson-promote-image/jetson-derive-carrier通过运行内置目录下的NVIDIA刷机工具链(或),将已发布的刷入Jetson DUT。刷机时DUT必须处于RCM(恢复)模式。这是BSP叠加层部署链( → )的刷机环节;有关BSP叠加层工作流,请参阅。
Linux_for_Tegra/flash.shl4t_initrd_flash.shbsp_image/jetson-promote-image/jetson-flash-image../../context/bsp-customization-workflow.md设计原则。本技能由四个不变规则约束;每个规则在对应步骤的说明中都有详细解释。
- 主机端刷机变量(、
<board>、流程工具、单板<boot-dev>文件、.conf)从当前激活的配置文件或内置BSP中解析。boardctl - 工件路径(、
DTB_FILE、分区XML、BCT、DRAM训练文件)在刷机时由BPFDTB_FILE/flash.sh从DUT EEPROM读取的l4t_initrd_flash.sh/board_sku中解析。board_FAB - DUT的EEPROM是权威来源;配置文件是创作阶段的预测值,会通过预检交叉检查进行协调。EEPROM空值是有效的,不会触发拒绝操作。
- 用户需明确确认打印出的解析结果后才能开始刷机。
本技能不涵盖以下场景:BSP定制(使用系列技能)、将叠加层跟踪器发布为(使用)、生成自定义载板的刷机配置文件(使用)。
/jetson-customize-*bsp_image/jetson-promote-image/jetson-derive-carrierPrerequisites
前置条件
- Active target-platform profile resolved per with a populated
../../context/target-platform-contract.mdblock. Refuse and route tobsp_image:if missing./jetson-init-image - exists on the host and has been through
<bsp_image.root_path>/Linux_for_Tegra/(route toapply_binaries.shotherwise)./jetson-init-image - A per-board flash resolvable via the active-block precedence rule (
.conf→custom_carrier.flash_config). Refuse and route toreference_devkit.flash_configor/jetson-derive-carrierif absent./jetson-init-image - For the prior overlay → image leg: has already run (or a standalone re-flash with no promotion changes since the last flash).
/jetson-promote-image - A DUT cabled to the host that can be driven into RCM mode either via the in-tree or by manual recovery + reset buttons.
boardctl
- 已根据解析出激活的目标平台配置文件,且其中包含完整的
../../context/target-platform-contract.md块。如果缺失,请拒绝操作并引导用户使用bsp_image:。/jetson-init-image - 主机上存在目录,且已执行过
<bsp_image.root_path>/Linux_for_Tegra/(否则引导用户使用apply_binaries.sh)。/jetson-init-image - 可通过激活块优先级规则(→
custom_carrier.flash_config)解析出单板刷机reference_devkit.flash_config文件。如果缺失,请拒绝操作并引导用户使用.conf(自定义载板)或/jetson-derive-carrier(参考开发板)。/jetson-init-image - 对于之前的叠加层→镜像环节:已运行(或进行独立重刷,且自上次刷机后未进行任何发布变更)。
/jetson-promote-image - DUT已连接到主机,且可通过内置或手动按恢复+重置按钮进入RCM模式。
boardctl
When to invoke
调用时机
- After has updated
/jetson-promote-imageto carry the desired customizations.bsp_image - Standalone re-flash with no promotion changes since the last flash.
- DUT must be in RCM mode before invocation.
- 在更新
/jetson-promote-image以包含所需定制内容之后。bsp_image - 进行独立重刷,且自上次刷机后未进行任何发布变更。
- 调用前DUT必须处于RCM模式。
Instructions
操作步骤
Resolve target and bsp_image
bsp_image解析目标与bsp_image
bsp_imageResolve the active profile per
.
Refuse if is missing or
does not exist (route the user to ).
../../context/target-platform-contract.mdbsp_image:<bsp_image.root_path>/Linux_for_Tegra//jetson-init-image根据解析激活的配置文件。如果缺失或目录不存在,请拒绝操作并引导用户使用。
../../context/target-platform-contract.mdbsp_image:<bsp_image.root_path>/Linux_for_Tegra//jetson-init-imageResolve the flash conf path
解析刷机配置文件路径
Pick the per-board using the active-block precedence rule
from
:
when present, else
. Verify the chosen file exists under
. Refuse if absent — route
the user at (custom carrier) or
/ (reference devkit).
.conftarget-platform-contract.mdcustom_carrier.flash_configreference_devkit.flash_config<bsp_image.root_path>/Linux_for_Tegra//jetson-derive-carrier/jetson-promote-image/jetson-init-imageBind as the basename of the resolved minus the
suffix (e.g. →
). the "Invoke the flash" step's command shape consumes
this binding directly.
<board>.conf.confjetson-agx-thor-devkit.conf<board>=jetson-agx-thor-devkitNo dispatch preview at this stage. Artifact resolution (,
, partition XML, MB1 BCTs, DRAM training tables) happens
inside / during image generation,
using and read from the DUT's EEPROM in
recovery mode — not values typed in from the profile. The profile
is an authoring-time prediction; the DUT EEPROM is authoritative
at flash time. The "Preflight checks" step's EEPROM cross-check reads EEPROM and refuses the flash on profile
/ EEPROM mismatch, so passing preflight is what guarantees the
flash-time dispatch will pick the artifacts the profile expects.
DTB_FILEBPFDTB_FILEflash.shl4t_initrd_flash.shboard_skuboard_FABFor static analyses outside the flash flow that need predicted
artifact paths (KB generation, skills locating files
to edit), see the standalone snippet in
per-board conf dispatch
— that snippet is valid for BSP-side resolution but not as a
flash-time preview.
customize-*根据中的激活块优先级规则选择单板文件:如果存在则使用它,否则使用。验证所选文件是否存在于目录下。如果缺失,请拒绝操作并引导用户使用(自定义载板)或/(参考开发板)。
target-platform-contract.md.confcustom_carrier.flash_configreference_devkit.flash_config<bsp_image.root_path>/Linux_for_Tegra//jetson-derive-carrier/jetson-promote-image/jetson-init-image将绑定为解析后的文件的basename(去掉后缀),例如 → 。“调用刷机工具”步骤的命令格式会直接使用此绑定值。
<board>.conf.confjetson-agx-thor-devkit.conf<board>=jetson-agx-thor-devkit此阶段不进行调度预览。工件解析(、、分区XML、MB1 BCT、DRAM训练表)发生在/的镜像生成阶段,使用的是从恢复模式下DUT的EEPROM读取的和,而非配置文件中输入的值。配置文件是创作阶段的预测值;刷机时DUT的EEPROM才是权威来源。“预检检查”步骤中的EEPROM交叉检查会读取EEPROM,若配置文件与EEPROM不匹配则拒绝刷机,因此通过预检即可保证刷机时的调度会选择配置文件预期的工件。
DTB_FILEBPFDTB_FILEflash.shl4t_initrd_flash.shboard_skuboard_FAB对于刷机流程外需要预测工件路径的静态分析(如生成知识库、技能定位待编辑文件),请参阅单板配置文件调度中的独立代码片段——该片段适用于BSP端解析,但不能作为刷机时的预览。
customize-*Select <boot-dev>
and flash flow
<boot-dev>选择<boot-dev>
与刷机流程
<boot-dev><boot-dev>- If the active profile records the boot device, use it.
- Otherwise, prompt the user with the choices the per-board conf
actually supports (,
internal,external,nvme0n1p1, etc., depending on chip family and conf variant).mmcblk0p1
Pick the flow tool from the matrix below:
| Chip family | Default boot media | Tool |
|---|---|---|
| T234 / Orin | eMMC / SD | |
| T234 / Orin | NVMe / USB | |
| T264 / Thor | NVMe / UFS | |
Massflash and re-runs use the same tool selection but
add their respective flags.
--flash-only<boot-dev>- 如果激活的配置文件记录了启动设备,则使用该值。
- 否则,向用户提供单板配置文件实际支持的选项(如、
internal、external、nvme0n1p1等,具体取决于芯片系列和配置变体)。mmcblk0p1
根据以下矩阵选择流程工具:
| 芯片系列 | 默认启动介质 | 工具 |
|---|---|---|
| T234 / Orin | eMMC / SD | |
| T234 / Orin | NVMe / USB | |
| T264 / Thor | NVMe / UFS | |
批量刷机和重刷使用相同的工具选择,但需添加各自的标志。
--flash-onlyPut the DUT into recovery mode
将DUT置于恢复模式
Drive the device into recovery via the in-tree (preferred)
or by manually pressing the recovery button followed by the reset button.
boardctlThe full procedure — where to find under ,
how to enumerate targets and pick one (recommend ), the
exact verb to use, and the manual fallback — lives in
.
boardctlLinux_for_Tegra/-ttoporecoveryreferences/recovery-mode-boardctl.mdBind the resolved binary path as for the remainder of
this skill. Never substitute a , never invent a
target name not present in . The "Preflight checks" step's DUT-recovery verification covers — for
both paths — that the DUT actually landed in RCM mode.
<boardctl>$PATHboardctl<boardctl> -h通过内置(首选方式)或手动按恢复按钮后按重置按钮,将设备置于恢复模式。
boardctl完整步骤——包括在下找到的位置、枚举目标并选择(推荐)、使用的准确命令、手动 fallback 方法——请参阅。
Linux_for_Tegra/boardctl-ttoporecoveryreferences/recovery-mode-boardctl.md将解析后的二进制路径绑定为,供后续步骤使用。绝不能使用中的,也不能使用中未列出的目标名称。“预检检查”步骤中的DUT恢复验证会覆盖两种方式,确保DUT确实进入了RCM模式。
<boardctl>$PATHboardctl<boardctl> -hPreflight checks
预检检查
Performing the following preflight checks in the specified order,
and never skip each check. Host-side checks run first (fail early
before asking the user to flip recovery), then DUT-side checks once
the user has put the device in RCM mode. EEPROM-dependent checks come
after RCM detection, since the recovery channel is what makes the read
possible.
5.1 readiness (host-side).
bsp_image- Per-board conf exists at .
<bsp_image.root_path>/Linux_for_Tegra/<flash_config> - Artifact subtrees populated: ,
kernel/dtb/,bootloader/,bootloader/generic/BCT/.rootfs/ - has been run — check for
apply_binaries.shand the chip'srootfs/etc/nv_tegra_releasemarker package files.nvidia-l4t-bsp-* - The exact resolved /
DTB_FILE/ BCT filenames are intentionally not checked here — those are picked from EEPROM at flash time (see the "Resolve the flash conf path" step).BPFDTB_FILE - Kernel mirror invariant. When both
Imageand<LFT_DST>/kernel/Imageexist, they must be byte-identical (<LFT_DST>/rootfs/boot/Image); drift meanscmp -s's Mirror step was skipped — route back. Initramfs presence./jetson-promote-imagerequiresl4t_initrd_flash.shand<LFT_DST>/bootloader/l4t_initrd.img; absent → route to<LFT_DST>/rootfs/boot/initrd. (Freshness vs./jetson-init-imageis not checked here — owned byrootfs/lib/modules/<ver>/'s Refresh initramfs step.)/jetson-promote-image
5.2 DUT in RCM mode.
-
Verifies the outcome of the "Put the DUT into recovery mode" step (either the user-selectedinvocation or the manual fallback).
<boardctl> -t <target> -
must report at least one device matching the active chip family's recovery VID:PID pair:
lsusb -d 0955:Chip family Recovery VID:PID T23x / Orin (X is any hex digit — module variant)0955:7X23T26x / Thor 0955:7026For T23x, match on the trailing(e.g.23); a literallsusb -d 0955: | grep -E ' 0955:7.23 'check will miss valid T23x variants.0955:7023 -
Absent → if the "Put the DUT into recovery mode" step used, surface its output and refuse; if the "Put the DUT into recovery mode" step used the manual path, re-prompt the user to confirm the jumper / button and power-cycle.
boardctl -
This is the gate for everything downstream.'s image-generation phase reads EEPROM over the same recovery channel; a device that's not in RCM here will fail there too.
flash.sh
5.3 EEPROM cross-check vs. active profile.
Read and (and any additional dispatch inputs
the active chip family uses) from the DUT's EEPROM in recovery mode
using from
. The full reference —
sample output, label-to-dispatch-input mapping, empty-value
semantics, and the EEPROM-vs-profile reconciliation table — lives in
.
board_skuboard_FABsudo ./nvautoflash.sh --print_boardid<bsp_image.root_path>/Linux_for_Tegra/references/eeprom-cross-check.mdRefusal trigger is a real non-empty disagreement, never a missing
value. Empty EEPROM values are valid and not a refusal trigger. The
cross-check is the primary defense against the wrong-target /
wrong-SKU class of failures whenever both sides supply enough
information to disagree.
5.4 Default user staging (host-side, interactive).
A freshly applied has no Linux user pre-staged. Detect via
and
UID ≥ 1000. If none, issue one
with four click-to-select options: , ,
(sub-prompt for username + password), or (OEM wizard
on first boot). Non- picks run
. Full
invocation + rationale in
.
bsp_image<bsp_image.root_path>/Linux_for_Tegra/rootfs/home/rootfs/etc/passwdAskUserQuestionubuntu / ubuntunvidia / nvidiacustomskipskipl4t_create_default_user.sh --autologin --accept-licensereferences/default-user-staging.mdRecord the resolution so the "Confirm resolution" step can display it. This step is not
a refusal gate — it is a user-interaction point.
按指定顺序执行以下预检检查,不得跳过任何一项。先执行主机端检查(在要求用户切换恢复模式前尽早失败),然后在用户将设备置于RCM模式后执行DUT端检查。依赖EEPROM的检查需在检测到RCM后进行,因为恢复通道是读取EEPROM的前提。
5.1 就绪检查(主机端)
bsp_image- 单板配置文件存在于。
<bsp_image.root_path>/Linux_for_Tegra/<flash_config> - 工件子目录已填充:、
kernel/dtb/、bootloader/、bootloader/generic/BCT/。rootfs/ - 已执行——检查
apply_binaries.sh和芯片对应的rootfs/etc/nv_tegra_release标记包文件。nvidia-l4t-bsp-* - 此处故意不检查解析后的/
DTB_FILE/BCT文件名——这些文件名会在刷机时从EEPROM中选择(请参阅“解析刷机配置文件路径”步骤)。BPFDTB_FILE - 内核镜像不变规则。当
Image和<LFT_DST>/kernel/Image同时存在时,它们必须字节完全相同(使用<LFT_DST>/rootfs/boot/Image检查);若存在差异,则说明跳过了cmp -s的镜像步骤——引导用户返回该步骤。Initramfs存在检查。/jetson-promote-image需要l4t_initrd_flash.sh和<LFT_DST>/bootloader/l4t_initrd.img;如果缺失,则引导用户使用<LFT_DST>/rootfs/boot/initrd。(此处不检查与/jetson-init-image的新鲜度——由rootfs/lib/modules/<ver>/的刷新initramfs步骤负责。)/jetson-promote-image
5.2 DUT处于RCM模式检查
-
验证“将DUT置于恢复模式”步骤的结果(无论是用户选择的调用还是手动 fallback)。
<boardctl> -t <target> -
必须报告至少一个匹配当前芯片系列恢复VID:PID对的设备:
lsusb -d 0955:芯片系列 恢复VID:PID T23x / Orin (X为任意十六进制数字——模块变体)0955:7X23T26x / Thor 0955:7026对于T23x,匹配末尾的(例如23);使用字面量lsusb -d 0955: | grep -E ' 0955:7.23 '检查会遗漏有效的T23x变体。0955:7023 -
如果未检测到设备:如果“将DUT置于恢复模式”步骤使用了,则显示其输出并拒绝操作;如果使用了手动方式,则重新提示用户确认跳线/按钮并重新上电。
boardctl -
这是后续所有操作的入口关卡。的镜像生成阶段通过同一恢复通道读取EEPROM;此处未进入RCM的设备在镜像生成阶段也会失败。
flash.sh
5.3 EEPROM与激活配置文件交叉检查
使用目录下的,从恢复模式下DUT的EEPROM中读取和(以及当前芯片系列使用的任何其他调度输入)。完整参考——包括示例输出、标签到调度输入的映射、空值语义、EEPROM与配置文件协调表——请参阅。
<bsp_image.root_path>/Linux_for_Tegra/sudo ./nvautoflash.sh --print_boardidboard_skuboard_FABreferences/eeprom-cross-check.md拒绝触发条件是真实的非空值不一致,而非缺失值。EEPROM空值是有效的,不会触发拒绝操作。当双方都提供足够信息导致不一致时,交叉检查是防止错误目标/错误SKU类故障的主要防御手段。
5.4 默认用户预配置(主机端,交互式)
新应用的中没有预配置Linux用户。通过检查和中UID≥1000的用户来检测。如果没有,则发出一个,提供四个点击选择选项:、、(子提示输入用户名+密码)或(首次启动时使用OEM向导)。非选项会执行。完整调用方式及原理请参阅。
bsp_image<bsp_image.root_path>/Linux_for_Tegra/rootfs/home/rootfs/etc/passwdAskUserQuestionubuntu / ubuntunvidia / nvidiacustomskipskipl4t_create_default_user.sh --autologin --accept-licensereferences/default-user-staging.md记录解析结果,以便“确认解析结果”步骤显示。此步骤不是拒绝关卡——而是用户交互点。
Confirm resolution
确认解析结果
Print the resolved plan and require explicit acceptance. The format
is the resolution, not the shell command — the user is approving
what will flash, not the string that will be executed:
Target: <reference_devkit.name> [+ custom_carrier.name]
Profile: target-platform/<active>.yaml
bsp_image: <bsp_image.root_path>/Linux_for_Tegra (version <X>)
Flash conf: <flash_config> (path verified in the "Resolve the flash conf path" step)
DUT EEPROM → board_sku=<value-or-(empty)> board_FAB=<value-or-(empty)>
Profile → module.sku=<value-or-(any)> module.revision=<value-or-(any)>
(reconciled per the "Preflight checks" step's EEPROM cross-check)
Boot device: <boot-dev>
Flow tool: flash.sh | l4t_initrd_flash.sh
boardctl: <bsp_image.root_path>/Linux_for_Tegra/tools/board_automation/boardctl
(or the path the "Put the DUT into recovery mode" step resolved)
RCM entry: <boardctl> -t <user-selected target> recovery | manual recovery + reset buttons
Post-flash: <boardctl> -t <user-selected target> reset (T26x / Thor)
not required — flash tool resets internally (T23x / Orin)
Default user: <username> (autologin)
| already staged in rootfs (kept)
| none — OEM config wizard on first bootArtifact paths (, , partition XML, BCTs) are
not shown — they are resolved by from EEPROM at flash
time, not by this skill. The "Preflight checks" step's EEPROM cross-check is what
guarantees those flash-time picks will line up with what the profile
expects.
DTB_FILEBPFDTB_FILEflash.shThis is the user-acceptance gate. Refuse to fall back to a raw
"paste this command" workflow — that path is how stale doc snippets,
wrong dashes, and prompt-character paste artifacts make it into
production flashes.
打印解析后的计划并要求用户明确确认。格式为解析结果,而非shell命令——用户批准的是将要刷入的内容,而非将要执行的命令字符串:
目标: <reference_devkit.name> [+ custom_carrier.name]
配置文件: target-platform/<active>.yaml
bsp_image: <bsp_image.root_path>/Linux_for_Tegra (版本 <X>)
刷机配置文件: <flash_config> (路径已在“解析刷机配置文件路径”步骤中验证)
DUT EEPROM → board_sku=<值或(空)> board_FAB=<值或(空)>
配置文件 → module.sku=<值或(任意)> module.revision=<值或(任意)>
(已根据“预检检查”步骤中的EEPROM交叉检查进行协调)
启动设备: <boot-dev>
流程工具: flash.sh | l4t_initrd_flash.sh
boardctl: <bsp_image.root_path>/Linux_for_Tegra/tools/board_automation/boardctl
(或“将DUT置于恢复模式”步骤解析的路径)
RCM进入方式: <boardctl> -t <用户选择的目标> recovery | 手动恢复+重置按钮
刷机后操作: <boardctl> -t <用户选择的目标> reset (T26x / Thor)
无需额外操作 — 刷机工具会自动重置 (T23x / Orin)
默认用户: <用户名> (自动登录)
| 已预配置在rootfs中(保留)
| 无 — 首次启动时使用OEM配置向导不显示工件路径(、、分区XML、BCT)——这些路径由在刷机时从EEPROM解析,而非本技能。“预检检查”步骤中的EEPROM交叉检查保证了这些刷机时选择的路径与配置文件预期一致。
DTB_FILEBPFDTB_FILEflash.sh这是用户确认关卡。拒绝回退到原始的“粘贴此命令”工作流——该路径会导致过时的文档片段、错误的短横线、提示符粘贴 artifacts 进入生产刷机流程。
Invoke the flash
调用刷机工具
Construct the command from the resolved variables — never accept a
verbatim command from the user, the docs, or memory:
bash
cd <bsp_image.root_path>/Linux_for_Tegra
sudo ./<flow-tool> [<resolved flags>] <board> <boot-dev>Abort and surface the failed step on the first non-zero exit. Do
not auto-retry on transient USB errors.
从解析后的变量构造命令——绝不接受用户、文档或记忆提供的 verbatim 命令:
bash
cd <bsp_image.root_path>/Linux_for_Tegra
sudo ./<flow-tool> [<resolved flags>] <board> <boot-dev>首次出现非零退出码时中止并显示失败步骤。不对临时USB错误自动重试。
Post-flash reset (T26x / Thor only)
刷机后重置(仅T26x / Thor)
T26x platforms do not auto-reboot from the freshly flashed image
when / returns. Run, using the
resolved in the "Put the DUT into recovery mode" step and the same target the user
selected for RCM entry:
flash.shl4t_initrd_flash.sh<boardctl>bash
<boardctl> -t <user-selected target> resetT23x / Orin issues the reset internally; skip this step on Orin. If
the "Put the DUT into recovery mode" step used the manual path, prompt the user to remove the
force-recovery jumper / button and power-cycle by hand. Gate this
step on chip family resolved from the active profile.
当/返回时,T26x平台不会从新刷入的镜像自动重启。使用“将DUT置于恢复模式”步骤中解析的和用户选择的RCM进入目标运行:
flash.shl4t_initrd_flash.sh<boardctl>bash
<boardctl> -t <用户选择的目标> resetT23x / Orin会在内部发出重置信号;Orin可跳过此步骤。如果“将DUT置于恢复模式”步骤使用了手动方式,则提示用户移除强制恢复跳线/按钮并手动重新上电。此步骤仅针对从激活配置文件解析出的芯片系列执行。
Summary
总结
Report: command line(s) used (flash + post-flash reset if it ran),
exit code, log location (if teed). Persist the resolved plan and
outcome where validation can re-read it.
报告:使用的命令行(刷机+刷机后重置,如果执行的话)、退出码、日志位置(如果有 tee 输出)。将解析后的计划和结果保存到可被验证重新读取的位置。
Limitations
限制
- DUT must be in RCM mode. Image-generation (EEPROM read) and the flash itself both use the recovery USB channel; not-in-RCM at the gate fails image-gen too.
- Artifact paths resolved at flash time. ,
DTB_FILE, partition XML, BCTs, DRAM training are picked from EEPROM (BPFDTB_FILE/board_sku) byboard_FAB/flash.sh; this skill validates only host-side scaffolding.l4t_initrd_flash.sh - EEPROM is authoritative over the profile. Real non-empty disagreement refuses; empty EEPROM values are valid.
- No raw-command bypass. Refuses to fall back to user-supplied "paste this command" — that path is how stale doc snippets and prompt-character paste artifacts reach production flashes.
- No transient-error auto-retry. USB hiccups abort; re-enter RCM and re-invoke.
- T26x needs an explicit post-flash reset. T26x doesn't auto-reboot from a freshly flashed image; (or manual power-cycle) required. T23x resets internally.
<boardctl> -t <target> reset - Massflash / uses the same tool selection + respective flags; massflash topology setup is out of scope here.
--flash-only
- DUT必须处于RCM模式。镜像生成(读取EEPROM)和刷机本身都使用恢复USB通道;入口处未进入RCM的设备在镜像生成阶段也会失败。
- 工件路径在刷机时解析。、
DTB_FILE、分区XML、BCT、DRAM训练文件由BPFDTB_FILE/flash.sh从EEPROM(l4t_initrd_flash.sh/board_sku)中选择;本技能仅验证主机端框架。board_FAB - EEPROM优先于配置文件。真实的非空值不一致会触发拒绝操作;空EEPROM值是有效的。
- 不允许原始命令绕过。拒绝回退到用户提供的“粘贴此命令”——该路径会导致过时的文档片段和提示符粘贴 artifacts 进入生产刷机流程。
- 不对临时错误自动重试。USB故障会中止操作;重新进入RCM并重新调用。
- T26x需要显式的刷机后重置。T26x不会从新刷入的镜像自动重启;需要执行(或手动重新上电)。T23x会自动重置。
<boardctl> -t <target> reset - **批量刷机/**使用相同的工具选择+各自的标志;批量刷机拓扑设置不在本技能范围内。
--flash-only
Troubleshooting
故障排除
| Error | Cause | Solution |
|---|---|---|
| DUT did not enter RCM mode — | If |
Preflight EEPROM cross-check refuses with | EEPROM holds a real non-empty value that disagrees with | Fix the profile ( |
| Preflight refuses with "per-board conf not found" | Active profile points at a | For custom carriers: run |
Preflight refuses because | | Re-run |
| Wrong | Use the in-tree |
| Flash succeeds on T26x but the DUT stays in recovery / does not boot the new image | T26x does not auto-reset out of recovery after | Run |
| First boot lands on Ubuntu's OEM configuration wizard despite expecting autologin | No default user was staged into | Either re-flash after staging via |
| EEPROM-driven dispatch resolved a filename that doesn't exist in | Re-run |
| | Re-run |
| 错误 | 原因 | 解决方案 |
|---|---|---|
| DUT未进入RCM模式—— | 如果使用了 |
预检EEPROM交叉检查因 | EEPROM中的真实非空值与激活配置文件中的 | 修改配置文件(使用 |
| 预检因“未找到单板配置文件”而拒绝 | 激活的配置文件指向的 | 对于自定义载板:运行 |
预检因 | 未对 | 重新运行 |
| 使用了错误的 | 使用内置的 |
| T26x刷机成功但DUT仍处于恢复模式/无法启动新镜像 | T26x在 | 运行 |
| 首次启动进入Ubuntu的OEM配置向导,但预期是自动登录 | 刷机前未在 | 要么在预配置后重新刷机(使用 |
| EEPROM驱动的调度解析出的文件名在 | 重新运行 |
| 跳过了 | 重新运行 |
References
参考资料
- — locate the in-tree
references/recovery-mode-boardctl.md, enumerate targets, invokeboardctl/recovery, manual fallback (the "Put the DUT into recovery mode" step / the "Post-flash reset" step details).reset - —
references/eeprom-cross-check.mdsample, label-to-dispatch-input map, EEPROM-vs-profile reconciliation table (used by the "Preflight checks" step).nvautoflash.sh --print_boardid - —
references/default-user-staging.mdinvocation + flag rationale (used by the "Preflight checks" step).l4t_create_default_user.sh - — target-platform contract.
../../context/target-platform-contract.md - — Workspace edit protocol (this skill is the flash leg of Deploy).
../../context/bsp-customization-workflow.md - Per-board conf dispatch — , DTB, and BCT resolution from the active profile.
<board> - — prior leg; copies overlay → bsp_image.
../jetson-promote-image/SKILL.md - — produces the custom carrier's flash conf consumed by the "Resolve the flash conf path" step.
../jetson-derive-carrier/SKILL.md
- — 找到内置
references/recovery-mode-boardctl.md、枚举目标、调用boardctl/recovery、手动 fallback(“将DUT置于恢复模式”步骤/“刷机后重置”步骤的详细信息)。reset - —
references/eeprom-cross-check.md示例、标签到调度输入的映射、EEPROM与配置文件协调表(由“预检检查”步骤使用)。nvautoflash.sh --print_boardid - —
references/default-user-staging.md调用方式及标志原理(由“预检检查”步骤使用)。l4t_create_default_user.sh - — 目标平台协议。
../../context/target-platform-contract.md - — 工作区编辑协议(本技能是Deploy的刷机环节)。
../../context/bsp-customization-workflow.md - 单板配置文件调度 — 从激活配置文件解析、DTB和BCT。
<board> - — 前序环节;将叠加层复制到bsp_image。
../jetson-promote-image/SKILL.md - — 生成“解析刷机配置文件路径”步骤使用的自定义载板刷机配置文件。
../jetson-derive-carrier/SKILL.md