根据我自身的成功部署经验进行了总结,首先希望可以帮助到有需要的朋友们。

一、前期准备:

1.硬件准备:

Jetson Xavier NX开发板(带128g内存条的EMMC版)、跳线帽(杜邦线)、microUSBUSB数据线、电源线、独立屏幕及配套硬件。

2.软件准备:

Ubuntu虚拟机/双系统、NVIDIA SDK MANAGER。下载地址:SDK Manager | NVIDIA Developer

Ubuntu主机里安装sdkmanager,命令如下,版本不同则tab补齐安装。

sudo apt install ./sdkmanager_1.9.2-10884_amd64.deb

二、刷机:

1.换源

配置好Ubuntu虚拟机和双系统,注意最高版本为20.04(2023.5.5),再高会没有对应的Jetpack版本。

2.recovery模式

用杜邦线或者跳线帽将Xavier NX第三个引脚FC_REC与第二/四引脚GND短接(上电后会进入recovery模式),并插上电源给板子供电。然后通过NXmicrousb接口连接host主机的USB接口(没有的可以通过扩展坞转接),主机识别到串口后连接到虚拟机内(若是双系统无需此步骤),不要勾选记住此选择,以防之后无法连接到主机。

3. 镜像源

换国内源(常用的比如阿里,清华,中科大源)以加快jetpackCUDA组件下载速度。

4.sdkmanager

打开终端,输入sdkmanager,启动sdkmanager。

sdkmanager

5.登录sdkmanager

登录 NVIDIA 账号(没有的话自己申请一个),选择登录方式为Developer账户(跳转到NVIDIA网页登录确认,stay logged in之后不需要再登录)。如果sdkmanager提示更新点击yes更新即可,对于如下系统不符合要求的警告不需要管yes继续即可。

6.系统烧录

(1)usb连接

在弹窗中选择板子的型号:Jetson Xavier NX。没有弹出就是usb没插好,可以lsusb命令查看是否有名称带nvidia的设备

安装时选择JetPack5.0.2版本(对应Ubuntu20.04版本)其他的JetPack版本和UbuntuCUDAcudda的对应关系可在英伟达官网查看https://developer.nvidia.com/embedded/jetpack-archive,如多数教程选择的Ubuntu18.04就对应jetpack4.5.1版本。

安装成功后通过以下命令查看本机jetpack版本Ubuntu版本则可通过设置-详细信息查看。

sudo apt-cache show nvidia-jetpack

取消勾选第四行里的DeepStream用于构建智能视频分析(IVA)管道的加速人工智能框架)、取消勾选Host Machine(这个是在主机下载安装文件,若是想在主机上安装 nivida 软件或者担心一次刷不好,可以勾选这个,省得重复下载),而后点击 continue,进入下一步。

(2)烧录系统

只安装Jetpack系统,等将系统迁移到SSD上面后,再安装其他SDK组件的(jetson Xavier NX系统自带内存16g一次性安装所有组件)。

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

输入主机的Ubuntu系统密码然后点击ok进行下载安装。

(3)烧录

下载过程中如果出现检测网络,apt仓库未成功的问题不用担心,skip跳过就行(通常是网络问题,只要保证download下载的进度条在前进就说明下得动)整个下载过程视网络状况而定,烧录系统过程则需要30-60分钟。点击DETAILS旁边的TERMINAL即可查看NX内具体安装命令和报错提示。

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

出现OS image ready时可以拔掉跳线帽,但整个烧录过程必须保证电脑与NX保持连接。

等待系统烧写完成,时间稍久,Jetson NX会重启,接上显示屏就会看到ubuntu登录界面。(此过程中可能会提醒烧写超时无需紧张,继续即可,如果报错可以关掉SDKmanager重新烧录,一般电脑和NXUSB连线全程保持不断开就没问题)开机后连上键鼠,启动ubuntu系统后连接wifi、添加中文输入法、设置快捷键等基本操作。

三、加载SSD并设置首启动

1.格式化SSD并分区

插上内存条SSD后,在NX启动的Ubuntu系统中,打开disks软件,点击右上角菜单,将固态硬盘格式化。无需更改选项,直接格式化。然后点击左下角+号继续分区。

点击加号开始分区,增加16GB的空间作为SWAP交换空间,重命名后创建,结果如下:

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

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

git clone https://github.com/jetsonhacks/rootOnNVMe.git

cd rootOnNVMe

然后执行下面的脚本,将根源文件复制到SSD

./copy-rootfs-ssd.sh

启动从SSD启动的脚本

./setup-service.sh

然后重启开机后就会发现内存变为了110G

四、安装CUDAcuDNN等组件

开始安装CUDA等其他组件,拔掉跳线帽,继续保持USB连接HOST主机继续打开sdk manager。确定jetpack版本号(本文为5.0.2),点击continue进入下一步。

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

sudo apt-cache show nvidia-jetpack`

取消勾选系统,只勾选组件,左下角同意协议后点击continue进入下一步(不要勾选稍后安装)

这里我们通过SDKmanager自动安装与jetpack版本对应的CUDAcuDNNOpenCV(不支持CUDA加速的版本)、VPI等必须的组件。

如果出现问题无法安装我们可以在下载路径找到下载的安装包,通过u盘拷贝到NX上安装,手动安装的系列问题读者可自行搜索。

输入主机ubuntu密码后开始下载,弹出以下页面,IP 地址默认是 192.168.55.1,选择USB选项(如果后续刷机失败可以尝试更改 IP 为局域网地址),键入设置的用户名和密码。

如果NX板没有完成初始化系统并自动重启,这里可能会有红字报错:显示没有连接上。所以请等待NX板完成初始化并重启后再进行SDK Manager 这边的安装。

1.安装pip3

sudo apt install python3-pip

2.安装jtop

sudo -H pip3 install jetson-stats==4.0.0rc2

安装后需要重启,然后启动jtop,通过左右键移动到info页面查看系统安装的组件信息

sudo jtop

初始环境搭建完成,接下来卸载原来的OpenCV并重装OpenCV4.5.4。

由此图可知,刷机安装的OpenCV是不带CUDA加速的,无法调用GPU,因此需要卸载重装,最好安装相同或者相近版本。

五、重装支持CUDA加速的OpenCV

1、卸载默认OpenCV

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

sudo apt purge libOpenCV*

sudo apt autoremove

sudo apt update

2、安装依赖库

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

sudo gedit /etc/apt/sources.list

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

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricteddeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricteddeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe

然后安装依赖。

sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran

sudo apt update

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

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

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下载合适版本的OpenCVopencv_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文件夹用以编译。

cd opencv-4.5.3

mkdir build

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/ 路径下即可。

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

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

cmake \

-D WITH_CUDA=ON \

-D CUDA_ARCH_BIN="7.2" \

-D WITH_cuDNN=ON \

-D OPENCV_DNN_CUDA=ON  \

-D cuDNN_VERSION='8.4' \

-D cuDNN_INCLUDE_DIR='/usr/include/' \

-D CUDA_ARCH_PTX="" \

-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.3/modules \

-D WITH_GSTREAMER=ON \

-D WITH_LIBV4L=ON  \

-D BUILD_opencv_python3=ON \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D BUILD_EXAMPLES=OFF \

-D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

..

其中-D CUDA_TOOLKIT_ROOT_DIR的目录CUDA版本要和本机对应,-D CUDA_ARCH_BIN-D CUDA_ARCH_PTX可以通过jtop命令查看,-D OPENCV_EXTRA_MODULES_PATH建议填写opencv_contribmodules的绝对路径,-D CMAKE_INSTALL_PREFIX为安装路径。

然后进行编译安装,全开NX12线程仍然需要编译较长时间。

sudo make -j12

sudo make install

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

六、Pytorch的安装

下载jetpack专用的Pytorch源码,资源由NVIDIA提供在官方论坛上,含最新完整安装、验证教程。

https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-11-now-available/72048

注意Pytorchjetpacktorchversion的版本对应关系, PyTorch v1.11.0及以上版本只支持jetpack5.x的版本。

然后前往GitHub仓库下载对应版本的torchversion,接着按照上图的教程安装。

https://github.com/pytorch/vision

这里列举出官方教程所示的命令,可提供以下的wegt命令下载Pytorch,然后安装依赖并安装。

wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.12.0-cp36-cp36m-linux_aarch64.whl

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev

pip3 install Cython

pip3 install numpy torch-1.12.0-cp36-cp36m-linux_aarch64.whl

基于Python3安装torchvision的官方命令如下,需要自行根据Pytorch版本填写torchvision版本。

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

$ git clone --branch <version> https://github.com/pytorch/vision torchvision   # see below for version of torchvision to download

$ cd torchvision

$ export BUILD_VERSION=0.x.0  # where 0.x.0 is the torchvision version

$ python3 setup.py install --user

$ cd ../  # attempting to load torchvision from build dir will result in import error

七、部署yolov5

1.创建yolov5项目文件夹。

2.进入文件夹之后克隆yolov5项目到该文件夹中

git clone https://github.com/ultralytics/yolov5.git

3.配置yolov5环境:

pip3 install -U -r requirements.txt

八、小结

最终在Jetson Xavier NXemmc版)上安装了Ubuntu20.04系统,利用内存条扩容并设置SSD首启动,成功配置了CUDA 11.4cuDNN8.4.1PyTorch v1.12.0,支持CUDA加速的OpenCV4.5.3等环境,并成功部署yolov5。

Jetson Xavier NX部署Yolov5(GPU版)相关推荐

  1. NVIDIA Jetson Xavier NX部署VINS-fusion-GPU

    NVIDIA Jetson Xavier NX部署VINS-fusion-GPU 一.环境配置(Ubuntu 18.04) 1.Cuda 10.2的安装 sudo apt-get update sud ...

  2. Jetson Xavier NX使用yolov5+deepsort实现CSI摄像头的目标跟踪

    文章目录 安装过程 运行效果 用python代码来打开CSI摄像头 实现CSI摄像头目标跟踪 报错: AttributeError: 'NoneType' object has no attribut ...

  3. 19、Jetson Xavier NX使用yolov5对比GPU模型下的pt、onnx、engine 、 DeepStream 加速性能

    基本思想:手中有块Jetson Xavier NX开发板,难得对比一下yolov5在相同模型下,不同形式下的加速性能 一.在ubuntu20.04的基础上,简单做一下对比实验,然后在使用 Jetson ...

  4. Jetson Xavier NX部署PaddlePaddle框架

    文章目录 前言 一.刷机.开机等基本环境配置可以参考如下文章 我的环境信息 二.源码编译安装paddlepaddle 1.编译前准备工作 2.首先编译安装NCCL 3.编译安装PaddlePaddle ...

  5. yolo v5 NVIDIA Jetson Xavier NX 部署刷机+安环境(2)

    安环境 到10.28号,已经快差不多1个月,在我的磨叽之下,终于搞完,成功训练yolov5的detect.py文件,大部分参考了璐璐同学的NX所下环境,还有就是亲临指导了啊哈哈哈,她的文章点这里 1. ...

  6. 【模型部署】Jetson Xavier NX(eMMC)部署YOLOv5-5.0

    文章目录 前言 NVIDIA Jetson Jetson Xavier NX 版本区别(SD | eMMC) 规格参数 Jetpack4.6.1环境搭建 烧录系统(OS) SSD启动 SSD分区 设置 ...

  7. Jetson Xavier NX学习笔记(三)系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版)

    Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) 文章目录 Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) ...

  8. 胎儿式保姆级教程:Jetson Xavier NX镜像烧录、开机配置、中文配置、风扇设置、远程桌面、文件传输配置、pycharm安装环境配置,QQ,opencv(cuda编译),torch(GPU).

    一.使用的硬件:nx板子.原装充电器.有线鼠标(USB).有线键盘(USB).有线摄像头(USB).7寸触摸显示屏.20寸大显示屏(显示屏有一个就可以,大屏幕更加方便).SD卡(128G,用64g也可 ...

  9. NVIDIA Jetson Xavier NX设备上使用jtop监控GPU、CPU、内存等的使用

    文章目录: 1 在Jetson设别上安装jtop 2 jtop的使用 2.1 jtop的使用 2.2 jetson-stats一些可执行文件使用 3 jetson NX默认刷好机之后的环境 1 在Je ...

最新文章

  1. [WPF疑难]避免窗口最大化时遮盖任务栏
  2. SQL性能优化之索引优化法
  3. 【错误归纳】E: Sub-process /usr/bin/dpkg returned an error code (1)子进程 已安装 post-installation 脚本 返回了错误号 1
  4. ajax无刷新留言板远吗,php+ajax制作无刷新留言板,phpajax刷新留言板_PHP教程
  5. 计算机机房消防安全工作应急预案
  6. java基础 ArrayList集合基本方法演示
  7. Spring核心知识
  8. 一分钟关闭百度的搜索热点和相关人物
  9. 计算机发展与应用说课,计算机的发展与应用说课稿.doc
  10. 【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)
  11. 全国哀悼日网站页面变成灰色的filter方法
  12. 项目管理第十一章项目风险管理
  13. ARP报文目的MAC为什么不是广播地址?
  14. 技术团队管理者的软技能(上):关于团队文化和领导力
  15. Docker硬盘空间使用分析与清理
  16. Freeswitch呼入及呼出录音问题
  17. window下线程同步之(Event Objects(事件)) / 事件CEvent的使用
  18. jq.1.10.2.min.js中报错最后一行得解决办法
  19. 键入一个整数,判断是否是质数(两种方法)
  20. 八股文-- 2022.08.31

热门文章

  1. python学籍注册小程序
  2. 搞懂AOP之三,偏序排序
  3. 企业转型谋定数字经济 李聪旭:对话中国经济和信息化
  4. Guava Cache 如何防止缓存击穿
  5. 配置gitlib推送代码自动触发jenkins部署方案
  6. 创业赚大钱者的九大综合素质
  7. cmd命令设置系统变量
  8. 谷歌浏览器实现视频播放加速功能
  9. pow函数python_python pow函数怎么用
  10. 9月书单01-《别独自用餐》《赢》《联盟》《横向领导力》《梳毛、八卦语言的进化》《瘟疫与战争》