Ubuntu16.04下YOLO3环境配置:NVIDIA驱动+CUDA9.0+CUDNN7.05+OpenCv3.4.5

一、安装NVIDIA显卡驱动

参考:1 2 3

1、禁用nouveau

ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动
a、打开文件:

sudo gedit /etc/modprobe.d/blacklist.conf 

b、在文件末端添加:

blacklist nouveau
options nouveau modeset=0

c、更新系统修改:

sudo update-initramfs -u

d、重启系统
e、验证nouveau是否已禁用

lsmod | grep nouveau

在这里插入图片描述如果没有出现任何东西就是成功了

2、下载驱动文件并指令安装

a、在英伟达的官网上查找你自己电脑的显卡型号然后下载相应的驱动,载后的run文件拷贝至home目录下,文件为:NVIDIA-Linux-x86_64-xxx.run:
在这里插入图片描述

b、在ubuntu下按ctrl+alt+f1+f2+…f6(直到进入命令行界面即可停止)
注:ctrl+alt+f7是退出命令界面,回到图形界面
c、login:电脑账户名称,password:密码,登录到命令行界面
d、关闭图形界面(必须关闭)

sudo service lightdm stop

e、卸载系统中存在的驱动,默认有安装的

sudo apt-get remove nvidia-* 

f、给文件权限

sudo chmod  a+x NVIDIA-Linux-x86_64-xxx.run(根据自己下载的文件)
sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files

其中:
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件

如果接下来没有开始安装,错误提示好像是出现两个码,这时候查资料说是驱动版本问题,我就重新下载了驱动,440版本换成了430如图,然后就可以重新安装了:
在这里插入图片描述
在这里插入图片描述
g、安装过程
1、he distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。

2、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继续

3、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 继续

h、重启图形界面

sudo service lightdm start 

按Ctrl+Alt+F7返回图形界面

i、检查驱动是否安装成功

nvidia-smi 

2020-03-20 10-11-53屏幕截图
则显示安装成功!

二、安装CUDA9.0

参考:1 2 3
1、官网上下载CUDA9.0:
在这里插入图片描述这里选择runfile安装,下载得到如:cuda_9.0.176_384.81_linux.run,我把它放到home文件夹里了,便于接下来找路径

2、安装CUDA9.0
a、在ubuntu下按ctrl+alt+f1+f2+…f6(直到进入命令行界面即可停止),并登录
b、关闭图形化界面

sudo service lightdm stop

c、切换到cuda安装文件的路径并运行安装

cd ~
sudo sh cuda_9.0.176_384.81_linux.run

然后一直按enter键,直到服务条款显示到100%,然后根据问题进行操作:

accept
n(不要安装driver)
y
y
y
然后显示安装成功

3、重启图形界面

sudo service lightdm start

按住Alt + ctrl +F7,返回到图形化登录界面

4、重启电脑,检查Device Node Verification

ls /dev/nvidia* 

可能出现a、b两种结果,请对号入座:
a、若结果显示 /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm 或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功。
b、大多数结果可能会是这样 ls: cannot access/dev/nvidia*: No such file or directory 或是这样的,只出现 /dev/nvidia0 /dev/nvidiactl a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。

如果是b,则:

sudo vi /etc/rc.local 

如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外);

这文件的第一行是 #!/bin/sh -e 把-e去掉(这步很重要,否则它不会加载这文本的内容) 然后把下列内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出;

#!/bin/bash
/sbin/modprobe nvidia
 
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
 
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
 
mknod -m 666 /dev/nvidiactl c 195 255
 
else
exit 1
fi
 
/sbin/modprobe nvidia-uvm
 
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
 
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi

重启!再次输入:

 ls /dev/nvidia*

结果显示:/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm 成功!

如果还没有的话,检查这里:
在这里插入图片描述

5、设置环境变量

sudo gedit /etc/profile

在打开的文件末尾,添加以下两行:

64位系统:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
                                ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
32位系统:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\
                             ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件,并重启,因为source /etc/profile是临时生效,重启电脑才是永久生效

6、检查上述的环境变量是否设置成功
a、 验证驱动版本

cat /proc/driver/nvidia/version 

结果显示 NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.81 Sat Sep 2 02:43:11 PDT 2017 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b、 验证CUDA Toolkit

nvcc -V     

会输出CUDA的版本信息 如果是这样的: The program ‘nvcc’ is currently not installed. You can install it by typing: sudo apt-get install nvidia-cuda-toolkit 可能是环境配置没有成功,请重复上述步骤5)

注:如果遇到错误:Missing recommended library:
在这里插入图片描述
则:

`sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev`

然后重新安装,参考:https://blog.csdn.net/weixin_43506858/article/details/89845768

7、尝试编译cuda提供的例子

cd /home/xxx/NVIDIA_CUDA-9.0_Samples 
make

整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。 第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc, 解决办法就是通过命令重新安装gcc就行:

sudo apt-get install gcc 

安装完gcc后, 再make就正常了;如果编译成功,最后会显示Finished building CUDA samples,如下图所示:
在这里插入图片描述

`cd /home/lxxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release`
./deviceQuery

结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL
在这里插入图片描述

./bandwidthTest

看到类似如下图片中的显示,则代表成功!
在这里插入图片描述

三、安装CUDNN7.05

1、下载安装文件

官网下载:https://developer.nvidia.com/rdp/cudnn-archive
2020-03-20 10-58-03屏幕截图
2、安装
解压下载的文件,可以看到cuda文件夹,在当前目录(cudnn的上一层)打开终端,执行如下命令:

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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

3、查看cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果出现下图所示版本信息,说明安装成功:
在这里插入图片描述4、实时查看GPU(每秒)

watch -n 1 nvidia-smi

在这里插入图片描述

四、安装OpenCv3.4.5

参考:https://blog.csdn.net/gaoyu1253401563/article/details/89380270
1、下载解压
官网下载OpenCV的source版本,选择OPenCV3.4.5的Sources版本;
百度云盘已经下载好的:https://download.csdn.net/download/gaoyu1253401563/11129399

2、安装依赖库和cmake
进入解压后的文件包中(opencv-3.4.5)

sudo apt-get update
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  

安装完cmake之后执行命令,创建编译文件夹,并进入编译文件夹

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

执行上面的命令时,会下载IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz,在运行时到这一行,下载不动,出现无法下载的情况,有可能是因为墙的原因无法下载,因此我们手动把这个文件下载下来再重新运行:
百度网盘(免费):链接: https://pan.baidu.com/s/1eyG7mqKLY6CvUQdh7CbUgA 提取码: 1miu

下载完后替换opencv-3.4.5/3rdparty/ippicv/downloads/linux-*目录下的同名文件,重新cmake(build目录下)

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

结果如下:
在这里插入图片描述3、执行编译过程

sudo make

在这里插入图片描述
4、安装

sudo make install

在这里插入图片描述
在这里插入图片描述
5、配置一些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

6、测试opencv
进入opencv目录的example_cmake目录,执行:

cmake .
make
./opencv_example

结果:
2020-03-20 11-32-07屏幕截图
成功!

发布了26 篇原创文章 · 获赞 0 · 访问量 1206

猜你喜欢

转载自blog.csdn.net/weixin_44264994/article/details/104983395