2. 环境准备

Jetson系列设备(Nano、Xavier NX、Orin Nano/AGX Orin)是边缘AI项目交付中最常见的硬件载体。无论是模型推理、摄像头接入还是多路视频流处理,项目交付的第一步都是确保设备处于可用状态。很多项目延期并非源于模型精度不足,而是环境准备阶段反复踩坑——SDK烧录失败、系统无法启动、网络不通、风扇狂转、功耗异常等。本章围绕四个核心环节展开:硬件基础配置、SDK烧录流程、系统启动验证、网络连接方法,并结合实际交付场景给出可复用的操作路径。

Jetson 环境准备工程链路 硬件基础配置 电源/散热/存储/引脚 SDK烧录 JetPack/SDK Manager/镜像 系统启动验证 串口/日志/外设检测 网络连接 有线/无线/配置 • 电源适配器选型(5V/19V) • 主动散热/被动散热 • microSD/NVMe SSD • 40-pin GPIO/CSI/USB • JetPack 5.x/6.x • SDK Manager 图形化 • 命令行烧录(Linux) • 镜像备份与恢复 • 首次启动引导 • 串口日志排查 • dmesg 外设检测 • 风扇/温度/功耗 • 静态IP • DHCP/有线 • Wi-Fi 配置 • SSH 远程 交付前检查清单 ① 硬件上电自检 → ② 系统版本确认 → ③ 网络连通性 → ④ 外设识别 → ⑤ 性能基准测试 ⑥ 镜像备份 → ⑦ 交付文档记录 → ⑧ 验收签字 TP1 TP2

上图展示了Jetson环境准备的整体工程链路。四个模块并非孤立存在,而是环环相扣:硬件配置决定了烧录方式的选择,烧录结果直接影响系统启动,启动成功后才能进行网络配置。实际交付中,建议按照“硬件→烧录→启动→网络”的顺序推进,每个环节设置验证点(TP1、TP2),避免问题累积到后期才暴露。

核心原理:理解Jetson的启动架构与烧录本质

Jetson设备与普通PC的启动流程有本质区别。它采用Tegra系列SoC,内部集成CPU、GPU、ISP、编解码器等模块,启动过程依赖BootROM、MBoot(Tegra引导程序)、内核和设备树。烧录的本质是将完整的系统镜像写入存储介质(eMMC、NVMe SSD或microSD卡),镜像中不仅包含Linux根文件系统,还包含Tegra特有的固件、内核模块、设备树二进制(DTB)以及GPU驱动。

以Orin Nano为例,其烧录流程涉及以下关键组件:

  • BootROM:芯片出厂固化的引导代码,负责初始化DDR、加载MBoot。
  • MBoot:Tegra的U-Boot变体,负责加载内核和设备树。
  • 内核:Linux内核,Jetson通常使用NVIDIA定制版本,包含Tegra驱动补丁。
  • 设备树(DTB):描述硬件拓扑,如GPIO、I2C、SPI、PCIe等外设的地址和中断配置。
  • 根文件系统:Ubuntu(18.04/20.04/22.04)为基础,预装CUDA、cuDNN、TensorRT等库。

理解这一架构的意义在于:当项目交付后设备出现启动异常时,你能快速定位是BootROM阶段、内核阶段还是文件系统阶段的问题,而不是盲目重刷系统。

判断方法:如何选择正确的烧录方式

Jetson设备的烧录方式并非只有一种,选择依据是设备型号、存储介质和宿主机操作系统。下表总结了常见场景的推荐方案:

设备型号 存储介质 推荐烧录方式 适用场景
Jetson Nano(2GB/4GB) microSD卡 Etcher直接写入镜像 原型验证、教学实验
Jetson Xavier NX NVMe SSD / eMMC SDK Manager 或命令行烧录 工业项目、需要大容量存储
Jetson Orin Nano/NX NVMe SSD / eMMC SDK Manager(推荐) 量产交付、性能要求高
Jetson AGX Orin NVMe SSD / eMMC SDK Manager 或命令行 边缘服务器、多路视频分析

判断逻辑如下:如果设备支持eMMC或NVMe,优先使用SDK Manager,因为它能自动处理驱动、库和示例代码的安装;如果仅使用microSD卡(如Nano),则直接使用镜像写入工具更快捷。另外,宿主机必须是Ubuntu系统(18.04或20.04),Windows/macOS无法直接运行SDK Manager。

操作流程:从零开始完成SDK烧录

以下以Jetson Orin Nano 8GB + NVMe SSD为例,演示完整的烧录流程。假设宿主机为Ubuntu 20.04,已安装SDK Manager。

  1. 硬件准备:将Orin Nano的NVMe SSD安装到位,连接电源适配器(推荐19V/4.74A),用USB Type-C线连接设备与宿主机,并将设备置于恢复模式(按住Recovery键再按Reset键)。
  2. 确认恢复模式:在宿主机终端执行 lsusb,应看到NVIDIA Corp.设备(ID 0955:7023)。
  3. 启动SDK Manager:登录NVIDIA账号,选择目标设备(Orin Nano 8GB),勾选JetPack 5.1.2(或6.0),点击Continue。
  4. 选择存储介质:在Storage Device中选择NVMe SSD,注意不要选错,否则会覆盖错误磁盘。
  5. 开始烧录:SDK Manager会自动下载镜像(约8-10GB),然后写入设备。整个过程约20-30分钟,期间设备会多次重启,属正常现象。
  6. 安装附加组件:烧录完成后,SDK Manager会提示安装CUDA、cuDNN、TensorRT等组件,建议全部安装,避免后续项目依赖缺失。
风险提示:烧录过程中切勿断开USB线或断电,否则可能导致设备变砖。如果烧录失败,可尝试重新进入恢复模式并再次烧录,但若多次失败,需检查USB线是否支持数据传输(有些线仅充电),或更换宿主机USB端口。

案例拆解:一次Xavier NX网络配置失败的排查过程

在某智慧零售项目中,客户反馈Xavier NX设备无法通过SSH连接,但设备指示灯正常。我们通过以下步骤定位问题:

初始现象:设备上电后,风扇转动,但局域网内无法ping通设备IP。客户使用DHCP自动获取IP,但路由器管理界面未显示新设备。

排查过程:

  1. 使用串口线连接设备调试口(UART),波特率115200,观察启动日志。发现系统正常启动,网络服务已加载。
  2. 执行 ip addr show,发现eth0接口未获取到IP地址,处于DOWN状态。
  3. 检查网线连接,确认物理链路正常(路由器端口灯亮)。
  4. 手动执行 sudo dhclient eth0,仍无法获取IP。
  5. 进一步检查 dmesg | grep eth,发现网卡驱动加载失败,提示固件缺失。

根因分析:该设备之前使用SDK Manager烧录时,选择了“最小安装”选项,未包含网络固件(如RTL8168或Intel I219的固件包)。

解决方案:重新运行SDK Manager,勾选“Additional SDKs”中的网络固件组件,重新烧录后网络恢复正常。

复盘经验:在项目交付前,务必验证网络功能,不能假设默认安装包含所有驱动。建议在烧录后立即执行 sudo apt update 和 sudo apt install linux-firmware,确保网卡固件完整。

常见误区与总结复盘

在环境准备阶段,以下误区最容易导致项目延期:

  • 误区一:电源适配器功率不足。Jetson设备对电源要求严格,Nano需要5V/4A,Orin系列需要19V/4.74A。使用手机充电器或低功率适配器会导致系统随机重启、USB外设失灵。
  • 误区二:忽略散热。Orin Nano满载功耗可达25W,被动散热片在密闭机箱内温度可达85°C以上,触发降频,推理性能下降30%以上。建议使用主动散热风扇,并在交付文档中标注环境温度要求。
  • 误区三:烧录后不备份镜像。项目交付后,如果设备损坏需要更换,重新烧录+配置环境需要2-3小时。建议在完成所有环境配置后,使用 dd 命令或SDK Manager的备份功能制作镜像,后续可直接恢复。
  • 误区四:网络配置只依赖DHCP。在工业现场,路由器可能不提供DHCP服务,或IP地址冲突。建议在交付时设置静态IP,并记录在验收文档中。
经验建议:在项目交付前,制作一份“环境准备检查表”,逐项确认硬件、系统、网络、外设状态。检查表应包含:电源电压/电流、散热风扇转速、系统版本(cat /etc/nv_tegra_release)、内核版本(uname -r)、网络连通性(ping 8.8.8.8)、GPU状态(tegrastats)。这份表格既是交付物的一部分,也是后续运维的参考基线。