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

文章目录

  • Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版)
  • 前言:
  • 一 、NX系统烧录
    • 1.1 硬件条件准备
    • 1.2 烧录系统软件
    • 1.3 下载官方镜像
    • 1.4 格式化SD卡开始烧录
  • 二、NX开机详细教程
    • 2.1 开机流程
    • 2.2 开机后准备工作
    • 2.3 python3 pip下载
    • 2.4 换源
    • 2.5 安装中文系统环境和输入法
  • 三、 YOLOv7环境搭建
    • 3.1 yolov7的基础环境如下图所示:
    • 3.2 源码下载
    • 3.3 依赖关系
    • 3.4 pip强制安装
    • 3.5 验证opencv
    • 3.6 安装numpy
    • 3.7 Pythorch和torchvision安装(关键问题)
  • 四、 运行YOLOv7
    • 4.1 准备运行
    • 4.2 文件结构修改
  • 五、常见问题总结
    • 问题1.提示非法指令,核心已转储。
    • 问题2:运行时疯狂报警告
    • 问题3:出现make: 没有规则可制作目标“install”。 停止。
    • 问题4:python3.9下错误,pip安装matplotlib卡在Building wheel for matplotlib (setup.py)..不动的原因与解决
    • 问题5:OSError: Python library not found: libpython3.8.so, libpython3.8m.so
    • 问题6:及时备份系统制作镜像
  • 结尾

前言:

对于刚开始学习人工智能模型部署jeston 设备的同学来说,NX无疑是一款值得选购的产品,性能、结构各方面均在同系列的产品里面拔得头筹。最近,我也作为一个初学者的身份来熟悉、使用、了解之后,同时使用了多个版本的NX操作系统之后,对于YOLOv7环境完成搭建,并将在后续将继续完成RT加速等工作,在CSDN关注了好长时间,终于自己也搭建了一点环境,目前还没有看到在NX给大家作为总结和未来学习的一点资料。希望可以帮助到大家,本文章亲测所用方法均有效。

一 、NX系统烧录

1.1 硬件条件准备

jeston nx电路板、原装充电器、有线鼠标(USB)、有线键盘(USB)、有线摄像头(USB)、显示屏(显示屏有一个就可以,大屏幕更加方便)、SD卡(128G推荐)、读卡器(必备)、笔记本电脑(Win-10)、WIFI网络环境(必备)、、linux系统主机(不必备)

1.2 烧录系统软件

Win32DiskImager、balenaEtcher(SD卡镜像烧录软件)、DiskGenius(SD卡格式化软件)、NX镜像文件(提前在官网下载)

NX系统说明:目前官网主流下载的操作系统为jeston 4.4 18.04版本、python3.6.9/2.7
本文所使用的操作系统为jeston 5.0 20.04 、 python3.8 (推荐)

1.3 下载官方镜像

链接

https://developer.nvidia.com/zh-cn/embedded/downloads#?search=Jetson%20Xavier%20NX%20Developer%20Kit%20User%20Guide

1.4 格式化SD卡开始烧录

1.4.1 首先要准备一张SD卡,将SD卡插入电脑或使用读卡器插入电脑,按照以下顺序进行操作。

方法一:1)下载,安装和启动适用于Win的sd卡格式化程序SD Formatter。 2) select card选择sd卡驱动器 对应的卷标 3) 选择“快速格式” 4)将“卷标”留空 5)单击“格式”开始格式化,并在警告对话框中单击“是” 6) 格式化以后sd卡就可以进行下一步的镜像刷写。

方法二:打开如上图的软件DiskGenius,进行选择SD卡右键点击清除所有分区,点击左上角保存更改,再点击可移动磁盘区域,进行建立新分区,再次点击保存更改,弹出格式化选择即可。得到的结果是PC端重新显示可使用的u盘,如下图。

1.4.2 开始烧录


**方法一:**打开Win32DiskImager,在imageFile那一栏右侧文件夹符号边上选择你SD卡对应的盘符号,然后点击蓝色小文件夹图标,打开你下载镜像的目录,镜像应该是解压完毕的名字叫sd-blob。点击打开以后再点击Win32DiskImager的Write按钮进行写入,写入完毕以后Windows会看不见,也无法读取SD卡,这是正常现象,因为系统已经刷进去了,文件系统不兼容了。

方法二:使用官方提供的烧录软件(推荐)

首先点击从文件烧录,选择本地镜像文件或者压缩文件,会显示img格式文件即可,然后
系统会自动选择可使用的空u盘,注意看清是否是u盘,点击烧录即可耐心等待!(如下图图片顺序对应操作即可·有点慢~)


最后提示烧录成功即可将sd卡插入NX连接鼠标键盘显示器,开启开机前准备处理!

二、NX开机详细教程

注意:18.04系统与此系统步骤大致相同,但是会因为系统本身环境不一致可能导致安装的版本环境不一样略有区别,有区别的地方我尽量给大家提示出来。

2.1 开机流程


2.1.1 选择‘我同意’然后继续continue即可


1. 选择语言:英语即可

2. 连接本地WiFi输入密码即可

3. 选择地区 上海即可

4. 用户名 、密码自己设置一下(密码随意,但是每次sudo都需要输入、耽误时间)

5. 这一步在网络环境好的安装,耐心等待一会儿

6.最后一步啦,当你看见绿色眼睛时,即证明系统烧录正确,开机设置正确。(online accounts选择一下也行)
如果等待很久仍未看见绿色眼睛的屏幕,建议换个系统烧录一下再试。

2.2 开机后准备工作

2.2.1 重中之中 风扇!!!!!!!

一定要想办法让风扇转起来,否则NX电路板温度过高会导致损坏,后果极其严重。

注意:18.04系统执行一行指令即可

sudo sh -c "echo 150 > /sys/devices/pwm-fan/target_pwm"

而20.04的系统需要安装jtop手动控制风扇转

操作方法展示如下:

**#安装pip3**sudo apt install python3-pip
# 安装Jtop工具
sudo -H pip3 install jetson-stats==4.0.0rc2
# **Jetpack5.0.0以上版本目前仅支持测试版本的jtop**# 启动测试jtop工具
sudo jtop


如图所示情况,fanmode选择 manual,点击左侧p增加转速,全屏可直观看见fan的运行情况,如果不启动风扇的话,温度达到一定时候系统也会自行运转(不清楚会不会损坏,所以还是建议大家手动打开风扇。)

2.2.2 换源: 使用操作指令之前对系统进行国内清华源的更换

1.输入指令:

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

将之前的删掉或者注释掉(用#注释)

在这里简单给大家介绍一下vim的基本操作方式吧,
按下’a’插入,编写完成后按一下esc键,输入‘:wq!’保存退出(注意有冒号)

然后终端输入更新指令:

sudo apt-get update

#加入清华源,或者其他的比如阿里云,中科大,豆瓣等等都可以使用。

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

2.3 python3 pip下载

sudo apt-get install python3-pip

升级一下pip保证是最新版的:

pip3 install --upgrade pip

2.4 换源

通过编辑pip的配置文件进行设置,方法如下:

修改 ~/.pip/pip.config:

mkdir ~/.pip
vim ~/.pip/pip.conf

添加内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

2.5 安装中文系统环境和输入法

注意:
这部分不需要的同学就不用看了
推荐大家还是使用英文系统环境,方便编译环境的时候错误查询、理解的更深刻一些。

18.04系统和20.04系统均有中文系统选择,但是20.04自带中文拼音输入法,而18.04的系统需要自行下载。(点击更新系统安装包即可)

选择Chinese(china)选择并应用到整个系统,如果此时提示install安装新的包,点击确认即可完成操作。(没有中文输入影响也不大。)

附:如果大家想利用NX完成视频录制工作,连接Usb摄像头或者Csi摄像头均可完成此项操作,最新版的NX富含了多种App可供大家进行操作。

其中截图包含全屏截图,区域截图等等有效信息,非常适合我们在linux系统中运行程序后记录检测结果。

另外:据我所知,我们甚至可以在NX上下载linux版本的qq,感兴趣的小伙伴可以自行在qq官网下载。

如上图所显示的是系统所包含的一些基础程序方便。

至此,开机教程到此ok完成,按照我的流程可以很顺利的开展下面的工作(牺牲了三个系统的经验QAQ),接下来我们就可以准备搭建YOLOv7的运行环境了。
注意:首先做事情之前我们需要了解我们的目的,我们要干什么,才能去想接下来的事情,目前我们已经对NX设备有一个基础的了解,然后需要对YOLOv7模型进行简单了解,对我们所需要搭建的环境对应了解后,仔细观察系统本身的环境与所需要的环境的差别,下面开始操作。

三、 YOLOv7环境搭建

3.1 yolov7的基础环境如下图所示:


主要运行时需要注意的是对于pythorch和torch vision的下载是比较麻烦的,其余的可以在系统终端直接执行下载指令。由于torch不支持直接在ARM环境中下载编译,因此在终端执行下载方式编译出来的torch很可能出现各种问题,所以我们需要在PC端下载后使用u盘进行传输安装包后方可下载编译。

3.2 源码下载

使用如下指令

 git clone https://github.com/shouxieai/tensorRT_Pro.git

3.3 依赖关系

大部分软件直接安装就好,但有些软件需要依赖其他一些软件来运行,这就是依赖关系,而你的电脑里没有相关的支持软件,Ubuntu就会提示缺少依赖关系。比如你要安装A软件,Ubuntu提示缺少依赖包B,于是你再安装B,然后又提示缺少依赖包C,于是你再安装C,又提示你缺少依赖包D……这就是依赖循环问题,这时就需要dpkg指令来处理这些依赖关系。

dpkg安装deb包时缺少依赖关系解决办法:

使用或者sudo apt-get -f install来修复,-f参数用来解决包依赖的问题,修复完之后再使用dpkg安装:sudo dpkg -i XXX.deb,-i参数的意思是安装软件包

3.4 pip强制安装

使用pip install指令时,系统会提示已经存在该软件,但不是你需要的版本,这就要用到**–force-reinstall**,具体方法如下,以PyYAML为例,

sudo pip3 install PyYAML==5.4.1

强制安装5.4.1版本的PyYAML,如果不指定版本,默认安装最新版本。

3.5 验证opencv

验证方法输入

          python3import cv2cv2.__version__

输出正确的cv2版本则证明系统自带的python3.8,对应好自己的opencv且不影响yolov7的文件运行
(but:此时的这个opencv是不支持cuda一起使用的,如果想希望利用cuda加速,后续我们将卸载系统自带的opencv再次下载)

3.6 安装numpy

首先安装依赖关系:

sudo apt-get install cmake libopenblas-dev liblapack-dev libjpeg-dev
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install git cmake libpython3-dev python3-numpy

不出意外的情况下系统此时会报没有camke的指令的错误:
遇到问题去解决问题,所以我们接下来去查看系统里到底有没有cmake,查看是否版本不支持,如果没有那我们进行下载,下载cmake的过程中仍然会遇到报错,遇到情况再去解决,但是我们不要忘记自己的初心:解决问题的时候是为了安装numpy(心路历程)

逐步安装cmake:官网下载安装包(注意版本别太高就行)

打开压缩包所在文件夹,解压包

tar -xzvf cmake-3.18.0-rc1.tar.gz

打开解压后的文件夹

cd cmake-3.18.0-rc1

运行命令:

./configure

[PS] 此处可能报找不到OpenSSL的错,解决方法是编辑CMakeLists.txt文件,在文件开头加:

set(CMAKE_USE_OPENSSL OFF)

运行指令

make

运行指令

sudo make install

到这里安装就完成了。

验证安装:
a) 检查CMake版本:

cmake --version

b) 检查编译器路径:

sudo cmake ../

简单提一下自己在安装过程卡住了一个简单小问题:出现如下的错误:
解决方法:非常简单!! 前面加上sudo就可以了
(一开始我想到的很复杂,查了很多帖子,试了好多方法,都没有成功解决,最后才发现自己这么傻,所以我们自己觉得遇到的问题很可能不是问题,偶尔换换方法,也许就解决了,要集思广益、不要一条路走到黑。)

3.7 Pythorch和torchvision安装(关键问题)

3.7.1 安装环境依赖

sudo apt-get install cmake libopenblas-dev liblapack-dev libjpeg-dev
sudo pip3 install adafruit-circuitpython-servokit

安装:

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl(注意改文件名)

再给大家介绍一个坑:文件名cp36必须要换成cp38,不然就会一直报错,因为我们这个系统使用的python3.8!!!

安torch vision:

git clone -b v0.8.1 https://hub.fastgit.org/pytorch/vision.git
cd vision
sudo python3 setup.py install

或者更快的方法一条指令:(有效)

pip3 install torch==1.6.0 torchvision==0.7.0 torchaudio==0.9.0 -f https://torch.kmtea.eu/whl/stable-cn.html

测试:

测试torch是否能用,打开python3,输入

import torch
import torchvision


得到如上图结果即正确。

四、 运行YOLOv7

4.1 准备运行

搭建完torch环境之后,后续的问题就显得简单了很多,首先我们进入如下图的YOLOv7文件中,找到detect.py文件,进行对希望运行的模型和输入路径进行修改,接下来运行输入:

python3 detect.py

你以为这么顺利就会出结果了嘛,哈哈,其实还会陆续报出来一些安装包没有进行安装的问题(自行安装即可)

例如:

numpy
timm
seaborn

这几个相对简单,对版本没有过分的要求

我们直接运行命令

pip3 install ...#加文件名即可

4.2 文件结构修改

YOLOv7的文件结构,注意detect文件的位置点开如下

修改上面两处位置即可运行自己像输入的图片与模型啦!

图片效果还是蛮不错的,推理时间问题有待提升,也是我在思考的问题。

五、常见问题总结

问题1.提示非法指令,核心已转储。

这是因为jetson自带python环境,这个环境里自带numpy-1.13.3,安装的torch里面也带一个numpy,调用torch时产生冲突。

解决方法:降低numpy的版本

python -m pip install numpy==1.23.1

问题2:运行时疯狂报警告

解决方法:

export OMP_NUM_THREADS=1

按照它警告里写的,重装openblas,带上USE_OPENMP=1这个参数

问题3:出现make: 没有规则可制作目标“install”。 停止。

解决方法

sudo make install  #...

问题4:python3.9下错误,pip安装matplotlib卡在Building wheel for matplotlib (setup.py)…不动的原因与解决

解决方法

1. 建议换一个源替换一下试试
2. 卸载python重新安装(不建议!!)

问题5:OSError: Python library not found: libpython3.8.so, libpython3.8m.so

再看这个提示–enable-shared,让我们安装的时候带上这个参数,因为安装python的时候,我没有加,所以,要重装Python,进入到Python文件使用

./configure --prefix=/usr/local/python3 --enable-shared

然后

make && make install

现在再次打开python的时候,会报错,

ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

需要依次执行

echo "/usr/local/python3/lib/" >> /etc/ld.so.conf
ldconfig

问题6:及时备份系统制作镜像

1. 可以选择用输入指令的方法,但是!!!太多都是用Linux主机操作了,手里没有条件的小伙伴看方法2

2. 建议利用烧录系统的软件,烧录时我们是选择write,反过来我们选择read就变成img镜像了(提前建立一个空的img文件在电脑)

3.一定要备份系统,否则再来一遍只会加深你的印象,我通过几天时间搞了4个操作系统,为了写这篇文章,甚至给大家重新搞一个新的系
统做教程,除了枯燥也是加深对设备的理解,看个人喜欢,建议多准备几张sd卡没有坏处。

结尾

以上就是我近一周时间所做已经所总结的一些内容,对于整个操作流程和心路历程都摸索了一遍,这个过程是枯燥享受的,枯燥在搭环境的过程中不知道会出现什么奇葩问题,享受在使用如此昂贵的好性能的设备,解决问题后的成就感,我也作为一个初学者有幸参与其中,其中难免参考了许多大佬的资料和介绍,最终结合适合自己的集思广益的方法,适合作者的方法不一定就适合大家,所以建议大家有机会的话还是可以自己尝试走一步流程,我的步骤一方面是总结方便日后自己的建设,一方面希望有幸如果可以帮助到大家便更加有成就感了,如果大家对我这篇文章感兴趣的话,后续我还将继续测试jeston设备的性能以及学习YOLOv7优化加速路线,如果有机会的话希望仍会继续为大家分享经验(互相交流)。
让我们下一篇再见!

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

  1. Jetson Xavier NX 学习(三)安装输入法和 jtop

    Jetson Xavier NX 学习(三)安装输入法和 jtop 安装输入法之前 打开语言支持,安装相关配置 打开后 选择fcitx 关闭 安装谷歌输入法 其中 sougoupinyin 支持amd ...

  2. Jetson Xavier NX 的SD卡系统镜像制作

    Jetson Xavier NX 的SD卡系统镜像制作 一.SD卡系统查看 二.系统镜像制作 三.系统镜像烧录 一.SD卡系统查看 现有的SD卡的内存为128G,其中64G内存并未分配. # 安装gp ...

  3. Jetson Xavier NX 学习(二)更换源

    Jetson Xavier NX 学习(二)更换源 因为官方源有点慢所以我们来更换源 注意 jetson与平时用的ubuntu不同,下面我分享一个我尝试很多并不会出错的源 sudo gedit /et ...

  4. RN学习笔记01:概述、特点与环境搭建

    RN学习笔记01:概述.特点与环境搭建 一.RN概述 React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 Reac ...

  5. Jetson Xavier NX安装opencv3.4.5(小白教程)

    作为小白,近期开始上手嵌入式设备Jetson Xavier NX,系统为Ubuntu 18.04.6,而因项目开发环境需要Opencv3.4.5版本,预装系统内安装的是Opencv4.1.1,以下是本 ...

  6. cocos2d python文档_【Cocos2D-X 学习笔记】Cocos2D-x 3.0+VS开发环境搭建[使用Python]

    上一节讲了如何用VS自带的项目管理器创建项目,该方法只适用于cocos2d-x 2.0版本,而cocos2d-x 3.0较之前版本在命名等方面有了较大更新,而cocos2d-x3.0不再支持用VS项目 ...

  7. .net core 2.0学习笔记(一):开发运行环境搭建

    期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...

  8. Spring Boot基础学习笔记24:RabbitMQ安装以及整合环境搭建

    文章目录 零.学习目标 一.消息服务概述 (一)为什么使用消息服务 1.使用消息服务的好处 2.异步处理 3.应用解耦 4.流量削峰 5.分布式事务管理 6.分布式事务管理流程 (二)常用的消息中间件 ...

  9. 【tensorflow.js学习笔记(1)】tf.js环境搭建及曲线拟合例子

    月初TensorFlow开发者大会上,谷歌正式发布了TensorFlow的JS版本tensorflow.js,并演示了几个很有意思的demo,展现了浏览器环境下也能进行深度学习任务的能力.tensor ...

最新文章

  1. firefox下的调试工具
  2. pads最新版本是多少_电路EDA软件究竟有多少?
  3. html5 meta标签属性整理
  4. android6.0 百度地图,Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法...
  5. shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
  6. python笔记: staticmethod classmethod
  7. c#拼图碎片形状_使用神经网络解决拼图游戏
  8. Transaction rolled back because it has been marked as rollback-only 原因 和解决方案
  9. arcgis地理数据库之创建sde用户
  10. google已经启用www.guge.com(谷歌)域名
  11. [渝粤教育] 中国地质大学 信息资源管理 复习题
  12. win10 android叹号,win10系统设备管理器驱动显示黄色感叹号的详细技巧
  13. ajax心得体会论文,AJAX重点知识的心得体会
  14. 如何从twitter上爬取数据?
  15. 微信扫描二维码跳转手机默认浏览器打开下载app的链接是怎么实现的
  16. Java农历(阴历)工具类
  17. 上蔡一高2021高考成绩查询,喜报!上蔡高考英雄榜出炉!
  18. 干货:O2O美团外卖四部曲
  19. vps服务技术的5大优势
  20. cmd命令行下常见的注册表操作

热门文章

  1. 机器学习 入门详细解析(二)决策树、随机森林
  2. 16组Sony索尼系列相机Slog2和Slog3常用Vlog电影LTUS调色预设 Slog2 Slog3视频灰片调色预设
  3. LaTeX局部改变字体类型
  4. stm32通过ESP8266连接互联网服务器,手机通过网页实现远程控制灯亮灭
  5. 中国移动发力5G,月增900万,反超中国电信
  6. 腾讯云安装mysql_详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题
  7. android手势识别国内外研究现状,基于Android平台的视觉手势识别研究
  8. 三菱PLC CCD控制ST程序 本PLC程序中CCD控制用的ST结构化语言,程序都有注释
  9. 屏幕撕裂及掉帧原因与解决方案
  10. 苹果电脑入门:必须掌握的快捷键