
本文记录如何使用一台 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 中的系统、用户和文件。开始前请先备份重要数据。
需要准备:
Jetson Nano 使用 JetPack 4.x / L4T R32.x 软件栈。本次实际烧录目录为:
/data/jetson-nano-flash/l4t-r32.7.6/Linux_for_Tegra如果 Linux_for_Tegra 已经准备好,可以跳到下一节。否则,将下载的 BSP 和 Root Filesystem 放到同一工作目录,然后执行:
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.sh、bootloader、kernel 和 rootfs 等内容。
可以简单检查:
pwd
test -x ./flash.sh && echo "flash.sh ready"
test -e ./rootfs/etc/os-release && echo "rootfs ready"将 Jetson 的 Micro-USB 设备接口连接到 Ubuntu 主机,在主机执行:
lsusb如果看到:
0955:7020 NVIDIA Corp. L4T (Linux for Tegra) running on Tegra说明 Jetson 只是正常启动后进入了 USB Device Mode,此时还不能刷机。

FC REC(Force Recovery)和 GND。lsusb。不同载板的 Force Recovery 针脚位置可能不同。必须先查看载板丝印或说明书,不要随意短接未知针脚。
Jetson Nano 成功进入恢复模式后,应看到:
0955:7f21 NVIDIA Corp. APX
0955:7f21 APX 是开始刷写前最重要的确认标志。如果仍是 0955:7020,请不要执行刷写命令。
在 Ubuntu 主机进入 Linux_for_Tegra 目录:
cd /data/jetson-nano-flash/l4t-r32.7.6/Linux_for_Tegra执行:
sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1参数含义:
jetson-nano-devkit-emmc:目标设备是 Jetson Nano eMMC 版mmcblk0p1:将根文件系统写入板载 eMMC如果目标是彻底重装系统,命令中不要添加 -r。-r 会复用已经存在的 system.img,主要用于明确需要重复使用旧镜像的场景。
刷写期间不要断电、拔掉 USB 数据线或关闭终端。出现以下内容即表示成功:
Flashing completed
*** The target t210ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.
日志中偶尔出现 EKS partition magic header mismatch 警告,只要最后明确显示 has been flashed successfully,本次烧录就是成功的。
FC REC 与 GND 的短接已经移除。首次启动可能需要几分钟。如果显示器一直停留在类似下面的日志:
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 初始化。

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

保持 Jetson 与 Ubuntu 主机之间的 Micro-USB 数据连接。在 Ubuntu 主机执行:
ls /dev/ttyACM*通常会看到:
/dev/ttyACM0安装并启动 screen:
sudo apt update
sudo apt install -y screen
sudo screen /dev/ttyACM0 115200进入后如果屏幕空白,按一次 Enter。随后按照文本界面依次完成:
如果开发板连接了网线,选择:
eth0: Ethernet如果暂时只想使用与 Ubuntu 主机之间的 USB 虚拟网络,也可以选择 usb0: USB net。一般优先推荐 eth0。

MAXN:完整性能,功耗和发热较高,需要稳定电源,建议配合风扇5W:限制功耗,性能较低,适合供电或散热能力有限的场景供电和散热可靠时可以选择 MAXN;不确定时选择 5W 更保守。该设置以后仍可通过 nvpmodel 修改。

screen 的退出方式为:先按 Ctrl+A,再按 K,最后按 Y 确认。
OEM 初始化结束后,Jetson 会继续启动或自动重启。显示器出现新建用户的 Ubuntu 登录界面,就表示系统已经成功安装到板载 eMMC。

点击用户名,输入初始化过程中设置的密码即可登录。以后 Jetson Nano 不需要插 SD 卡,会直接从板载 eMMC 启动。
登录后可以在 Jetson 终端执行以下命令确认:
findmnt /
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
head -n 1 /etc/nv_tegra_releaselsusb 显示 0955:7020,能否直接刷写?不能。它表示 Jetson 正常运行在 L4T USB Device Mode。必须进入 Force Recovery,直到 lsusb 显示 0955:7f21 NVIDIA Corp. APX。
系统位于板载 eMMC,而不是 SD 卡。本文的烧录命令也是把根文件系统写入 eMMC。
End-user configuration 怎么办?通过 Ubuntu 主机连接 /dev/ttyACM0:
sudo screen /dev/ttyACM0 115200然后在串口界面完成首次配置。
/dev/ttyACM0 怎么办?先检查:
lsusb | grep 0955
sudo dmesg | tail -30确认使用的是支持数据传输的 Micro-USB 线,并且连接的是 Jetson 的设备模式接口。如果 Jetson 使用独立 DC 电源,可重新插拔 Micro-USB 数据线后再检查。
确认已经移除 Force Recovery 短接帽,再彻底断电重启。若仍失败,保留串口启动日志和刷写日志最后 30 行,以便进一步定位供电、载板配置或镜像问题。
备份 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 删除。