当前位置:   article > 正文

NVIDIA Jetson Xavier NX 刷机记录(使用SDK Manager方法,并重新安装opencv)_jetson xavier nx刷机

jetson xavier nx刷机

本文章仅适用于使用 SDK Manager 对 NVIDIA Jetson 系列的emmc产品进行刷机。

准备工作

  1. 一台装有 Ubuntu16.04 或 18.04 的主机(虚拟机也行),剩余空间至少30G,因为后面需要下载 CUDA 等安装包到主机上,空间太小会报警告;
  2. 从 NVIDIA 官网下载 SDK Manager,下载地址:SDK Manager | NVIDIA Developer
  3. 一根 usb 数据线连接主机和 jetson;
  4. jetson 上电开机,并连接一个显示屏;

一、开始刷机 

jetson端:

将NX的FC REC引脚和GND引脚短接(二三引脚还是三四引脚都得)让NX进入烧写模式

短接可以使用跳线帽或者杜邦线

然后通过NX的microusb接口连接主机的USB接口,jetson端的步骤就已经完成了

主机端:

开始刷机前需要将你的主机安装上该SDK Manager

sudo apt install ./sdkmanager_2.0.0-11402_amd64.deb   //具体什么版本改成对应的

使用命令启动SDK

sdkmanager

我们等待一会将会看见页面如下所示

直接选择LOGIN登录,该登录需要你的NVIDIA 账号(没有的话自己申请一个),选择登录方式为Developer账户(跳转到NVIDIA网页登录确认)

STEP 01

当你登录成功后就看见这个界面,按这个图片的选择来打√,第一个不用管,第二个是选择你的jetson板子类型,我们是jetson xavier nx就选jetson xacier nx,下面那个红色是表示未检查到板子,这时候需要检查usb线有没有和nx连接到,多拔插几次或者换根数据线,直到下面是绿色为止

第三个JetPack是重中之重,这决定了你的ubuntu、CUDA等版本,根据自己的需求来选择具体的JetPack版本。该对应关系可在英伟达官网查到JetPack Archive | NVIDIA Developer,如多数教程选择的Ubuntu18.04就对应jetpack4.5.1版本

STEP 02

注意!这里我们先只安装Jetpack系统,等将系统迁移到SSD上面后,再进行其他SDK组件的安装(jetson Xavier NX系统自带内存16g不足以安装其他SDK组件)

勾选左下角接收协议后才能点击continue进入下一步下载安装!系统剩余空间如果大于17GB即可继续下载安装jepack系统。如果提醒disk内存不够或还需要xxMB,无需担心(文件下载到主机的路径无需更改,为保证后续组件安装,建议在开始使用SDKmanager前,主机留足40G以上的内存)

STEP 03

接下来就是漫长的等待下载安装界面

当下载完成要刷新目标设备时,SDK Manager 会打开一个对话框。提示会提供有关设备以使其准备就绪以进行闪烁的说明:其中,将启动方式更改为手动,输入并创建 Jetson 的用户名和密码。(后续安装SDK组件过程中选择自动)

STEP04

等待系统烧写完成,时间稍久,Jetson NX会重启,

我们拔掉杜邦线或者跳线帽,如果接上显示屏就会看到ubuntu登录界面,无外接显示屏看进度条和听风扇转速就知道了。(此过程中可能会提醒烧写超时无需紧张继续即可,如果报错可以关掉SDKmanager重新烧录,一般电脑和NX的USB连线全程保持不断开就没问题)开机后连上键鼠,启动ubuntu系统后连接wifi、添加中文输入法、设置快捷键等基本操作。

此时nx的系统烧录就已经完成,但使用 Jetson-stats 来查看信息的时候,会发现cuda、opencv、等应用都没有被安装,这需要我们后续再接在SDK Manager再烧录一次,但在此之前我们需要迁移系统

二、设置SSD为首启动方式(扩容)

1、将SSD格式化

由于官方自带内存仅为16G,厂家一般提供SSD内存条用以扩容。插上内存条SSD后,在NX启动的Ubuntu系统中,打开disks软件,点击右上角菜单,将固态硬盘格式化。无需更改选项,直接格式化。然后点击左下角+号继续分区。

点击加号开始分区,增加16GB的空间作为SWAP交换空间(也可用gparted实现)重命名后创建。

效果如图所示:

2、将root等信息从SD卡复制到SSD:

首先,从git上复制最新rootOnNVMe项目到home目录下(通过U盘拷贝也可以)。

  1. git clone https://github.com/jetsonhacks/rootOnNVMe.git
  2. cd rootOnNVMe

到有该脚本的路径下,执行下面的脚本,将根源文件复制到SSD

./copy-rootfs-ssd.sh

 启动从SSD启动的脚本

./setup-service.sh

等待系统迁移成功,然后重启开机后就会发现内存变为了110G

 三、安装CUDA,CUDNN等组件

接下来开始安装CUDA等其他组件(记得千万要拔掉杜邦线或者跳线帽,USB别拔!),主机继续打开sdk manager。确定jetpack版本号,点击continue进入下一步。

必须保证jetpack版本与刷机的版本一致,否则安装会失败,如果忘记了可通过以下命令查看本机jetpack版本。

sudo apt-cache show nvidia-jetpack`

 在第二个界面取消系统部分的文件下载,选择下载其他SDK

后续步骤和前面的差不多,只要老老实实等待安装完成即可,期间可能会弹出一个要检测nx能不能下载进去的,到时候选择不管检测结果直接安装即可,安装完成后cuda、cudnn等即可安装完成。

启动jtop查看安装信息

sudo jtop

四、重装支持CUDA加速的OpenCV

1、卸载默认OpenCV

由上图可知默认的 OpenCV 版本是不带 CUDA 加速的,无法充分利用 NX 的 GPU 性能,所以需要卸载重装支持CUDA加速的版本,卸载命令如下:

  1. sudo apt purge libOpenCV*
  2. sudo apt autoremove
  3. sudo apt update
2、安装依赖库

 在安装依赖之前建议换源,打开source.list文件,编辑前可以先把原来的内容复制后备份文档。

sudo gedit /etc/apt/sources.list

更换成清华源,也可以更换成阿里源/中科大等常用源,注意jepack5.02对于的是ubuntu20.04版本所以是focal而不是bionic(对应ubuntu18.04)。其中为了安装旧的libpng12需要加入xenial (ubuntu16.04)的源,如果你的ubuntu是18.04的需要换成对应的bionic的源,下面这个是20.04的

  1. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
  2. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
  3. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
  4. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
  5. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
  6. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
  7. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted
  8. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted
  9. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe

 然后安装依赖。

  1. sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran
  2. sudo apt update
  3. sudo apt install -y libjpeg8-dev libjasper-dev libpng-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
  4. sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
  5. sudo apt install python2-dev python3-dev python-numpy python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

可能会出现问题的是libjasper-dev依赖,通过以下命令解决。

sudo apt install libjasper1 libjasper-dev
 3、下载 OpenCV 和 opencv_contrib 源码

前往官方仓库https://github.com/opencv下载合适版本的OpenCV和opencv_contrib源码,笔者在装机时选择的是4.5.3版本,而安装的jepack系统自带OpenCV版本是4.5.4,不建议使用与jepack自带OpenCV差距过大的版本。

下载解压后可以将两者放在主目录下,将opencv_contrib-4.5.3移动到 OpenCV-4.5.3目录下,打开OpenCV-4.5.3目录新建build文件夹用以编译。

  1. cd opencv-4.5.3
  2. mkdir build
  3. cd build
4、编译和安装 OpenCV 

在cmake编译之前,手动下载cmake过程中缺失的依赖https://files.cnblogs.com/files/arxive/boostdesc_bgm.i%2Cvgg_generated_48.i%E7%AD%89.rar(建议Windows下载解压成zip格式通过u盘拷入,ubuntu系统默认不支持rar格式)

解压后直接拷贝以下文件名的源码,放在opencv_contrib/modules/xfeatures2d/src/ 路径下即可。

  1. boostdesc_bgm.i
  2. boostdesc_bgm_bi.i
  3. boostdesc_bgm_hd.i
  4. boostdesc_lbgm.i
  5. boostdesc_binboost_064.i
  6. boostdesc_binboost_128.i
  7. boostdesc_binboost_256.i
  8. vgg_generated_120.i
  9. vgg_generated_64.i
  10. vgg_generated_80.i
  11. vgg_generated_48.i

然后打开build文件夹,执行的 cmake命令如下:

  1. cmake \
  2. -D WITH_CUDA=ON \
  3. -D CUDA_ARCH_BIN="7.2" \
  4. -D WITH_cuDNN=ON \
  5. -D OPENCV_DNN_CUDA=ON \
  6. -D cuDNN_VERSION='8.4' \
  7. -D cuDNN_INCLUDE_DIR='/usr/include/' \
  8. -D CUDA_ARCH_PTX="" \
  9. -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.3/modules \
  10. -D WITH_GSTREAMER=ON \
  11. -D WITH_LIBV4L=ON \
  12. -D BUILD_opencv_python3=ON \
  13. -D BUILD_TESTS=OFF \
  14. -D BUILD_PERF_TESTS=OFF \
  15. -D BUILD_EXAMPLES=OFF \
  16. -D CMAKE_BUILD_TYPE=RELEASE \
  17. -D CMAKE_INSTALL_PREFIX=/usr/local \
  18. ..

其中

CUDA_ARCH_BIN、cuDNN_VERSION的目录版本要和本机对应,OPENCV_EXTRA_MODULES_PATH建议填写opencv_contrib里modules的绝对路径,CMAKE_INSTALL_PREFIX为安装路径。

然后进行编译安装,全开NX的12线程仍然需要编译接近2小时,编译安装完大概需要4小时

  1. sudo make -j12
  2. sudo make install -j12

安装成功后可以通过jtop指令查看,如图所示已安装好支持CUDA加速的OpenCV4.5.3版本

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/840768
推荐阅读
相关标签
  

闽ICP备14008679号