首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >​Jetson Nano eMMC 版完整烧录教程

​Jetson Nano eMMC 版完整烧录教程

原创
作者头像
IT蜗壳-Tango
发布2026-07-15 16:27:47
发布2026-07-15 16:27:47
870
举报

本文记录如何使用一台 Ubuntu 主机,将 Jetson Linux(L4T R32.7.6 / JetPack 4.6.x)重新烧录到 Jetson Nano 的板载 eMMC,并通过 USB 串口完成首次系统初始化。

适用对象:不插 microSD 卡也能启动、带板载 eMMC 的 Jetson Nano 模块。普通 microSD 卡版开发套件应直接制作系统 SD 卡,不应照搬本文的 eMMC 刷写命令。

一、烧录前须知

烧录会清空 Jetson Nano 板载 eMMC 中的系统、用户和文件。开始前请先备份重要数据。

需要准备:

  • 一台 x86_64 Ubuntu 主机,建议 Ubuntu 18.04 或 20.04
  • Jetson Nano eMMC 版及其载板
  • 稳定的 Jetson 电源
  • 一根支持数据传输的 Micro-USB 线
  • HDMI 显示器、键盘(首次启动时使用)
  • Force Recovery 跳线帽,或可用于短接的杜邦线
  • Jetson Linux R32.7.6 Driver Package(BSP)
  • Tegra Linux Sample Root Filesystem R32.7.6

Jetson Nano 使用 JetPack 4.x / L4T R32.x 软件栈。本次实际烧录目录为:

代码语言:bash
复制
/data/jetson-nano-flash/l4t-r32.7.6/Linux_for_Tegra

二、准备刷机文件

如果 Linux_for_Tegra 已经准备好,可以跳到下一节。否则,将下载的 BSP 和 Root Filesystem 放到同一工作目录,然后执行:

代码语言:bash
复制
tar xf Jetson-210_Linux_R32.7.6_aarch64.tbz2
cd Linux_for_Tegra/rootfs
sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.7.6_aarch64.tbz2
cd ..
sudo ./apply_binaries.sh

完成后,当前目录应为 Linux_for_Tegra,并且其中包含 flash.shbootloaderkernelrootfs 等内容。

可以简单检查:

代码语言:bash
复制
pwd
test -x ./flash.sh && echo "flash.sh ready"
test -e ./rootfs/etc/os-release && echo "rootfs ready"

三、先判断 Jetson 当前所处模式

将 Jetson 的 Micro-USB 设备接口连接到 Ubuntu 主机,在主机执行:

代码语言:bash
复制
lsusb

如果看到:

代码语言:bash
复制
0955:7020 NVIDIA Corp. L4T (Linux for Tegra) running on Tegra

说明 Jetson 只是正常启动后进入了 USB Device Mode,此时还不能刷机

Jetson 正常运行时的 USB Device Mode
Jetson 正常运行时的 USB Device Mode

四、让 Jetson 进入 Force Recovery 模式

  1. 关闭 Jetson 电源。
  2. 用 Micro-USB 数据线连接 Jetson 和 Ubuntu 主机。
  3. 短接载板上的 FC REC(Force Recovery)和 GND
  4. 保持短接,给 Jetson 通电;如果载板带 Reset 按钮,也可以在短接状态下按一下 Reset。
  5. 等待约 2 秒后移除短接帽。
  6. 在 Ubuntu 主机再次执行 lsusb

不同载板的 Force Recovery 针脚位置可能不同。必须先查看载板丝印或说明书,不要随意短接未知针脚。

Jetson Nano 成功进入恢复模式后,应看到:

代码语言:bash
复制
0955:7f21 NVIDIA Corp. APX
Jetson Nano 已进入 APX 恢复模式
Jetson Nano 已进入 APX 恢复模式

0955:7f21 APX 是开始刷写前最重要的确认标志。如果仍是 0955:7020,请不要执行刷写命令。

五、将系统烧录到板载 eMMC

在 Ubuntu 主机进入 Linux_for_Tegra 目录:

代码语言:bash
复制
cd /data/jetson-nano-flash/l4t-r32.7.6/Linux_for_Tegra

执行:

代码语言:bash
复制
sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1

参数含义:

  • jetson-nano-devkit-emmc:目标设备是 Jetson Nano eMMC 版
  • mmcblk0p1:将根文件系统写入板载 eMMC

如果目标是彻底重装系统,命令中不要添加 -r-r 会复用已经存在的 system.img,主要用于明确需要重复使用旧镜像的场景。

刷写期间不要断电、拔掉 USB 数据线或关闭终端。出现以下内容即表示成功:

代码语言:bash
复制
Flashing completed
*** The target t210ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.
eMMC 烧录成功
eMMC 烧录成功

日志中偶尔出现 EKS partition magic header mismatch 警告,只要最后明确显示 has been flashed successfully,本次烧录就是成功的。

六、首次开机

  1. 确认 FC RECGND 的短接已经移除。
  2. 完全关闭 Jetson 电源,等待数秒。
  3. 不插 microSD 卡。
  4. 接好显示器、键盘和鼠标。
  5. 重新给 Jetson 通电。

首次启动可能需要几分钟。如果显示器一直停留在类似下面的日志:

代码语言:bash
复制
A start job is running for End-user configuration after initial OEM installation
Please complete system configuration setup on the serial port

这并不是系统死机,而是 Jetson 正在等待通过 USB 串口完成 OEM 初始化。

系统等待通过 USB 串口完成首次初始化
系统等待通过 USB 串口完成首次初始化

底部出现 (no limit) 表示它会无限等待用户输入,单纯继续等待不会自动进入桌面。

Debconf 初始化任务持续等待
Debconf 初始化任务持续等待

七、通过 USB 串口完成 OEM 初始化

保持 Jetson 与 Ubuntu 主机之间的 Micro-USB 数据连接。在 Ubuntu 主机执行:

代码语言:bash
复制
ls /dev/ttyACM*

通常会看到:

代码语言:bash
复制
/dev/ttyACM0

安装并启动 screen

代码语言:bash
复制
sudo apt update
sudo apt install -y screen
sudo screen /dev/ttyACM0 115200

进入后如果屏幕空白,按一次 Enter。随后按照文本界面依次完成:

  1. 接受许可协议
  2. 设置语言、地区和时区
  3. 选择键盘布局
  4. 创建用户名和密码
  5. 设置主机名
  6. 选择网络接口
  7. 选择功耗模式

选择主网络接口

如果开发板连接了网线,选择:

代码语言:bash
复制
eth0: Ethernet

如果暂时只想使用与 Ubuntu 主机之间的 USB 虚拟网络,也可以选择 usb0: USB net。一般优先推荐 eth0

选择 eth0 作为主网络接口
选择 eth0 作为主网络接口

选择 Nvpmodel 功耗模式

  • MAXN:完整性能,功耗和发热较高,需要稳定电源,建议配合风扇
  • 5W:限制功耗,性能较低,适合供电或散热能力有限的场景

供电和散热可靠时可以选择 MAXN;不确定时选择 5W 更保守。该设置以后仍可通过 nvpmodel 修改。

选择 Jetson Nano 的功耗模式
选择 Jetson Nano 的功耗模式

screen 的退出方式为:先按 Ctrl+A,再按 K,最后按 Y 确认。

八、确认系统安装完成

OEM 初始化结束后,Jetson 会继续启动或自动重启。显示器出现新建用户的 Ubuntu 登录界面,就表示系统已经成功安装到板载 eMMC。

Ubuntu 登录界面,说明初始化完成
Ubuntu 登录界面,说明初始化完成

点击用户名,输入初始化过程中设置的密码即可登录。以后 Jetson Nano 不需要插 SD 卡,会直接从板载 eMMC 启动。

登录后可以在 Jetson 终端执行以下命令确认:

代码语言:bash
复制
findmnt /
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
head -n 1 /etc/nv_tegra_release

九、常见问题

1. lsusb 显示 0955:7020,能否直接刷写?

不能。它表示 Jetson 正常运行在 L4T USB Device Mode。必须进入 Force Recovery,直到 lsusb 显示 0955:7f21 NVIDIA Corp. APX

2. 不插 SD 卡也能进入 Ubuntu,是什么原因?

系统位于板载 eMMC,而不是 SD 卡。本文的烧录命令也是把根文件系统写入 eMMC。

3. 首次启动一直显示 End-user configuration 怎么办?

通过 Ubuntu 主机连接 /dev/ttyACM0

代码语言:bash
复制
sudo screen /dev/ttyACM0 115200

然后在串口界面完成首次配置。

4. 找不到 /dev/ttyACM0 怎么办?

先检查:

代码语言:bash
复制
lsusb | grep 0955
sudo dmesg | tail -30

确认使用的是支持数据传输的 Micro-USB 线,并且连接的是 Jetson 的设备模式接口。如果 Jetson 使用独立 DC 电源,可重新插拔 Micro-USB 数据线后再检查。

5. 刷写完成后仍无法启动怎么办?

确认已经移除 Force Recovery 短接帽,再彻底断电重启。若仍失败,保留串口启动日志和刷写日志最后 30 行,以便进一步定位供电、载板配置或镜像问题。

十、完整流程速查

代码语言:bash
复制
备份 eMMC 数据
  → 准备 BSP 与 Root Filesystem
  → 短接 FC REC 和 GND
  → 通电进入 Force Recovery
  → lsusb 确认 0955:7f21 APX
  → 执行 flash.sh 写入 eMMC
  → 看到 flashed successfully
  → 移除恢复短接并重启
  → screen 连接 /dev/ttyACM0
  → 完成 OEM 初始化
  → 登录 Ubuntu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、烧录前须知
  • 二、准备刷机文件
  • 三、先判断 Jetson 当前所处模式
  • 四、让 Jetson 进入 Force Recovery 模式
  • 五、将系统烧录到板载 eMMC
  • 六、首次开机
  • 七、通过 USB 串口完成 OEM 初始化
    • 选择主网络接口
    • 选择 Nvpmodel 功耗模式
  • 八、确认系统安装完成
  • 九、常见问题
    • 1. lsusb 显示 0955:7020,能否直接刷写?
    • 2. 不插 SD 卡也能进入 Ubuntu,是什么原因?
    • 3. 首次启动一直显示 End-user configuration 怎么办?
    • 4. 找不到 /dev/ttyACM0 怎么办?
    • 5. 刷写完成后仍无法启动怎么办?
  • 十、完整流程速查
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档