ubuntu16.04安装cuda8和opencv3.2

来源:互联网 发布:斯伦贝谢软件研发中心 编辑:程序博客网 时间:2024/06/05 20:24

首先,如果没有安装显卡驱动,请下载先安装独立显卡驱动,如果已经安装好显卡驱动,请直接忽视安装显卡驱动。

1、显卡驱动安装

安装完ubuntu16.04系统之后,直接更新系统并重启。在多显卡的笔记本中,可能需要在BIOS系统里选择”自由选择显卡“,这样系统才能识别nvidia的显卡,并进行驱动更新。我这里是运用ppa更新的最新驱动,使用起来能够得到挺好的体验,并能够实现双显卡的自由切换。
首先,通过快捷键Ctrl+Alt+T打开终端,然后加入官方ppa源:

$ sudo  add-apt-repository ppa:graphics-drivers/ppa

需要输入用户密码,并确认链接源。之后刷新软件库并安装最新的驱动,在命令行输入:

$ sudo apt-get update$ sudo apt-get install nvidia-367 nvidia-settings nvidia-prime

由于联想笔记本的UEFI保护,会拒绝第三方的驱动,因此需要关闭该保护,关闭之后重启能够正常驱动nvidia,并能够进行双显卡的切换。
安装完成之后,可以通过系查看系统属性,看是否是nvidia的显卡。另外,也可以通过下面命令看是否安装成功:

$ nvidia-settings 

然后:去官网下载cuda:https://developer.nvidia.com/cuda-downloads



下载之后进入下载文件夹,打开终端输入,后面文件名不一定一样,根据自己的修改

  1. chmod 777 cuda_8.0.61_375.26_linux.run
  2. sudo ./cuda_8.0.61_375.26_linux.run --override

输入完这个时候,过一段时间,会有一个很长很长的说明,刚开始显示0%,可以一直按住F跳到最后,之后会问你是否接受,输入accept即可,然后就是要输入是否同意安装显卡驱动,请注意,输入这里no,后面输入yes就行,安装路径直接输入默认路径进行。

注意:后面的override是必须的,这样才能保证安装的过程中,不会出现编译器不支持的错误。另外,在选择条件的过程中,一定!一定!一定!不要再次安装nvidia驱动,虽然cuda.run文件本身是包含又nvidia驱动的,但是本处直接安装会出错。下图是安装.run文件的配置:




安装完成之后会出现

============ Summary ============
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8
Samples: Installed in /usr/local/cuda-8


之后更换cudnn动态库,可以获得更快的计算效率。先下载cudnn,可以自己去官网下载,也可以到这里下载,根据自己的喜欢随便那一个都可以,版本不同而已。链接: https://pan.baidu.com/s/1dEHPZCt 密码: cb3k


载完cudnn6.0之后进行解压,cd进入cudnn6.0解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件

再将lib64目录下的动态文件进行复制和链接:

$ sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库$ cd /usr/local/cuda/lib64/      $ sudo rm -rf libcudnn.so libcudnn.so.6    #删除原有动态文件$ sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6$ sudo ln -s libcudnn.so.6 libcudnn.so 

然后设置环境变量和动态链接库,在命令行输入:

$ sudo gedit /etc/profile

在打开的文件末尾加入:

export PATH = /usr/local/cuda/bin:$PATH

保存之后,创建链接文件:

$ sudo vim /etc/ld.so.conf.d/cuda.conf

按下键盘i进行编辑,输入链接库位置:

/usr/local/cuda/lib64

然后按esc,输入:wq保存退出。并在终端输入:

$ sudo ldconfig

使链接立即生效。


3、cuda用例安装与测试

在安装cuda.run文件时,我们已经选择安装了samples用例,还需要编译

cd /usr/local/cuda/samples$ sudo make all -j4$ cd /usr/local/cuda/samples/bin/x86_64/linux/release$ sudo ./deviceQuery

成功之后下面会出现一大串英文

也可以进入python输入:

import cv2

cv2.__version__

显示了版本信息就正确安装了

三、OpenCV3.2.0安装与配置

首先安装一些必要的依赖库

$ 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 # 处理图像所需的包$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev$ sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包$ sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能$ sudo apt-get install ffmpeg
** 其他一些包在之后的cmake的时候缺失的时候会进行安装,如果安装失败可
以手动下载相应的包然后放入提示的目录下。如果遇到安装依赖库失败,,可以
手动下载依赖库安装


然后从OpenCV官网下载源码的压缩包opencv-3.2.0.zip,然后把它解压

https://github.com/opencv/opencv/releases/tag/3.2.0


sudo unzip ~/Downloads/opencv-3.2.0.zip -d ~/
2、进入opencv文件夹,新建build文件夹编译用

1. cd ~/opencv-3.2.0

2. mkdir build

接下来我们需要使用cmake编译整个OpenCV,CMakeFile附带在压缩包中不需要自己去写(谢天谢地)

,最后那两个点不能省,否则目录不正确,无法完成编译

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

生成的文件在bulid中,而生成的CMakeLists.txt文件在上一级文件中。在配置过程会出现

– ICV: Downloading ippicv_linux_20151201.tgz…错误。可以到:

http://blog.csdn.net/huangkangying/article/details/53406370 下载

将下载的文件替换掉

opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,

同时在opencv-3.1.0目录下的CMakeList.txt 文件的开头加入一行,然后再次cmake即可,如下:

  1. $ cd ~/Downloads/  
  2. $ mv ippicv_linux_20151201.tgz opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/   
  3. $ vim opencv-3.1.0/CMakeLists.txt 

在弹出的文件开头加入一行(注意里面的引号要英文状态下的):

  1. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")  

  • 然后按esc和:wq保存退出。

    1. $ cd opencv-3.1.0/build  
    2. $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
    3. $ make -j4       #四核运算  
    4. $ sudo make install  
  • 以上最后两步比较耗时,耐心等待




参考文章:

http://www.linuxidc.com/Linux/2016-07/132860.htm

http://blog.csdn.net/u011272513/article/details/52103453#t5

http://blog.csdn.net/huangkangying/article/details/53406370

http://blog.csdn.net/qq_24626557/article/details/70173399

http://www.cnblogs.com/arkenstone/p/6490017.html









0 0