重新安装系统
本文档使用命令行方式刷机。
官方教程地址:
Quick Start — NVIDIA Jetson Linux Developer Guide
刷机工具下载地址,L4T 版本为 36.4.4,需下载 Driver Package (BSP)和 Sample Root Filesystem 这两项:
Jetson Linux Release 36.4.4 | NVIDIA Developer
下载完成后,将两个压缩文件拷贝到X86架构的Ubuntu系统的主机(HOST)上,运行下面命令:
$ tar xf ${L4T_RELEASE_PACKAGE}
$ sudo tar xpf ${SAMPLE_FS_PACKAGE} -C Linux_for_Tegra/rootfs/
$ cd Linux_for_Tegra/
$ sudo ./tools/l4t_flash_prerequisites.sh
$ sudo ./apply_binaries.sh
在 Orin AGX 上执行以下步骤:
- 断电
- 连接 HOST 主机(USB-A)和 AGX(USB-C),注意是 AGX 的 DEBUG 口而非 DC 口
- 按住中间的 Recovery 按钮不放
- AGX 上电,继续按住 Recovery 保持 5s 以上
- 按左侧 Power 按钮,松开
- 松开 Recovery 按钮
此时 AGX 应该已经进入 Recovery Mode,在 HOST 终端使用 lsusb命令应该能看到 NVIDIA Corp. APX。
然后在 HOST 上执行命令
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_t234_nvme.xml \
--showlogs --network usb0 jetson-agx-orin-devkit external
命令执行完成后,AGX 断电,重启,接入显示器,屏幕会疯狂输出命令行,等待。
稍候,会看到 Ubuntu 的安装和配置界面,在本阶段设置账号和密码等内容。
如要安装 Chromium 浏览器,安装完成后需要手动退出,不要傻等。
清空EMMC
刷完系统后,引导和系统已经被安装到 NVME 固态硬盘。
但是 EMMC 中的数据和引导还在,烧录命令未包含擦除和覆盖 EMMC 存储的操作。
当前 NVME 有更高启动顺序,如果有强迫症,可以删除 EMMC 中的所有数据。
先确认 EMMC 设备节点:
pat@pat-desktop:~$ lsblk -o NAME,TYPE,SIZE,MOUNTPOINT | grep mmcblk
mmcblk0 disk 59.2G
├─mmcblk0p1 part 57.8G
├─mmcblk0p2 part 128M
├─mmcblk0p3 part 768K
├─mmcblk0p4 part 31.6M
├─mmcblk0p5 part 128M
├─mmcblk0p6 part 768K
├─mmcblk0p7 part 31.6M
├─mmcblk0p8 part 80M
├─mmcblk0p9 part 512K
├─mmcblk0p10 part 64M
├─mmcblk0p11 part 80M
├─mmcblk0p12 part 512K
├─mmcblk0p13 part 64M
├─mmcblk0p14 part 400M
└─mmcblk0p15 part 479.5M
mmcblk0boot0 disk 4M
mmcblk0boot1 disk 4M
确认存在的引导:
pat@pat-desktop:~$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0002,0000,0003,0004
Boot0000* Enter Setup FvVol(49a79a15-8f69-4be7-a30c-a172f44abce7)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)
Boot0001* UEFI WD_BLACK SN850X 1000GB 251256802522 1 VenHw(1e5a432c-0466-4d31-b009-d4d9239271d3)/MemoryMapped(11,0x14160000,0x1417ffff)/PciRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-1B-44-8B-4D-D5-A5-9A)N.....YM....R,Y.
Boot0002* UEFI eMMC Device VenHw(1e5a432c-0466-4d31-b009-d4d9239271d3)/MemoryMapped(11,0x3460000,0x347ffff)/eMMC(0)/Ctrl(0x0)N.....YM....R,Y.
Boot0003* BootManagerMenuApp FvVol(49a79a15-8f69-4be7-a30c-a172f44abce7)/FvFile(eec25bdc-67f2-4d95-b1d5-f81b2039d11d)
Boot0004* UEFI Shell FvVol(49a79a15-8f69-4be7-a30c-a172f44abce7)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
能看到 Boot0001 和 Boot0002 分别是 NVME 和 EMMC 的两块硬盘,启动顺序 Boot0001 在 Boot0002 之前。
接下来开始擦除 EMMC 分区,先卸载 EMMC 所有分区:
sudo umount -a /dev/mmcblk0p* 2>/dev/null
停止 udisk2 服务,阻止系统自动挂载 EMMC:
sudo systemctl stop udisks2
sudo systemctl mask udisks2 # 临时禁用,重启后恢复
擦除 EMMC 数据:
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=4M status=progress conv=fsync
擦除之后应该显示:
pat@pat-desktop:~$ lsblk -o NAME,TYPE,SIZE,MOUNTPOINT | grep mmcblk
mmcblk0 disk 59.2G
mmcblk0boot0 disk 4M
mmcblk0boot1 disk 4M
剩下的 boot0 和 boot1 分区确定是空的,但是由于没有写入权限,没找到清理的方法,可能是 EMMC 硬件专有引导分区,不能删除。那就先不删了。
此外,引导仍然存在,这是因为引导顺序并非存储在 EMMC 中,UEFI 的引导项要么手动删除,要么移除物理设备(EMMC 是焊上去的)。
执行下面命令,可以删除该引导项:
pat@pat-desktop:~$ sudo efibootmgr -b 2 -B
BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0000,0003,0004
Boot0000* Enter Setup
Boot0001* UEFI WD_BLACK SN850X 1000GB 251256802522 1
Boot0003* BootManagerMenuApp
Boot0004* UEFI Shell
评论