英伟达官方源Jetson Xavier NX安装Ubuntu20.04,配置CUDA,cuDNN,Pytorch等环境教程(基于NVIDIA官方教程,理论适用其它Jetson设备)

本文主要是介绍英伟达官方源Jetson Xavier NX安装Ubuntu20.04,配置CUDA,cuDNN,Pytorch等环境教程(基于NVIDIA官方教程,理论适用其它Jetson设备),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、准备工作

硬件:Jetson Xavier NX开发板(笔者购入为带128g内存条的EMMC版)、跳线帽(杜邦线)、microUSB转USB数据线、电源线

软件:Ubuntu host主机(可运行Ubuntu的虚拟机/双系统)、NVIDIA SDK MANAGER(下载地址:NVIDIA SDK Manager | NVIDIA Developer)。

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

sudo apt install ./sdkmanager_1.6.0-8170_amd64.deb

硬件准备

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

软件准备

TIPS:在进行安装下载前建议换国内源(常用的比如阿里,清华,中科大源)以加快jetpack及CUDA组件下载速度

打开一个终端,输入sdkmanager,启动sdkmanager(或直接点击sdkmanager图标启动)

sdkmanager

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

二、开始刷机

STEP 01

弹窗选择板子的型号:Jetson Xavier NX(如果没有弹出就是usb没插好,使用lsusb命令查看是否有名称带nvidia的设备),也可以在下图中Target Hardware里刷新后自动读取。

安装时注意选择JetPack5.0.2版本(对应安装ubuntu20.04版本)其他的JetPack版本和ubuntu,CUDA,cudda的对应关系可在英伟达官网查看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,进入下一步。

STEP 02

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

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

键入HOST主机的ubuntu系统密码后点击ok即可下载

STEP03

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

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

点击箭头展开可以看到安装的软件包细节,当出现OS image ready时可以拔掉跳线帽,但电脑与NX连接的USB不要拔!(整个烧录过程必须保证电脑与NX保持连接以防烧录失败)

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

三、插入内存条并设置SSD为首启动方式(扩容)

1、格式化SSD:

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

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

效果如图所示:

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

四、安装CUDA,cuDNN等组件

接下来开始安装CUDA等其他组件,拔掉跳线帽,USB别拔!HOST主机继续打开sdk manager。确定jetpack版本号,点击continue进入下一步。

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

sudo apt-cache show nvidia-jetpack`

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

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

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

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

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

进入安装、时间可能会比较久。

安装pip3

sudo apt install python3-pip

安装jtop工具(英伟达官方查看jetson系列环境的软件)

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

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

sudo jtop

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

五、重装支持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下载合适版本的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文件夹用以编译。

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_contrib里modules的绝对路径,-D CMAKE_INSTALL_PREFIX为安装路径。

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

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

注意Pytorch与jetpack、torchversion的版本对应关系, 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

七、小结

最终在Jetson Xavier NX(emmc版)上安装了Ubuntu20.04系统,利用内存条扩容并设置SSD首启动,成功配置了CUDA 11.4,cuDNN8.4.1,PyTorch v1.12.0,支持CUDA加速的OpenCV4.5.3等环境。大部分流程采用官方源和官方教程,如果将来英伟达官方更新仍然可以适用,希望这个教程可以帮到大家。

这篇关于英伟达官方源Jetson Xavier NX安装Ubuntu20.04,配置CUDA,cuDNN,Pytorch等环境教程(基于NVIDIA官方教程,理论适用其它Jetson设备)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613562

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我