tx2板子系统为Arm64,与普通的x86系统安装环境时使用的安装包或者是源代码不同,有些软件一般用apy-get以及pip是安装不上的。本文讲述整个TX2板子刷机到安装torch、opencv、tensorflow_gpu、docker如何使用GPU以及板子的一些安装技巧。
在介绍TX2板子刷机之前先了解下板子的规格
Jetson TX2 模块
它是一台模块化 AI 超级计算机,采用 NVIDIA Pascal™ 架构。更棒的是,它性能强大,但外形小巧,节能高效,非常适合机器人、无人机、智能摄像机和便携医疗设备等智能边缘设备。它支持 Jetson TX1 模块的所有功能,同时可以铸就更大型、更复杂的深度神经网络。
刷机之前需要准备一台主机,最好是ubuntu14.04或者是16.04的。同时还需要一条数据线,普通手机数据线就行(不要苹果充电线以及tapc)用于宿主机和TX2网线直连,给出板子的大概示意图。
刷机参考博文
1 进入自带系统
Jetson TX2 自带ubuntu 16.04 系统,首次开机时,进入的是以nvidia用户登录的Ubuntu命令行界面。如果要使用图形化界面,需要安装Nvidia Linux驱动,Nvidia 驱动安装通过输入密码,切换ROOT权限用户(username:nvidia, password:nvidia)。
输入密码后,按照屏幕上的所提示的信息,输入以下命令即可:
cd /home/nvidia/NVIDIA-INSTALLER
./installer.sh
在nvidia官网注册账户并下载对应版本的jectpack(我自己下载的是jetpack3.3)
待 JetPack-L4T-3.3-linux-x64.run 下载完成后,我们先在主目录下创建一个JetPack文件夹,并将其放入该文件夹。
进入该文件夹,更改该文件的权限并运行该文件:
chmod +x ./JetPack-L4T-3.3-linux-x64.run
./JetPack-L4T-3.3-linux-x64.run
下载各种包,包括Ubuntu系统、CUDA8.0、cuDNN6.0、TensorRT2.1、VisionWorks1.6、OpenCV2.4.13等基本常用的工具,如果不需要装,就选中该项,点右上角的Clear Actions。然后进行各种下载及安装操作。参照博文
刷机完成后配置环境
刷机完成后就可以正常使用tx2板子,进入系统后需要连接wifi,现在刷机完成后板子上以已经安装好了opencv(3.3),以及cuda(9.0), cudnn。进入系统后安装需要的环境,为了使其下载安装快速一些,更改apt-get的源
安装vim
apt-get install vim
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back #将现有的源备份
sudo vim /etc/apt/sources.list #修改
将文档中的源替换成下面的内容
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted
之后更新源apt-get update apt-get upgrade
pytorch在板子上不能直接用pip进行安装,需要源码安装
首先安装相关的依赖包:
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential cmake git \
libgoogle-glog-dev \
libgtest-dev \
libiomp-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
libprotobuf-dev \
openmpi-bin \
openmpi-doc \
protobuf-compiler \
python3-dev \
python3-pip
sudo pip3 install future numpy protobuf typing hypothesis setuptools
sudo apt-get install -y --no-install-recommends \
libgflags-dev \
cmake
在编译之前,我们先开启TX2的最大功率模式,这样可以使我们的编译速度稍微快一些:
sudo nvpmodel -m 0 # 切换工作模式到最大
sudo ~/jetson_clocks.sh # 强制开启风扇最大转速
编译pytorch源码
git clone https://github.com/pytorch/pytorch.git && cd pytorch
# 切换Pytorch版本到1.0.0
git checkout -b v1.0.0 v1.0.0
git submodule update --init --recursive
# 设置最大jobs为1,因为树莓派运行内存有限,如果这个值较大,编译的时候会卡死
export MAX_JOBS=1
# 编译
python3 setup.py build
#生成whl文件
python3 setup.py bdist_wheel
在dist目录下会生成一个whl 文件,用pip3 按照即可
sudo pip3 install torch-1.0.0a0+db5d313-cp35-cp35m-linux_aarch64.whl
sudo pip3 install torchvision
python2安装torch的方式类似编译的时候使用python2 setup.py build python2 setup.py bdist_wheel,安装的时候使用pip2
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp33 tensorflow-gpu
刷机的时候板子上已经自带有opencv但是安装的opencv版本较低,可以自己重新编译安装opencv
首先需要把之前安装的版本删掉 不删也行,之后是安装依赖
sudo apt-get purge libopencv*
sudo apt-get purge python-numpy
sudo apt autoremove
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install --only-upgrade g++-5 cpp-5 gcc-5
sudo apt-get install build-essential make cmake cmake-curses-gui \
g++ libavformat-dev libavutil-dev \
libswscale-dev libv4l-dev libeigen3-dev \
libglew-dev libgtk2.0-dev
sudo apt-get install libdc1394-22-dev libxine2-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
sudo apt-get install libjpeg8-dev libjpeg-turbo8-dev libtiff5-dev \
libjasper-dev libpng12-dev libavcodec-dev
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev \
libatlas-base-dev gfortran
sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
sudo apt-get install qt5-default
python2以及Python3的numpy和matplotlib安装
sudo apt-get install python3-dev python3-pip python3-tk
sudo pip3 install numpy
sudo pip3 install matplotlib
安装好依赖后下载opencv3.4.0源代码并进行编译
mkdir -p ~/src
cd ~/src
wget https://github.com/opencv/opencv/archive/3.4.0.zip \
-O opencv-3.4.0.zip
unzip opencv-3.4.0.zip
### Build opencv (CUDA_ARCH_BIN="6.2" for TX2, or "5.3" for TX1)
cd ~/src/opencv-3.4.0
mkdir build
cd build
# 编译
cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
-D BUILD_PNG=OFF \
-D BUILD_TIFF=OFF \
-D BUILD_TBB=OFF \
-D BUILD_JPEG=OFF \
-D BUILD_JASPER=OFF \
-D BUILD_ZLIB=OFF \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_java=OFF \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_CUDA=ON \
-D WITH_GTK=ON \
-D WITH_VTK=OFF \
-D WITH_TBB=ON \
-D WITH_1394=OFF \
-D WITH_OPENEXR=OFF \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0 \
-D CUDA_ARCH_BIN=6.2 \
-D CUDA_ARCH_PTX="" \
../
# 安装
sudo make -j8 #-j8是增加8个线程
sudo make install
查看安装的opencv情况
pkg-config opencv --libs #查看linux下的opencv安装库
pkg-config opencv --modversion #查看linux下的opencv安装版本:
sudo find / -iname "*opencv*" #查看linux下的opencv安装路径:
如何安装的opencv在python中调用不了
方法一:
将安装目录opencv-3.4.0下的的build/lib/cv2.so 可能是其他命名的执行文件复制到Python2或者python3的安装包目录下
/usr/local/lib/python3/dist-packages
/usr/local/lib/python2/site-packages
方法二:
直接将安装目录opencv-3.4.0下的的build/lib/cv2.so 可能是其他命名的执行文件复制需要调用cv2的执行代码下即可调用此版本的opencv
一般刷机的时候板子上会安装docker,直接使用即可,但是nvdi-docker是不支持在TX2板子上安装的。
可以使用Tegra-Docker,功能类似于nvidia-docker
github上将代码下载下来(https://github.com/Technica-Corporation/Tegra-Docker)
下载好代码后不需要进行安装,直接进入到/Tegra-Docker/bin目录下看到tx2-docker文件
运行方式为:
bash tx2-docker run -it --------------------------------------
根据自己需要的版本下载源码安装
下安装的方式两种
第一种:pip download dlib
解压后直接使用命令:
python3 setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA
第二种:
git clone https://github.com/davisking/dlib.git
cd dlib
mkdir build
cd build
cmake … -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
cmake --build .
cd ..
python3.6 setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA
# python3 setup.py install(自己开发板jetson tx2,系统ubuntu18.0.4,用不了–yes)
一般download下来的软件是whl结尾 或者deb结尾的文件直接pip install *.whl
或者是 dpkg -i *.deb
其他的一些zip文件解压后安装源码的方式安装即可