前言
Xavier是NVIDIA的边缘计算板子的最新版本也是最高配的序列,不熟悉这些硬件设备的同学可以参见下图:
NVIDIA Jetson序列板子的配置
一.Xavier介绍
1.相关介绍
因为Xaiver的linux 内核是arm 架构的,所以安装深度学习的一些库和平时我们使用的带GPU的台式机ubuntu系统和windows 系统的库的包后缀不一样,所以配置环境的过程中踩了很多坑,下面就做一个总结分享。
Xavier等硬件设备默认内核里安装好了GPU驱动用的是NVIDIA的nvgpu,不需要单独下载安装,查看GPU相关硬件信息可以用命令jtop
或者tegrastats
,用的是aarch64(arm)架构,区别于X86 机构,soc部分的CPU和GPU做在一起,内存可以共用。
2.库的版本区别
查看Linux 内核,用命令 arch
以pytorch举例:
Linux系统 Ubuntu是arm 架构: torch-1.7.0-cp36-cp36m-linux_aarch64.whl
Linux 系统Ubuntu是其他架构:torch-1.7.0-cp36-cp36m-linux_x86_64.whl
Window系统的的:cu113/torch-1.10.1%2Bcu113-cp36-cp36m-win_amd64.whl
3.软件包下载
CSDN资源链接(得需要积分):Xavier 相关软件包
百度云链接
链接:https://pan.baidu.com/s/1mk6y6zxtYQhdxpVOErufpA
提取码:3m2k
4.安装软件
注意
升级pip
在安装库之前,先执行以下两个操作,把pip升级到最新版本,不然在后续安装的过程中可能会出现安装一个库的时候,一直卡在那里或者其他问题。
pip3 install --upgrade pip
sudo apt-get update(如果是重新刷机,这一步必须做)
安装命令
一般情况下安装命令pip3 install XXX
和 python3 -m pip install XXX
是等价的,
但是在有的情况下,使用pip3 install XXX
,会给出提示,有的老的脚本不支持,可能会有未知的问题,所以为了避免不必要的麻烦,还是建议使用 python3 -m pip install XXX
Torch (已有1.7的包)
sudo apt-get install libopenblas-base libopenmpi-dev
python3 -m pip install Cython
python3 -m pip install numpy torch-1.7.0-cp36-cp36m-linux_aarch64.whl
Torchvision (电脑已经下了相关vision)
网址:https://github.com/pytorch/vision/tree/v0.8.0
git clone -b v0.8.0 https://github.com/pytorch/vision.git
cd vision-0.8.0
sudo apt-get install libjpeg-dev zlib1g-dev
sudo python3 setup.py install(这一步编译需要很长时间,耐心等待)
如果源码vision-0.8.0和vision-0.8.1都安装报错解决不了,就安装下载的包里别人编译好的whl文件
报错
在Jetson Xavier NX上安装torchvision编译报错:fatal error: libavcodec/avcodec.h: No such file or directory
解决方法
网上给出的方法很多都是说由于ffmpeg版本导致的问题,但是我又不想去搞这个ffmpeg,不想把问题复杂化!然后在官网看到一条解决方式,在编译之前,对setup.py文件进行一些修改,把:
if has ffmpeg 改为if False即可
如下图所示:这样在编译的时候就不会编译ffmpeg相关的文件了,而且也不会影响你的使用!!!
Tensorrt是Xavier 镜像已经装好的
Torch2trt 有相关包
git clone https://github.com/NVIDIA-AI-IOT/torch2trt
cd torch2trt
sudo python3 setup.py install --plugins
Pycocotools
Pycocotools 网上教程有一点问题 ,目前是将包copy在工程之中的
(https://github.com/philferriere/cocoapi
python3 setup.py build_ext install)
或者
python3 -m pip install pycocotools
opencv-python
<1>如果报错:No module named ‘skbuild’ 可以执行
sudo apt install cmake
python3 -m pip install scikit-build
<2>安装opencv-python时一直在 running setup.py bdist_wheel for opencv-python卡着
升级pip
sudo pip3 install --upgrade pip
python3 -m pip install opencv-python
WARNING: pip is being invoked by an old script wrapper.
This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599
for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of
running pip directly.
<3>配置环境变量
安装完库之后,进入python3,然后import cv2,或者import torch,如果报错 Illegal instruction (core dumped) ,是由于内核等问题导致的,通过多方查找资料,初步有了个解决方案。
解决办法:
gedit ~/.bashrc
添加 export OPENBLAS_CORETYPE=ARMV8
source ~/.bashrc
其他报错
其他的包用python3 -m pip install -r requirements.txt
其中前面已经下载的要注释掉否则会下对应不上的版本
注意Xavier 上Pillow==8.4.0
(1) 提示md5值不对
解决办法:(原本阿里源换成清华源就可以了)
pip install XXX -i https://pypi.tuna.tsinghua.edu.cn/simple
(2)安装shapely报错:OSError: Could not find library geos_c or load any of its variants [‘libgeos_c.so.1’, ‘libgeos_c.so’]
Ubuntu系统执行:
sudo apt-get install libgeos-dev
二.安装pycharm
1.Xavier 相关配置
https://cloud.tencent.com/developer/article/1828610 show version
https://www.jianshu.com/p/fb5c44444036
2.Xavier 安装pycharm
(1)、先安装java
Xavier安装pycharm之前需要先安装java,因为是arm架构的设备,所以执行如下代码:
sudo apt-get install openjdk-11-jdk
(2)、安装完成后查看安装结果
java --version
which java
(3)、配置环境变量
打开~/.bashrc文件,添加如下内容,更新环境变量:
sudo vim ~/.bashrc
或者
sudo gedit ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc #激活
三、源码安装OPENCV
1、安装依赖环境
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2 、安装
mkdir build
cd build
cmake ..
make -j8
make install
3、测试安装是否OK
cd opencv-4.4.0/samples/cpp/example_cmake
cmake .
make
./opencv_example
如果弹出一个框,则表示安装OK