烧录系统在Nvidia官网有详细的教程。官方建议使用16G以上的SD卡。本文烧录的主机是Windows系统。
以上就是Jetson Nano烧录SD卡系统的基本流程,在烧录过程中会有提醒磁盘需要格式化,点击取消即可。
将烧录好的SD卡插入Jetson Nano中,上电即可正常启动,可以通过网络远程控制Jetson Nano,这里有一篇教程讲的比较详细,但是我没有选择远程连接,而是直接连接了显示器和鼠标键盘。本身是已经预装了CUDA、OpenCV等库,在Jetson Nano开机之后,可以验证各个库的安装版本,详细可见这篇教程。一般来说OpenCV的版本会比较低,我会重新安装最新的版本,所以再这里只验证CUDA的安装情况。
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
在网速找更新源地址时,要注意ubuntu-ports,有些地址没有ports的后缀,需要自行添加,否则会报错。
然后在终端输入命令,让系统根据更新源进行更新,如果使用的是国外的源,时间会比较漫长。
sudo apt-get update
sudo apt-get full-upgrade
sudo vim ~/.bashrc
在末尾添加
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH
保存之后,执行下面命令:
source ~/.bashrc
接下来就可以查询到CUDA的版本信息了,执行以下命令
nvcc -V
如果能够正常显示CUDA的版本信息,那就说明没有问题。
基本流程是参照了这一篇文章,讲的非常详细,但是这篇文章并没有选择编译CUDA的部分,所以在Cmake的时候,需要添加一些和CUDA相关的选项,选项相关的参数是参考了OpenCV的官方文档。
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
这里经常会出现一个问题就是libjasper-dev
会安装失败,网上有很多解决方法,这里给出一个经过测试成功的方法,就是添加一个软件源即可,命令如下:
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
运行这条命令系统会自动更行软件源,如果没有的话,就再执行一次下面更新命令:
sudo apt update
添加之后再执行上面安装libjapsper-dev
的命令。
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
这里下载速度比较慢,耗时较长,下载之后可以备份一下,以免以后安装还要重新下载。
unzip opencv-4.1.1.zip
unzip opencv_contrib-4.1.1.zip
这里大家根据自己下载的版本,自行更改文件名。
这地方有时候也会出现下载错误,有时候是网络问题,有时候是缓存不够,可以看一下这个解决方法。
进入解压后的opencv-4.1.1文件夹:
cd opencv-4.1.1/
新建build文件夹并进入build文件夹:
mkdir build
cd build
执行cmake:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_BUILD_TYPE=Release \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 \
-DCUDA_ARCH_BIN=5.3 \
-DCUDA_ARCH_PTX="" \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_TBB=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GSTREAMER_0_10=OFF \
-DWITH_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=OFF \
-DWITH_TBB=ON \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_TESTS=OFF \
..
有几个参数需要说明一下:
-DCAMKE_INSALL_PREFIX 是opencv库的安装路径,可以自己更改
-DCMAKE_BUILD_TYPE 可以选择Release或者Debug类型
-DOPENCV_EXTRA_MODULES_PATH 是opencv_contrib的文件夹路径
-DCUDA_TOOLKIT_ROOT_DIR是CUDA库的路径,可以根据实际情况修改
-DCUDA_ARCH_BIN这个参数与显卡有关系,Jetson Nano的数值就是5.3
make -j4
这一步骤是出错最多的时候,这里列举几个曾经遇到过的几个报错:
fatal error: Eigen/Core: No such file or directory
sudo apt-get install libeigen3-dev
如果已经是安装了,还是报错,是因为默认的安装路径不对,需要重新映射:
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
fatal error: boostdesc_bgm.i: No such file or directory
fatal error: features2d/test/test_detectors_regressions.impl.hpp: No such file or directory
fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
make install
有时候不成功可以在前面加上sudo
.
在linux系统,可以直接通过命令安装Qt。
sudo apt-get install qt5-default qtcreator -y
sudo reboot
重启之后就可以直接通过命令
qtcreator
打开qtcreator编译器了。
但是并不是所有Qt组件都默认安装了,比如我需要的qt串口库就需要自行安装,命令如下:
sudo apt-get install libqt5serialport5-dev
在Qt中使用opencv库,需要在项目中的pro文件里添加opencv库的路径:
INCLUDEPATH += /usr/local/include/opencv4 \
/usr/local/include/opencv4/opencv2
LIBS += -L/usr/local/lib/ -lopencv_core
这里只是给大家举个例子,具体路径和库文件按自己的实际情况添加。