Jetson Orin NX烧录镜像


由于Jetson NX主板自带的EMMC容量太小,所以要将系统烧录到SSD固态硬盘上。

一、查看NVME固态硬盘信息

要将系统恢复到固态硬盘前,需要先查看要恢复的固态硬盘的信息。请将NVME固态硬盘插入到Jetson orin NX16G的SSD插座上,并且将Jetson orin NX16G开机,打开终端,输入以下命令查看信息。

sudo fdisk -l /dev/nvme0n1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

记录下图中画红色方框的三个数据,第一个数据表示固态硬盘的容量,第二个数据表示多少个扇区(num_sectors:250069680),第三个数据表示每个扇区占的字节数(sector_size:512)。

二、准备L4T烧录包

1.下载文件

到NVIDIA官网下载Jetson Xavier NX系统L4T固件:

https://developer.nvidia.com/embedded/jetson-linux-r3521

下载最新的版本的固件,需要把Jetson Orin NX相关的L4T Driver Package[BSP]、Sample Root Filesystem这两个文件下载到本地。.Jetson Platform Fuse Burning and Secure Boot Documentation and Tools已经合并到L4TBSP中。
在这里插入图片描述

例如:我在虚拟机Ubuntu20.04系统新建一个jetsonNX文件夹,这里把文件下载到jetsonNX目录下。在空白处右键打开终端。

2.解压文件,这里注意sudo不可省略,否则会影响后面的安装,文件比较大,解压时间可能需要几分钟。

输入以下命令解压。

tar xf Jetson_Linux_R35.2.1_aarch64.tbz2

sudo tar xf Tegra_Linux_Sample-Root-Filesystem_R35.2.1_aarch64.tbz2 -C ./Linux_for_Tegra/rootfs/

3.安装qemu文件,输入y确认安装。

sudo apt-get install qemu-user-static

4.生成二进制文件

先输入以下命令进入Linux_for_Tegra文件夹,在运行命令生成二进制文件。

cd Linux_for_Tegra

sudo ./apply_binaries.sh
在这里插入图片描述

看到最后的success就表示OK。

为了不用每次刷机时,创建用户,可以执行Linux_for_Tegra/tools/l4t_create_default_user.sh 中创建默认的用户名和密码。

./l4t_create_default_user.sh -u 用户名 -p 密码 -a
sudo ./tools/l4t_create_default_user.sh -u jetson -p yahboom -a
在这里插入图片描述

三、修改系统数据

vim ./tools/kernel_flash/flash_l4t_nvme.xml

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按i进入编辑模式,然后将第一步查询到的sector_size和num_sectors的数据替换。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改完成后,按ESC键退出编辑模式,再输入:wq按回车键保存并退出。

四、构建系统镜像

1.构建qspi启动组件

在Linux_for_Tegra目录下执行以下命令

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash jetson-xavier-nx-devkit-qspi internal

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.构建系统镜像

在Linux_for_Tegra目录下执行以下命令

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_nvme.xml -S 118GiB --showlogs jetson-xavier-nx-devkit-emmc nvme0n1p1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面参数解释:

–no-flash:表示只编译不烧录系统。

–external-device nvme0n1p1:表示烧录到/dev/nvme0n1p1设备,即固态硬盘的APP分区。

-c ./tools/kernel_flash/flash_l4t_nvme.xml:指定烧录的xml文件,即第三步修改的文件。

-S 118GiB:表示为系统APP分区占用的空间大小,此数值为第一步查询到的固态硬盘容量-1。由于本次使用的固态硬盘实际容量只有119.2GiB,系统还需要预留1GiB空间给其他分区,所以APP占用118GiB就可以了。

–showlogs:表示显示LOG信息。

jetson-xavier-nx-devkit-emmc nvme0n1p1:表示烧录的是Jetson Xavier NX设备和nvme0n1p1分区。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后看到Success就表示成功构建系统。

五、替换系统的IMG文件

1.到资料中的出厂镜像下载最新版本的镜像系统压缩包文件,然后解压得到img镜像文件。

2.进入Linux_for_Tegra目录

3.复制原系统文件img作为备份(为了节约空间可以不做备份)

sudo cp tools/kernel_flash/images/external/system.img tools/kernel_flash/images/external/system.img.bak

4.复制并覆盖system.img系统文件将上一步生成的nx_rootfs.img文件复制到external/目录下,覆盖掉system.img文件。

sudo cp bootloader/nx_rootfs.img tools/kernel_flash/images/external/system.img

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中bootloader/nx_rootfs.img为下载的出厂镜像文件路径,根据实际路径修改,这里已经提前修改名称为nx_rootfs.img,注意名称不能有中文。

六、进入刷机模式

1.Jetson Xavier NX进入系统REC刷机模式。

将跳线帽连接到FC REC和GND引脚,也就是连接到核心板下方载板的第二和第三个引脚,如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.连接线路,将HDMI显示屏、鼠标、键盘和microUSB数据线连接到Jetson NX上,最后再接入电源。由于上一步已经将跳线帽连接FC REC和GND引脚,所以上电开机后会自动进入REC刷机模式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里注意一下使用虚拟机需要把设备设置为连接到虚拟机上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

七、开始刷机

打开终端,在Linux_for_Tegra目录下执行以下命令:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_nvme.xml -S 118GiB --showlogs jetson-xavier-nx-devkit-emmc nvme0n1p1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:开始烧录系统后,Jetson Xavier NX会重启一遍,如果是使用虚拟机,需要再手动将Jetson Xavier NX连接到虚拟机,否则会出现连接不上而超时退出烧录。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

烧录完成后,Jetson Xavier NX会自动开机。

注意:烧录完系统请拔掉FC REC和GND的跳线帽。

一遍,如果是使用虚拟机,需要再手动将Jetson Xavier NX连接到虚拟机,否则会出现连接不上而超时退出烧录。

[外链图片转存中…(img-iQfCkzOr-1701749432535)]

烧录完成后,Jetson Xavier NX会自动开机。

注意:烧录完系统请拔掉FC REC和GND的跳线帽。

后续如果还需要烧录备份的系统,则从第五步开始就可以了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐