使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程

前言

本文介绍如何使用SDK Manager对NVIDIA Xavier NX(eMMC)刷机。

使用SDK Manager刷机,要先在一个带有Linux系统的主机上安装该工具包,然后使用数据线连接NX设备,之后烧录Jetson Linux(NX的操作系统)和Jetson SDK Components(CUDA、Computer Vision等组件)。SDK Manager是一个工具包,相关信息参考官网NVIDIA SDK Manager Documentation,在NVIDIA SDK Manager->System Requirements条目中查看运行它的软硬件要求,在Download and Install->Download and Run SDK Manager条目中查看它的下载方式和运行它的首次配置,在Download and Install->Install Jetson Software with SDK Manager条目中查看刷机步骤。

本文分为以下几个部分:

(1)刷机前的准备

(2)安装Ubuntu虚拟机

(3)安装SDK Manager

(4)烧录系统

(5)设置SSD启动项

(6)烧录SDK组件

1.刷机前的准备

软硬件:虚拟机VMware Workstation 16 Pro,版本16.1.1。两根杜邦线、原装数据线、键盘、鼠标、显示器。

版本对应:使用Pytorch框架运行深度学习模型,要找好NX、JetPack、CUDA、cuDNN、Pytorch、torchvision、Python之间的版本对应关系,有一对关系不匹配就可能导致模型无法运行,所以要先确定好各自的版本。不同的Jetson设备支持不同的JetPack、同一NX可支持不同的JetPack、不同的JetPack包含不同的CUDA、cuDNN,不同的CUDA、cuDNN支持不同的Pytorch版本、不同的Pytorch版本支持不同的torchvision和Python。Jetson设备和JetPack的版本对应关系可在JetPack Archive | NVIDIA Developer中查看,JetPack和CUDA、cuDNN的版本对应关系可在JetPack Archive | NVIDIA Developer中点击相关JetPack版本查看,JetPack、Python、Pytorch的版本对应关系可在Jetson Zoo - eLinux.org、PyTorch for Jetson - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums中查看,Python、Pytorch、torchvision的版本对应关系可在pytorch/vision: Datasets, Transforms and Models specific to Computer Vision (github.com)中查看。

2.安装Ubuntu虚拟机

(1)下载Ubuntu系统

本次刷机主机使用ubuntu-20.04.5-desktop-amd64.iso

(2)创建虚拟机

打开VMware,点击文件>新建虚拟机,按下列图选择。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第1张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第2张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第3张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第4张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第5张图片
点击下一步,选择自定义硬件,选择‘新CD/DVD(SATA)’,右侧‘连接’选择‘使用ISO映像文件’,选择下载的Ubuntu.iso文件。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第6张图片

(3)配置Ubuntu

创建完虚拟机后启动它,然后按下图配置。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第7张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第8张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第9张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第10张图片

(4)安装VMware Tools

如果发现Ubuntu桌面只在VMware中间显示,那就要安装VMware Tools。点击虚拟机->安装VMware Tools(T)

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第11张图片
然后会在Ubuntu桌面左边看到一个光盘DVD的图标,鼠标放到上面显示VMware Tools。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第12张图片
点击光盘,或者打开文件,也会显示VMware Tools。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第13张图片
在Terminal中执行命令tar -xzvf

在这里插入图片描述
解压之后使用ls命令可以看到vmware-install.pl文件。

在这里插入图片描述
执行命令sudo ./vmware-install.pl安装,reboot重启。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第14张图片

(5)Ubuntu系统换apt源

通过图形界面换源,在设置中找到Software & Updates,按下图选择,在里面选择清华源或者其他国内源。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第15张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第16张图片

(6)遇到的问题

如果出现System program problem detected问题,则在Terminal中输入sudo gedit /etc/default/apport,把里面的enabled=1改为0。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第17张图片

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第18张图片

3.安装SDK Manager

打开Ubuntu,在NVIDIA SDK Manager | NVIDIA Developer下载.deb

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第19张图片
下载完成Ctrl+T打开Terminal,执行命令sudo apt install ./sdkmanager_[version]-[build#]_amd64.deb安装SDK Manager。

4.烧录系统

(1)启动SDK Manager

在Terminal中执行sdkmanager,首次使用要使用NVIDIA的账号登录,也可以扫描二维码登录。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第20张图片

(2)连接NX和电脑

用杜邦线短接GND和FC REC使NX进入恢复模式,再使用自带的USB线连接NX和电脑,然后给NX连上鼠标、键盘、显示器,最后插上电源。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第21张图片

(3)STEPS

连上数据线之后,选择USB接入虚拟机,在Terminal中执行lsusb命令,如果出现‘NVIDIA Corp. APX’,则表示NX连接上了虚拟机。连上数据线之后会自动跳出来设备选项,如果没有就在SDK Manager STEP 01Target Hardware选择设备。Host Machine不要选(选了表示在主机上安装),在TARGET OPERATING SYSTEM选择Linux JetPack版本,然后continue

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第22张图片

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第23张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第24张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第25张图片
使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第26张图片

在STEP 02,选择Jetson Linux,下面的Jetson SDK Components之后安装。因为此时是安装在emmc中,emmc的容量不够。先烧录系统,把系统设置成SSD启动之后再安装Jetson SDK Components。可以点击CUDA等查看版本信息。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第27张图片

在STEP 03,进行烧录。等到烧录过程完成差不多一半时,出现下图,1.选项选择Manual Setup - Jetson Xavier NX[developer kit version],8.选项设置NX中系统的用户名和密码,然后点击Flash继续烧录,这时NX的显示器会出现相关界面,在NX上设置就可以了。等走到STEP 04时操作系统就烧录完成了。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第28张图片

(4)NX中Ubuntu系统换apt源

可按照虚拟机中Ubuntu的换源方式,也可以按下面方式。

备份源:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bat

编辑新源文件:sudo gedit /etc/apt/sources.list

注释新源文件原来的内容,在ubuntu-ports | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror中找到适合Ubuntu 20.04LTS的源,复制到新源文件。

执行sudo apt-get updatesudo apt-get upgrade更新。

5.设置SSD启动项

(1)格式化SSD

烧录完成后,拔掉杜邦线和USB线,在NX上格式化安装的SSD。打开菜单,找到Disk。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第29张图片

启动磁盘应用程序,可以看到SSD,点击右上角三条杠选择Format Disk,进行格式化。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第30张图片

点击Format,选择EXT4格式。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第31张图片

格式化完成之后全部变成了Free Space。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第32张图片

选择主分区大小,Free Space Following选择16GB。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第33张图片

起个名字给卷,create

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第34张图片

完成之后如下图。

使用SDK Manager对Jetson Xavier NX(eMMC)刷机的过程_第35张图片

(2)把系统文件从emmc复制到SSD

克隆GitHub项目,依次执行命令
git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe
./copy-rootfs-ssd.sh

(3)设置从SSD启动

./setup-service.sh,重启,执行df -h,看到SSD设备使用率大于零。

6.烧录SDK组件

(1)安装CUDA、cuDNN

烧录SDK时不用插杜邦线,运行SDK Manager,在SETP02中只选择第二项Jetson SDK Components,其余不变,继续安装,等到安装完毕。安装时失败了,更换了NX的软件源就安装成功了。

(2)配置CUDA、cuDNN

依次执行以下命令:

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_cnn_infer.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_cnn_infer.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_cnn_train.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_cnn_train.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_ops_infer.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_ops_infer.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_ops_train.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_ops_train.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_adv_infer.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_adv_infer.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_adv_train.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn_adv_train.so.8

sudo ln -sf /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn.so.8.4.1 /usr/local/cuda-11.4/targets/aarch64-linux/lib/libcudnn.so.8

如果出现以下问题,执行上面命令。

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_cnn_infe r.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_cnn_trai n.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_ops_infe r.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_ops_trai n.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_adv_infe r.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn_adv_trai n.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda/targets/aarch64-linux/lib/libcudnn.so.8 is not a symbolic link

你可能感兴趣的:(计算机视觉)