本教程适用于已经挂载过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(使用前将#替换为@)