Jetson TX1 从零开始配置教程

Jetson TX1 刷系统以及配置Caffe教程

本篇教程主要包含以下内容:

  • 配置 NVIDIA 最新的 JetPack 2.3 开发包
  • Jetson TX 1 上编译 OpenCV 3.1
  • 配置 Caffe 开发环境

配置 JetPack 2.3

JetPack 2.3 是NVIDIA最新发布的用于在Jetson系列嵌入式平台上部署开发环境的开发包,它包含 64bit 的 Ubuntu16.04 操作系统,CUDA 8.0,cuDNN 5.1,以及用来加速CNN推断速度的TensorRT. 对于JetPack 2.3更详细的介绍参见 NVIDIA JetPack 2.3 介绍

配置 JetPack 2.3 需要:

  • 一台装有 Ubuntu 64位操作系统的主机:由于 JetPack 是先在主机上下载并安装相关的包,然后刷到 TX 1上,所以需要一台主机。本人在14.04上测试没有问题,其它系统没有测试。
  • 一根网线:连接 TX 1 与路由器
  • 显示器,键鼠 等

1. 下载 JetPack 2.3

在主机上通过 NVIDIA 官方链接 下载 JetPack 2.3,并新建一个文件夹存放下载下来的文件,文件名大概为 JetPack-L4T-2.3-linux-x64.run
在/home/usrname/目录下新建文件夹,可以命名为 JetPack :

cd ~
mkdir JetPack
cp ~/Downloads/JetPack-L4T-2.3-linux-x64.run ~/JetPack

2. 安装 JetPack 2.3

2.1 为 JetPack-L4T-2.3-linux-x64.run 增加执行权限

cd ~/JetPack
chmod +x JetPack-L4T-2.3-linux-x64.run

2.2 执行 JetPack-L4T-2.3-linux-x64.run ,点击 Next

./JetPack-L4T-2.3-linux-x64.run

Jetson TX1 从零开始配置教程_第1张图片

2.3 指明安装路径后选择部署的开发平台

此处我们选择 Jetson TX1,同样也支持 TK 1的部署

Jetson TX1 从零开始配置教程_第2张图片

2.4 弹出 JetPack L4T Component Manager 对话框

由于我已经安装好了所有的包,所以这边的Action一栏是no action,如果没有安装过的话,会显示install xxx
这里点击Next后,接受所有的申明,就开始了漫长的下载与安装…(我等了10多个小时)

Jetson TX1 从零开始配置教程_第3张图片

这里大家可以选择不安装OpenCV for Tegra,因为这个版本是2.4.13,对于USB摄像头的读取支持不是很好,另外对于CUDA静态库的读取也有些问题,所以不推荐安装,稍后会提示大家安装 OpenCV 3.1

2.5 网络配置和端口选择

安装完成后进入网络配置选项,选择通过路由器连接互联网,同时将TX1连接到与主机同一个路由器上

Jetson TX1 从零开始配置教程_第4张图片

选择eth0端口,点击Next

Jetson TX1 从零开始配置教程_第5张图片

2.6 设置 TX 1 为 Force USB Recovery Mode (强制USB恢复模式)

弹出如图所示终端窗口:

Jetson TX1 从零开始配置教程_第6张图片

按照提示,将TX1设置为强制USB恢复模式

  • 关闭设备,移除电源适配器
  • 用自带的Micro USB 转 USB 数据线连接主机与TX1
  • 连接电源适配器
  • 按下POWER按钮
  • 按住FORCE RECOVERY 按钮不放开,同时按一下RESET按钮,等待两秒钟,松开FORCE RECOVERY 按钮

完成上述步骤后,可以在主机上通过 lsusb命令查看是否含有Nvidia Corp设备,确认存在后敲击Enter,开始将操作系统以及开发包拷贝到TX1,中途连接TX1的显示器会显示Ubuntu 16.04 桌面系统

待安装部署完成后,在主机上退出 JetPack L4T 即可,这样就完成了 JetPack 2.3 的配置

2.7 运行示例

我们可以在TX1上运行几个示例,验证下 CUDA 8.0 是否安装成功

./NVIDIA_CUDA-8.0_Samples/bin/aarch64/linux/release/smokeParticles

配置 OpenCV 3.1

OpenCV 3.1 是目前较为稳定的版本,因此推荐大家在TX1上安装OpenCV 3.1

1. 下载 OpenCV 3.1

下载 OpenCV for Linux/Mac (Version 3.1)

2. 安装依赖库

sudo apt-add-repository universe
sudo apt-get update

sudo apt-get install -y build-essential make cmake cmake-curses-gui g++
sudo apt-get install -y libavformat-dev libavutil-dev libswscale-dev
sudo apt-get install -y libv4l-dev libeigen3-dev libglew1.6-dev libgtk2.0-dev

3. 编译安装OpenCV 3.1

cd ~
unzip opencv-3.1.0.zip
cd opencv-3.1.0
mkdir build
cd build
cmake -DWITH_CUDA=ON -DCUDA_ARCH_BIN="5.3" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCUDA_FAST_MATH=ON ..
sudo make -j4 install

编译好的OpenCV库会默认安装到 /usr/local/文件夹下

注意:
由于CUDA 8.0不支持OpenCV的 GraphCut 算法,可能出现以下错误:

/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared
     typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
                                                      ^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: ‘NppiGraphcutState’ does not name a type
         operator NppiGraphcutState*()
                  ^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: ‘NppiGraphcutState’ does not name a type
         NppiGraphcutState* pState;
.......

此时需要修改OpenCV源码,使其不编译graphcuts.cpp 即可
进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

修改为

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)  || (CUDART_VERSION >= 8000)

重新编译即可

配置 Caffe 开发环境

此处有很详细的指导,复制过来

1. 安装依赖库

sudo add-apt-repository universe
sudo apt-get update -y

sudo apt-get install cmake -y
# General Dependencies
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \
libhdf5-serial-dev protobuf-compiler -y
sudo apt-get install --no-install-recommends libboost-all-dev -y
# BLAS
sudo apt-get install libatlas-base-dev -y
# Remaining Dependencies
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y
sudo apt-get install python-dev python-numpy -y

2. 编译 Caffe

git clone https://github.com/BVLC/caffe.git 
cd caffe 
cp Makefile.config.example Makefile.config

修改Makefile.config:

# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1

# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3

# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1

由于hdf5库目录更改,所以需要单独添加:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/aarch64-linux-gnu/hdf5/serial/

之后编辑即可

make -j4 all
make -j4 runtest

为了更好地使用pycaffe ,建议安装:

sudo apt-get install python-numpy python-setuptools python-pip cython python-skimage python-protobuf

make pycaffe

到这里Caffe开发环境就配置好了!
可以测试一下,输出AlexNet的时间测试结果:

cd ~/caffe
./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt

你可能感兴趣的:(Jetson-TX1)