NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡重新刷机

2023-05-16

本教程适用于已经挂载过SD卡的NX系统刷机。总结为:

(1)先将系统烧录至NX板子自带系统上。

(2)再卸载SD卡、格式化、重新分区等;

(3)拷贝roof到SD卡;

(4)在SD卡分区上烧录系统。

系统烧录部分参考https://blog.csdn.net/qq_33980935/article/details/120169170

一、刷机准备

1. 烧录主机:Ubuntu16.04/18.04 x86_64

  2. 下载2个系统软件包:

        (1)Linux Driver Package and the Root File System -> Linux Driver Package and the Root File System for TX2 and Xavier and Xavier_nx_3243.rar,这里面包含两个压缩包,Linux Driver Package和the Root File System。

        1) Linux Driver Package

Tegra186_Linux_R<version-i>_aarch64.tbz2
例如:Xavier R32.4.2: Tegra186_Linux_R32.4.2_aarch64.tbz2

        2) the Root File System
Tegra-Linux-Sample-Root-Filesystem_R<version-i>_aarch64.tbz2
例如:Xavier R32.4.2: Tegra-Linux-Sample-Root-Filesystem_R32.4.2_aarch64.tbz2

        (2)BSP -> Xavier NX -> 32.4.3 -> Realtimes_L4T_3243_xavier-NX_V1.7.tar.gz

        3) BSP 支持包
Realtimes-L4T-<version>.tar
例如:Xavier L4T 版本 32.4.2: Realtimes_L4T_3242_Xavier.tar

        (3)至此,刷环境所需要的三个安装包均已下载完成。

    3. 查询NX自身系统分区(mmcblk0p1)的PARTUUID值

$sudo blkid /dev/mmcblk0p1

执行上述命令,结果如下,保存PARTUUID值。

/dev/mmcblk0p1: UUID="2d351453-be65-48f1-857b-f8d4c9eaad72" TYPE="ext4" PARTLABEL="APP" PARTUUID="7fdb1823-8fe1-4003-8a7d-c32c5fc9123a"

二、烧录环境搭建

2.1 将上面所需3个文件拷贝至烧录主机同一目录下

例如:/home/sd/

2.2 解压 Linux Driver Package

$ tar –vxf Tegra186_Linux_R<version-i>_aarch64.tbz2

在文件夹/sd下生成文件夹目录 Linux_for_Tegra

2.3 设置根文件系统

  1. 进入 Linux Driver Package 的根文件系统目录

$ cd <your_L4T_root>/Linux_for_Tegra/rootfs

  2. 解压 the Root File System,运行:

$ sudo tar -jxpf ../../Tegra-Linux-Sample-Root-Filesystem_R<version-i>_aarch64.tbz2

2.4 安装 BSP 支持包

  1. 将 Realtimes-L4T-<version>.tar 包解压到与 Linux_for_Tegra 文件夹同级目录下面,使用命令:

$ tar -xvf Realtimes-L4T-<version>.tar

  2. 进入到 Realtimes-L4T 文件夹,运行

$ sudo ./install.sh

安装成功,会有 success 提示!

  3. 运行 apply_binaries.sh 脚本拷贝 NVIDIA 用户空间库进入目标文件系统

$ cd ../Linux_for_Tegra/
$ sudo ./apply_binaries.sh

4. 向l4t-rootfs-uuid.txt写入PARTUUID值

进入 Linux_for_Tegra 目录,向l4t-rootfs-uuid.txt写入/dev/mmcblk0p1(NX本身系统位置)的PARTUUID值:

$ echo ‘7fdb1823-8fe1-4003-8a7d-c32c5fc9123a"’ >bootloader/l4t-rootfs-uuid.txt

三、系统烧录

使机器设备进入 recovery 模式,具体操作为:

(1)给NX断电后,用USB连接NX和烧录主机,长按NX的recovery键3秒以上,进入recovery模式。

(2)在烧录主机终端输入lsusb,出现nvidia相关字眼,即成功进入recovery模式。

(3)在烧录主机终端,切换到 Linux_for_Tegra 目录,执行

$ sudo ./flash.sh rtso-6002 mmcblk0p1

烧录完成,NX自动启动。启动界面如图所示,根据提示配置系统。

四、从SD卡启动系统

        系统启动后,使用$sudo fdisk -l 查看 ssd 设备名称。如果 SSD 之前没有进行格式化,需要把 SSD 格式化后再使用。对于已挂载的 SD卡,需要使用 umount 卸载 SD 卡,再格式化。由于我们事先已经在SD卡中装过系统,因此在下图中sd卡名称为/dev/mmcblk1,下面还有一个名为 /dev/mmcblk1p1的分区。

(1)对于已经挂载过的SD卡,先卸载:

$ unmount /dev/mmcblk1p1

(2)再格式化SD卡:

$ sudo mkfs.ext4 /dev/mmcblk1

格式化完成后,再执行sudo fdisk -l ,如图,/dev/mmcblk1 下已经没有原来的分区。

(3)创建一个新的 GPT:

$ sudo parted /dev/mmcblk1 mklabel gpt

 (4)添加分区,例如准备分区的大小为50GB:

$ sudo parted /dev/mmcblk1 mkpart primary 0GB 50GB

 添加完分区后,使用 $sudo fdisk -l 可以看到 nvme0n1 新增一个分区。

(5)格式化分区,把分区格式化为 ext4 格式

$ sudo mkfs.ext4 /dev/mmcblk1p1

 完成后查看分区的PARTUUID值,并保存。

$ sudo blkid /dev/mmcblk1p1

/dev/mmcblk1p1: UUID="6bf3f869-1514-4ac9-b6fe-a524f4fc2867" TYPE="ext4" PARTLABEL="primary" PARTUUID="4c3f9314-0fbf-41b9-b856-8917e9aebe26"

(6)拷贝 rootfs 到 SSD

 $ sudo dd if=/dev/mmcblk0p1 of=/dev/mmcblk1p1 bs=1M

结果如图:

(7)修复文件系统,执行如下:

$ sudo -s
$ fsck.ext4 /dev/mmcblk1p1

(8)烧写从 SSD 启动系统

在烧录主机,使 Xavier_nx 设备进入 recovery 模式(进入 recovery 模式参考载板手册),切换到 Linux_for_Tegra 目录,首先向l4t-rootfs-uuid.txt写入/dev/mmcblk1p1的PARTUUID值

$  echo ‘4c3f9314-0fbf-41b9-b856-8917e9aebe26’ >bootloader/l4t-rootfs-uuid.txt

再烧录

$ sudo ./flash.sh rtso-6002 mmcblk1p1

(9)调整系统分区大小

在 Xavier_nx 系统启动后

$ df -h

显示 mmcblk0n1p1 已经成为根目录,但是 nvme0n1p1 显示存储大小不是分区的大小,执行以下命令调整大小

$ sudo resize2fs /dev/mmcblk1p1

 结果如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡重新刷机 的相关文章

随机推荐