4. 启动与固件验收
启动与固件验收是Jetson工业项目交付中最容易被“能开机就行”掩盖的一环。工业现场对启动的要求不是“点亮屏幕”,而是可重复、可追溯、可批量复制:同一批次设备必须从相同的引导路径进入相同的系统状态,固件版本必须与BSP、JetPack、量产镜像三者一致,任何一次断电重启、看门狗复位或OTA升级后都不能出现引导漂移。本节围绕启动链路验证、UEFI/引导加载程序配置核对、固件版本一致性比对和量产烧录验收四个动作展开,给出可执行的检查方法与判据。
一、先建立启动链路的“信号流”认知
Jetson(以Orin NX/Nano、Xavier NX为例)的启动不是单一Bootloader,而是一条多级链:上电后由BootROM读取QSPI-NOR中的BPMP-FW、MB1、MB2,再加载UEFI固件,UEFI根据引导项加载内核与设备树,最后交给systemd进入用户态。验收时要沿着这条链逐级确认“谁加载了谁、版本是什么、失败时停在哪一级”。
二、启动流程验证:从串口日志到用户态
验收第一步是接串口。Jetson调试串口默认115200-8N1,用USB-TTL接GND/TXD/RXD,上电抓取完整日志。合格日志应满足:BootROM打印芯片型号与QSPI读取成功;MB1/MB2无重试;UEFI在预期时间内进入引导项;内核解压后无“Unable to handle kernel NULL pointer”;systemd到达multi-user.target。若日志停在“Waiting for bootloader”或反复出现“Retrying”,优先怀疑QSPI固件损坏或供电纹波过大,而不是先改软件。
进入系统后,用以下命令固化证据:
cat /etc/nv_tegra_release
# 输出示例:R35 (release), REVISION: 4.1, GCID: 34567890, BOARD: t186ref
uname -r
# 输出示例:5.10.120-tegra
sudo dmesg | grep -i "tegra\|dtb\|firmware"
# 关注:DTB加载路径、BPMP固件版本、任何firmware load failed
判据是:/etc/nv_tegra_release中的L4T版本必须与项目BSP基线一致;uname -r内核版本必须与BSP发布说明匹配;dmesg中不得出现固件加载失败。三者任一不符,启动验收不通过。
三、UEFI/引导加载程序配置检查
Orin系列使用UEFI替代早期U-Boot,配置集中在QSPI的UEFI变量与/boot/extlinux/extlinux.conf。验收时要核对四类配置:
- 引导顺序:UEFI BootOrder中量产设备应固定为eMMC/NVMe首选,禁止残留USB或网络引导项,防止现场插入U盘后引导漂移。
- 内核与DTB路径:extlinux.conf中
LINUX与FDT指向的镜像和DTB必须与BSP一致,且DTB需与载板匹配(如Orin NX 16GB + 定制载板需使用对应pinmux与设备树)。 - Secure Boot与签名:工业项目若启用Secure Boot,需确认PK/KEK/db已正确烧录,且内核与DTB已签名;未签名镜像会导致启动中断。
- 启动参数:
APPEND中的root=、console=、以及项目自定义参数(如isolcpus、hugepages)必须与实时性/性能验收要求一致。
检查方法:在UEFI菜单中查看Boot Manager与Device Manager,记录BootOrder;在系统中执行sudo cat /boot/extlinux/extlinux.conf并保存为验收附件。若使用OTA,还需确认A/B分区槽位状态与nvbootctrl输出一致。
四、固件版本一致性核对
“固件版本一致”不是只看一个版本号,而是四层对齐:芯片内BootROM与QSPI固件、UEFI固件、L4T/JetPack、量产镜像。建议建立一张版本对照表,逐台或抽样填写。示例字段如下:
| 核对项 | 获取方式 | 示例值 | 判据 |
|---|---|---|---|
| L4T版本 | /etc/nv_tegra_release | R35.4.1 | 等于BSP基线 |
| 内核版本 | uname -r | 5.10.120-tegra | 与BSP发布一致 |
| UEFI版本 | UEFI菜单或串口日志 | 35.4.1-gcid-xxxx | 与L4T匹配 |
| QSPI固件 | flash.sh日志/串口 | BPMP-FW 35.4.1 | 无版本回退 |
| DTB | dtc -I dtb -O dts | tegra234-p3767-0000 | 与载板匹配 |
若发现UEFI版本高于L4T,通常意味着QSPI被单独升级过,需回退或同步升级L4T;若DTB与载板不匹配,表现为部分外设(如CAN、网口)不工作,而非完全无法启动,容易被误判为硬件故障。
五、量产烧录验收
量产烧录使用NVIDIA SDK Manager或flash.sh配合量产包。验收要点是“烧录日志可追溯、首启自检可自动、批次抽样可复现”。典型流程:
- 将设备置于Recovery模式(按住Recovery键上电),
lsusb应看到NVIDIA Corp.设备。 - 执行烧录命令,例如:
sudo ./flash.sh jetson-orin-nx-16gb mmcblk0p1,保存完整日志。 - 烧录完成后首次启动,运行自检脚本,检查L4T版本、内核、DTB、网络、存储、看门狗是否正常。
- 按批次抽样(如每50台抽3台)执行冷启动10次,确认无引导失败、无版本漂移。
最后,把启动与固件验收的结论写成可签署的记录:每台设备的序列号、L4T版本、内核版本、UEFI版本、DTB标识、烧录日志哈希、首启自检结果、冷启动次数与失败次数。只有这些字段齐全且一致,才能判定该批次通过启动与固件验收,进入下一阶段的功能与可靠性测试。