1. 前言
博主于海鲜市场中购得一台研华的Jetson Nano,自带16G的Emmc,似乎没办法通过SD卡优先启动。
到手的版本是Ubuntu18,此版本已停止维护。
在Github上找到大神项目能够安装Ubuntu20.04Jetson-Nano-Ubuntu-20-image
但此项目只支持通过SD卡启动的Jetson Nano设备,且镜像需要烧录到64G内存卡,对于这个小小的16GEmmc来说绝对不够,于是乎,博主想到了曲线救国的方法
2.实现方法
在项目中有能够通过Emmc启动,但引导文件系统到SSD的方法,此曲线救国之法便基于此
总的来说,就是将rootfs从镜像中提取出来,在通过rsync同步到SSD中(同理,也应该可以使用U盘,SD卡等),虽然Emmc中还是18的系统,但Emmc目前只做引导作用,实际启动的是位于SSD的20.04系统。
3.如何操作
- 首先,下载博主打包好的rootfs压缩文件并解压。
文件目录如下
jetson
|--rootfs
|--SSD_mnt
- 准备SSD
你可以在Jetson Nano设备中解压,前提是你通过Emmc启动,也可以准备一个SSD硬盘盒将SSD连接到虚拟机,博主便是后者
连接到虚拟机后,检查设备是否存在
lsblk
会显示如下图
找到SSD设备,将其挂载到文件夹中,如图中sdb1
在解压后的文件夹中打开终端,挂载SSD到SSD_mnt中
sudo mount /dev/你自己的设备名 SSD_mnt
之后,使用rsync同步rootfs文件到SSD_mnt中
sudo rsync -aHX --delete /rootfs/ /SSD_mnt/
此命令将删除SSD文件并将rootfs复制到SSD中
你也可以检查SSD_mnt文件夹是否和rootfs文件夹一致
- 装回SSD,通过Emmc启动Jetson,进入18的系统中修改引导
使用vim打开引U-boot启动配置文件,引导启动文件系统到SSD
sudo vim /boot/extlinux/extlinux.conf
打开后如图
将图中圈起来的地方修改为SSD的rootfs分区名
将SSD中/boot/Image文件和/lib/module/4.9.253-tegra文件复制并替换到Emmc相同的路径下,
sudo cp -f /boot/Image /SSD_mnt/boot/
sudo cp -rf /lib/module/4.9.253-tegra /SSD_mnt/lib/module/
同时修改initrd.img的指向
sudo ln -sf initrd.img-4.9.253-tegra initrd.img
完成这些之后,重启系统便可进入新系统