Ubuntu16.04 CUDA 8.0 OpenCV 3.2.0 Darknet

来源:互联网 发布:vb提取网页数据 编辑:程序博客网 时间:2024/06/08 22:14

在暗夜精灵2[i7 + GT960m[2G]]上成功安装配置

1. 安装Ubuntu 16.04

下载镜像,刻录U盘进行安装。
安装完成后,打开终端,输入下面命令,进行软件安装和升级。

sudo apt update && sudo apt -y upgradesudo apt install build-essential cmake git vim libgtk2.0-dev //这些可能会用到,到时候提示缺什么再装什么。

升级所有软件到最新(个人就是喜欢最新的 ^_^)

2. 安装显卡驱动375.39

我下载的是“NVIDIA-Linux-x86_64-375.39.run”

首先禁用nouveau这个开源显卡驱动

新建并编辑/etc/modprobe.d/blacklis-nouveau.conf文件

sudo vim /etc/modprobe.d/blacklis-nouveau.conf

给文件添加内容:

blacklist nouveaublacklist lbm-nouveauoptions nouveau modeset=0alias nouveau offalias lbm-nouveau off

保存退出。(到这一步我的电脑重启后并没有成功禁用,不知道为什么。)
然后,我又这么做了。
内容来自这里 点我带你去

sudo apt-get install dkms build-essential linux-headers-generic

(其实,我的最后只安装了dkms)
下面这个说是 “Disable the Kernel nouveau by typing the following commands(nouveau-kms.conf may not exist,it is ok)”

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

紧接着,执行下面命令来“build the new kernel ”

sudo update-initramfs -u

然后,reboot。重启后执行下面命令:

lsmod | grep nouveau

如果什么都没出现,那么就禁用好了。PS:如果没好的话就要Google、百度、Bing各种搜了。

安装驱动

这里就Ctrl+Alt+F1,命令行登录,来执行命令。

sudo /etc/init.d/lightdm stopsudo ./NVIDIA-Linux-x86_64-375.39.run --no-opengl-filessudo /etc/init.d/lightdm start

第一步:关掉桌面

第二步:安装驱动,但是不安装OpenGl,不然会卡在登录界面(原因现在还不知道,以后可以再查)

 *PS:我当时安装的时候出现错误“unable to load the 'nvidia-drm' kernel module”,我是进入BIOS关闭secure boot后可以正常安装的。安装好之后也请不要打开,否则,运行程序会报错。*

第三步:启动桌面

最后,输入下面命令,看到显卡信息就OK了。

nvidia-smi

3. 安装CUDA 8.0

我下载的是“cuda_8.0.61_375.26_linux.run”

sudo sh cuda_8.0.27_linux.run

会有各种提示,我没有选择安装显卡驱动和OpenGL。
然后,就是配置环境了,

sudo vim ~/.bashrc

还有说需要同时更改/etc/bash.bashrc,我认为没有必要。当然也可以改
添加下面内容:

export CUDA_HOME=/usr/local/cuda-8.0export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

其中,如果在安装CUDA的时候选择了建立链接cuda到cuda-8.0的话,也可以只写cuda。
然后,重新打开终端,执行命令:

nvcc -V

就可以看到,nvcc版本信息。

4. 安装cuDNN

这个下载的时候需要注册NVIDIA的账号
我下载的是cudnn-8.0-linux-x64-v5.1.tgz
解压后:

cuda|      | include |               | cudnn.h    | lib64   |              | *(5个文件)
cd cudasudo cp include/cudnn.h /usr/local/cuda-8.0/include/sudo cp lib64/* /usr/local/cuda-8.0/lib64/

这里的cuda-8.0同上。

5. 安装OpenCV 3.2.0

git clone https://github.com/opencv/opencv.git// 这里也可以去OpenCV官网下载cd ~/opencv  //也有可能是 opencv-3.2.0mkdir build  //也可能已经存在cd buildcmake ..     //这一步会下载ippicv_linux_20151201.tgzmake -j8     //如果之前安装好CUDA的话,默认编译会花费很长时间。//可以使用cmake -D WITH_CUDA=OFF ..sudo make install

配置

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'sudo ldconfig

6. 安装Darknet

git clone https://github.com/pjreddie/darknet.gitcd ~/darknet

配置Makefile

1 GPU = 1      //使用GPU2 CUDNN = 1    //使用cuDNN3 OPENCV = 1   //使用OPENCV

如果使用OpenCV 3.2.0,会出现“error: unknown type name ‘CvCapture’”。
那么,在报错的文件中,#ifdef OPENCV 模块中添加下面这行代码:来自这里

#include "opencv2/videoio/videoio_c.h"

编译

make -j8

测试

./darknet

显示

usage: ./darknet <function>

有什么问题欢迎联系我,我们可以讨论一下
QQ:275212517

主要参考了下面这两篇文章,在这里对作者表示感谢!
当然,还有一些是个人经验和Google、百度、Bing的结果,一起表示感谢!~

http://blog.csdn.net/hrsstudy/article/details/60781331
http://blog.csdn.net/hrsstudy/article/details/60340699

5 0