Unitree Go2 拓展坞升级:Orin Nano 8G → Orin NX 16G
两种拓展坞版本
Unitree Go2 的拓展坞有两种配置版本,分别搭载不同的 NVIDIA Jetson Orin 模块:
| Jetson Orin Nano 8GB | Jetson Orin NX 16GB | |
|---|---|---|
| AI 算力 | 40 TOPS | 100 TOPS |
| 内存 | 8 GB | 16 GB |
| CPU | 6 核 Arm Cortex-A78AE | 8 核 Arm Cortex-A78AE |
| 最大功耗 | 15W | 25W |
NX 16G 版本在 AI 推理算力上比 Nano 8G 提升了 2.5 倍,适合在机器人上运行更复杂的感知或控制模型。本文记录将 Nano 8G 模块替换为 NX 16G 模块的完整流程。
值得注意的是,Unitree 官网上 100 TOPS 版本的拓展坞比 40 TOPS 版本贵了 11,335 元,而单独购买一套完整的 Jetson Orin NX 16G 套件仅需约 6,869 元。因此,直接购买 40 TOPS 版本后自行升级,也是一个相当具有性价比的选择。
由于此前已在 Nano 8G 上进行了大量开发工作(环境配置、依赖安装、自定义代码等),不希望在 NX 16G 上从零重装系统,因此本文的核心思路是:保留 Nano 8G 的原有 SSD 和系统,仅通过降级 NX 16G 的 QSPI firmware 并修改少量配置文件,使其能够驱动 NX 16G 硬件正常工作。
为什么不能直接插上就用
购买到的全新 Jetson Orin NX 16G 模块出厂预装的是 JetPack 6.2(即 NVIDIA Jetson Linux 36.4.3),而 Unitree 出厂的 Expansion Dock 系统运行的是 JetPack 5.1.1(即 NVIDIA Jetson Linux 35.3.1)。
| JetPack 版本 | Jetson Linux 版本 | |
|---|---|---|
| Unitree 出厂 SSD | JetPack 5.1.1 | 35.3.1 |
| 全新购入 NX 16G 模块 | JetPack 6.2 | 36.4.3 |
从 JetPack 5.x 升级到 JetPack 6.x 是一次重大版本跨越,底层变化包括内核版本、驱动栈和 BSP 结构。更关键的是,Jetson 模块内部有一块独立的 QSPI-NOR Flash,其中存储的 QSPI firmware(也称 Bootloader / MB2 / CBoot 等组件)版本必须与运行的 Jetson Linux 版本相匹配。
NVIDIA 官方文档明确指出,Jetson Linux 35.x(JetPack 5.x)与 Jetson Linux 36.x(JetPack 6.x)的 QSPI firmware 互不兼容。如果 QSPI firmware 版本与 SSD 上的系统版本不一致,Jetson 在启动时会因为引导链无法正确握手而陷入不停重启(boot loop),无法进入系统。
参考:Flashing Support — NVIDIA Jetson Linux 36.4.4 Developer Guide(Updating Jetson Orin Nano Devkit from JetPack 5 to JetPack 6)
原文:"The halt is because of a mismatch between the bootloader in the QSPI and the file system in the SD card. The bootloader version is JetPack 6, and the file system is JetPack 5. JetPack 6 bootloader does not support the JetPack 5 file system."
为什么是降级而不是升级?
既然版本不兼容是核心问题,一个自然的想法是:能否反过来,把 SSD 上的系统升级到 JetPack 6.x,让它与 NX 16G 模块的出厂 QSPI firmware 匹配?
理论上,NX 16G 配合 JetPack 6.2 可以激活 MAXN SUPER 模式,AI 算力可达 157 TOPS;甚至 Nano 8G 升级至 JetPack 6.2 后也能达到 67 TOPS。但这在 Go2 上并不可行:Go2 的散热结构和电源设计是围绕 JetPack 5.1.1 的功耗范围设计的,在更高算力模式下会出现严重发热和电流过载,存在损坏硬件的风险。
此外,Unitree 目前仅为 Go2 提供基于 JetPack 5.1.1 的出厂系统镜像,没有 JetPack 6.x 的官方适配版本。
因此,正确做法是将 NX 16G 模块的 QSPI firmware 降级至与 JetPack 5.1.1 匹配的版本,而非升级系统。