将Jetson Nano的系统修改至NVME的ssd(通过M.2 / PCIe)上运行。
如果你使用的是jetson nano模组,16G的emmc显然很难提供足够的使用空间,本文提供了将系统移至m.2接口接入ssd中的方法。
参考自如下资源
[1] https://devtalk.nvidia.com/default/topic/1061883/jetson-nano/jetson-nano-boot-from-nvme-via-m-2-pcie-fails/post/5392151/#5392151
[2] https://www.jetsonhacks.com/2019/09/17/jetson-nano-run-from-usb-drive/
[3] https://github.com/JetsonHacksNano/rootOnUSB
本文所有指令均在nano的终端中操作。
- 首先,将接入的ssd 调整磁盘格式为GPT。(可以在其他windows上修改)
clone 一个 rootOnUSB,其中有很多可以参考的操作脚本。
https://www.jetsonhacks.com/2019/09/17/jetson-nano-run-from-usb-drive/
我用的是m.2的接口与usb的方法有些许不同。
如果用得usb接口扩展硬盘直接参考第二篇文章。
$ git clone https://github.com/JetsonHacksNano/rootOnUSB
$ cd rootOnUSB
- 如果是usb硬盘则可以直接运行下面的脚本:
$ ./addUSBToInitramfs.sh
不过我是nvme的ssd,则是运行以下指令:
$ sudo cp ./data/usb-firmware /etc/initramfs-tools/hooks
$ cd /etc/initramfs-tools/hooks
$ sudo chmod +x /etc/initramfs-tools/hooks/usb-firmware
$ sudo mkinitramfs -o /boot/initrd.img-$(uname -r)
# 或者:(建议tab tab tab)
$ sudo mkinitramfs -o /boot/initrd.img-4.9.140-tegra
- 再次确认你的分区正常
$ df
有设备/dev/nvme0n1p1
- 使用
copyRootToUSB
脚本,将原本的系统copy至/dev/nvme0n1p1
设备中。
$ cd ~/rootOnUSB # 注意 这里是你自己的路径,与我可能不同
$ ./copyRootToUSB.sh -p /dev/nvme0n1p1
这一步将emmc或者sdcard(sd卡没试过,按参考的文章中是可以的)中的文件copy到新硬盘中,耗时比较久。
- 修改/boot/extlinux/extlinux.conf文件
sudo gedit /boot/extlinux/extlinux.conf
改为如下:
TIMEOUT 30
DEFAULT primary
MENU TITLE L4T boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd.img
APPEND ${cbootargs} pci=nomsi root=/dev/nvme0n1p1 quiet
- 修改开机设备挂载
/etc/fstab
$ sudo gedit /etc/fstab
修改为:
/dev/root / ext4 discard,noatime,errors=remount-ro 0 1
/dev/mmcblk0p1 /mnt/mmc ext4 discard,noatime,errors=remount-ro 0 2
完成!重启即可使用。
$ sudo reboot