记录下平时配置ubuntu16.04(nvidia、CUDA、cudnn、opencv、jsoncpp、ZMQ、libevent)的过程,结合了多个帖子,侵删。
1.配置Nvidia驱动程序
首先去nvidia官网(http://www.nvidia.cn/Download/index.aspx?lang=cn)下载适配GPU的驱动,选择run版本
1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
习惯使用gedit,也可以使用vim编辑
若未安装vim则sudo apt-get install vim安装或使用vi
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统(一定要重启)
验证nouveau是否已禁用
lsmod | grep nouveau
没有信息显示,说明nouveau已被禁用,接下来可以安装nvidia的显卡驱动。
2.将在home文件夹下创建environments文件夹,拷贝下载好的.run文件
在ubuntu下按ctrl+alt+f1进入命令行界面,然后输入用户名和密码。接着在命令行界面下输入:
sudo service lightdm stop //这个是关闭图形界面,不执行会出错。
然后卸载掉原有驱动:
sudo apt-get remove nvidia-* (若安装过其他版本或其他方式安装过驱动执行此项)
3.给驱动run文件赋予执行权限:cd ./environments/
sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
4.安装
sudo ./NVIDIA-Linux-x86_64-410.78.run -no-x-check -no-nouveau-check -no-opengl-files
//只有禁用opengl这样安装才不会出现循环登陆的问题
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
安装过程中的选项:(有*标记的为我遇到的情况,其余供参考)
*The distribution-provided pre-install script failed! Are you sure you want to continue?
选择 yes 继续。
*Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
*Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
选择 Yes 继续
检查驱动是否安装成功:
nvidia-smi
如果出现如下提示,则说明安装成功:
2.安装CUDA与CUDNN
1)安装CUDA
到NVIDIA官网中,找到CUDA9.0并下载,下载链接:https://developer.nvidia.com/cuda-toolkit-archive
将文件放在environments目录下
chmod a+x environment/cuda_9.0.176_384.81_linux.run
./ environment/cuda_9.0.176_384.81_linux.run
单击回车,一路往下运行,会显示比例。
直到提示“是否为NVIDIA安装驱动nvidia-384?”,选择否,因为已经安装好驱动程序了,其他的全都是默认,不过要记住安装位置,默认是安装在/usr/local/cuda文件夹下。
配置环境变量,运行如下命令打开profile文件
sudo gedit /etc/profile
打开文件后在文件末尾添加路径,也就是安装目录,命令如下:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH
保存,然后重启电脑
reboot
测试CUDA的例子
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果显示的是关于GPU的信息,则说明安装成功了。
有时候cuda在运行是会报错,应该在~/.bashrc中添加环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
2)安装cudnn
官方下载链接:https://developer.nvidia.com/rdp/cudnn-archive
下载是以solitairetheme8结尾的,需要将后缀名改为.tgz,然后解压到environments。
复制文件到cuda安装路径下:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
然后查看cudnn版本,出现版本号则安装成功
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
3、安装opencv3.4.2(感觉这个安装不容易出错,所以都用的这个版本)
在Opencv官网下载OpenCV3.4.2 Sources 网址链接:https://opencv.org/releases.html
将下载好的压缩包放置于environments文件夹下,unzip opencv-3.4.2.zip
进入到解压后的文件包中安装依赖库。
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
安装cmake
sudo apt-get install cmake
安装完cmake之后 ,创建编译文件夹build
mkdir build
cd build
执行cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
如果卡在下载ippicv_2019_lnx_intel64_general_20180723.tgz
可以手动下载 ippicv_2019_lnx_intel64_general_20180723.tgz
解决办法:
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723/ippicv
可放在默认的下载路径 ~/DownLoad/
修改opencv里相关配置文件
打开终端,输入
gedit /home/June/environments/opencv-3.4.2/3rdparty/ippicv/ippicv.cmake
修改“https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/”
为手动下载的 ippicv_2019_lnx_intel64_general_20180723.tgz文件的本地路径(也就是将网络下载的模式改为本地文件下载的模式):
“/home/June/environments/” #(仅供参考,根据自己的路径填写)
重新cmake
等待cmake命令执行完成然后执行make
sudo make all -j8 //(如果显卡较好也可以-j12,显卡性能不够就sudo make就ok了)
sudo make install
sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
OpenCV安装配置完成接下来测试是否安装成功。
cd到opencv/smaples/cpp/example_cmake目录下我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下按顺序执行,执行过程如下:
# 进入opencv的安装目录
1、cd opencv-3.4.2/samples/cpp/example_cmake
2、cmake .
3、make
4、./example_cmake
如果你的ubuntu有摄像头,就可以看到摄像头打开,并且左上角有一个“hello,opencv”。没有摄像头就只显示“hello,opencv”。
4、jsoncpp的安装与配置
安装jsoncpp前必须安装scons
scons下载地址:
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
jsoncpp下载地址:
http://sourceforge.net/projects/jsoncpp/files/
下载放置于environment文件夹
解压scons-2.1.0.tar.gz
tar -zvxf scons-2.1.0.tar.gz
/home/xx/environments/目录下,在/home/xx/environments/下,执行命令:tar -zvxf scons-2.1.0.tar.gz,会将解压的文件放在scons-2.1.0下。
安装scons
进入到解压目录scons-2.1.0下面,执行命令:
sudo python setup.py install
解压jsconcpp
tar -zvxf jsoncpp-src-0.5.0.tar.gz
解压到environments/下,在environments/下,执行命令:tar -zvxf jsoncpp-src-0.5.0.tar.gz
将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到/usr/include/
在root根目录 / 下,进入目录 :
cd
进行拷贝:
sudo cp -r ./jsoncpp-src-0.5.0/include/json /usr/include/
sudo scons platform=linux-gcc
将jsoncpp-src-0.5.0/libs/linux-gcc-4.8.5/目录下的libjson_linux-gcc-4.8.5_libmt.a 和libjson_linux-gcc-4.8.5_libmt.so拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a 和 libjson.so
在root根目录下:
进入目录linux-gcc-4.8.5:
cd /home/xx/environments /jsoncpp-src-0.5.0/libs/linux-gcc-4.8.5
拷贝:
sudo cp libjson_linux-gcc-4.8.5_libmt.a /usr/local/lib
sudo cp libjson_linux-gcc-4.8.5_libmt.so /usr/local/lib
进入/usr/local/lib 目录,重命名链接库:
cd /usr/local/lib
sudo mv libjson_linux-gcc-4.8.5_libmt.a libjson.a
sudo mv libjson_linux-gcc-4.8.5_libmt.so libjson.so
9. 配置链接路径
直接运行jsoncpp文件,-ljson,系统会找不到xxx.so动态链接库。
在根目录下:
sudo gedit /etc/ld.so.conf
在 etc/ld.so.conf 下加入 /usr/local/lib 这一行,保存。
运行:sudo /sbin/ldconfig -v 更新一下配置。
5、安装ZMQ
https://blog.csdn.net/huoxingrenhdh/article/details/86688142
依赖包安装:
sudo apt-get install autoconf automake uuid-dev
sudo apt-get install python-dev
a.zmq安装包下载
http://zeromq.org/intro:get-the-software
下载POSIX tarball,得到zeromq-2.1.7.tar.gz
b.解压
tar -xvf zeromq-2.1.7.tar.gz
解压后得到zeromq-2.1.7文件夹
c.安装
cd zeromq-2.1.7
将看到configure
sudo ./configure
ls
将看到MakeFile
sudo make
sudo make install
sudo ldconfig
6、安装libevent(*)
https://libevent.org/下载:
tar -zxvf libevent-2.0.22-stable.tzr.gz
cd libevent-2.0.22-stable
chmod a+x configure
./configure --prefix=/usr
make
sudo make install
检查是否libevent已经安装完毕
ls -al /usr/lib | grep libevent