目录
第一步:虚拟机
第二步:装SDK Manager
第三步:将系统装到eMMC
第四步:将系统装到SSD内,我以新买的500G硬盘为例
第五步:装各种库
解决问题时,我比较重视逻辑梳理,以下是图示化的刷机步骤,希望能帮助大家对整个装机过程有个整体认知。
先看注意:
a、创建的虚拟机在分配磁盘大小时,根据自己主机的配置建议直接分配100G以上空间,分配4G以上内存、4核(这样编译程序能快些)。
b、nvidia 的sdk manager在第一次给target板刷系统或安装系统时,会给host安装配套工具,会占用大量空间(可以自主选择安不安装,我这里选择安装);
c、如果需要搭建QT项目的交叉开发环境,编译QT的库,需要100G空间;
1、首先下载 vmware虚拟机;然后安装软件,建议使用16以后的版本,以前15的版本容易造成win10系统崩溃,我使用的是16.2.4。
2、下载Ubuntu系统;我使用的是18.04,可以根据自己习惯,建议使用18以上的版本;
3、创建虚拟机;
先看注意:
a、SDK Manager的下载和登录都需要Nvidia账户,这需要自行注册;
1、下载Nvidia SDK Manager;我直接安装的最新版本1.8.3
2、安装Nvidia SDK Manager;
sudo dpkg -i sdkmanager_1.8.3-10426_amd64.deb
3、登录SDK Manager
先看注意:
a、SDK Manager的下载和登录都需要Nvidia账户,这需要自行注册;
b、USB连接目标板和host主机后,会提示选择套件类型,我选择第一个,他们的区别在哪里我也不清楚,大家清楚的可以评论补充;
c、在选择“Manual Setup - Jetson Xavier NX”模式,强制恢复时,烧写完系统后会等待一段时间。
d、在可以选择安装版本,我直接选择最新的版本,安装的系统时20.4的,可以根据自己需要选择低版本的。
1、由于需要重新刷系统,需要进入recovery模式。用跳线帽将xavier nx第3引脚(FC_REC)与第2引脚(GND,第4引脚也行)短接(上电后进入该模式);
2、usb连接host主机并给target板子供电。
3、sdk操作第一步:因为eMMC空间有限问题,先安装系统,不安装库
4、sdk操作第二步:由于需要重装系统,我这里选择“Manual Setup - Jetson Xavier NX”。此模式用于强制恢复target板,我认为应该是重新格式化emmc后再烧写系统。在New Username 和Password 内预配置目标板的用户名和密码。
5、sdk操作第三步:连接显示器、鼠标、键盘,等待刷机成功,拔掉短路帽。
先看注意:
a、执行第4步和第5步前,需要检查SSD的设备名称是不是/dev/nvme01p1,
如果不一致,需要修改以下文件对应位置:copy-rootfs-ssd.sh、data/setssdroot.sh、data/setssdroot.service
原因:copy-rootfs-ssd脚本会将SSD挂载到/mnt下,检查SSD的设备名称与脚本内的名称不一致会导致不能拷贝文件系统和设置SSD启动失败;
b、如果需要给SSD分区,可以在win10上使用磁盘管理工具提前分好。
1、由于新买的SSD默认是NTFS的文件系统格式,用在Ubuntu上,需要格式化成Ext4的格式,我使用ubuntu的自带的 Disks 软件,来格式化硬盘(直接搜索就出来了)。
2、在SSD中打开终端,将rootOnNVMe 克隆到本地
git clone https://github.com/jetsonhacks/rootOnNVMe.git
3、进入 rootOnNVMe 目录
cd rootOnNVMe
4、执行拷贝文件系统
./copy-rootfs-ssd.sh
5、设置ssd为启动盘
./setup-service.sh
6、重启生效
reboot
先看注意:
a、重启Jetson Xavier NX 后,不要更新源,装编译套件时和其他库时,需要用到装系统时自带的源,更换源后可能导致这些东西安装不成功;
b、套件再次连接host时,不需要短路帽
1、我500G的空间够大,所有库都装了,不要再勾选Jetson Linux
2、等待完成后,在目标板上打开终端,输入
g++ -v
OK!
至此,成功的将Jetson Xavier NX 套件将系统装到SSD,并且安装了Nvidia自带的库。