最近新入手一块EMMC版本的JETSON XAVIER NX,奈何淘宝上官方的载板太贵了,经货比三家选择了WeAct Studio工作室设计的载板,这款载板虽小但是“五脏俱全”,支持SD卡、NVME固态硬盘等。载板到手后,便着手于安装系统,正好手边有一张128g的TF卡,便想把系统安装到TF卡上,但是使用这块载板并不能像xavier nx套件一样将镜像烧录到sd卡,插上就能开机,也不能使用nvidia sdkmanager将系统直接烧录到sd卡上,且工作室的文档也没介绍如何将镜像烧录到sd卡上,然后自己捣鼓了两天,最终通过系统迁移的方法成功把系统安装到了tf卡上,该方法虽然未测试过其他JETSON系列的产品,但是原理是一样的,应该都能适用。
工作室的安装系统的教程链接如下:WeAct Studio底板使用教程
通过阅读使用教程可以知道,他们是通过修改官方镜像的设备树文件,使得系统能读取SD卡的。
首先,需要安装nvidia官方的sdkmanager,下载的链接如下:SDKmanager
下载后,安装到自己电脑上的Linux系统上,这里我的Linux系统版本是18.04。打开sdkmanager,界面如下:
选择相应的Target Hardware(我这里选择的是xavier nx)以及Jetpack版本(选择的最新的4.6版本),不要勾选Host Machine,然后点击continue:
勾选Jetson OS下载镜像,先不要勾选Jetson SDK Components,勾选I accep the… ,点击continue,开始下载镜像。下载完成后,可以看到Jetson OS image会显示OS image ready,同时,会在~/nvidia/nvidia_sdk/文件夹下有相应版本烧写所需要的文件,如下图所示:
接着,在WeAct Studio的github上下载相应的设备树文件:设备树
不同设备对应不同的设备树:
我这里所需要的是XavierNX的设备树,因此,进入~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra/kernel/dtb,将下载好的设备树tegra194-p3668-all-p3509-0000复制到该目录下。
复制后,将板子按照步骤进入recover模式,并使用USB线将板子连接到电脑,若成功进入recover模式,在电脑终端中输入lsusb命令,会发现Nvidia Corp。
通过命令进入到~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra文件夹下,在该文件夹打开终端,输入如下命令进行刷机:
sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
烧录成功:
对系统像安装Ubuntu系统时一样进行简单设置后,等待五分钟左右,系统就成功安装到了EMMC中了,并且成功进入了系统界面:
系统迁移的前提是将SD卡挂载到系统下。
先需要使用如下命令将SD卡格式化为EXT4格式:
sudo mke2fs -t ext4 /dev/mmcblk1p1
然后将SD卡挂载到/mnt下:
sudo mount /dev/mmcblk1p1 /mnt
使用df -h命令检查可以看到SD卡成功挂载到/mnt文件夹下:
这里参考了github上jetson系统迁移到固态硬盘的方法:rootOnNVMe
先通过终端命令:
git clone https://github.com/jetsonhacks/rootOnNVMe
下载脚本
进入下载的文件夹,用文本编辑工具打开脚本copy-rootfs-ssd.sh:
cd ~/rootOnNVMe-master
sudo gedit copy-rootfs-ssd.sh
将sudo mount /dev/nvme0n1p1 /mnt修改为刚挂载好的SD卡所在目录,我这里SD卡目录为/dev/mmcblk1p1,如下图所示:
在rootOnNVMe文件夹下打开终端,运行脚本copy-rootfs-ssd.sh复制系统到SD卡:
./copy-rootfs-ssd.sh
复制完成后,运行脚本setup-service.sh配置启动项:
./setup-service.sh
关机,让主板进入recover模式,并将数据线连接到烧录的电脑上
在烧录的电脑上通过命令进入到~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra文件夹下,在该文件夹打开终端,输入如下命令更新emmc内部引导(注意这里命令的最后目标是SD卡):
sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk1p1
更新完成后,如下图所示:
重启系统,使用df -h查看磁盘情况如下:
可以看到系统已经成功迁移到SD卡中。
这里的方法是我查阅很多资料重装了许多次系统并且结合了NVME迁移教程所测试出来的,虽未在其他jetson设备上测试过,但应该都能适用,大家迁移系统到U盘、NVME、SSD中只要将文中命令里我SD卡的文件夹位置替换为各自的硬盘位置即可。
挂载教程
迁移教程
载板用户手册