每次重新配置新重装的Ubuntu16.04系统,都在上网找资料,如何安装NVIDIA驱动,CUDA,CUDNN,OPENCV,每次都是东找找西找找,所以,这次决定自己全部整理一下。如果可以帮助到和我一样的小白,万分荣幸。
目录
一、安装NVIDIA驱动
对于重新安装的Ubuntu16.04系统,会自带nvidia的驱动,可以通过命令或图形界面可视化进行查看并应用,我这里用可视化的方法。(之前也看到网上有先卸载自带驱动,然后去Nvidia官网下载对应的驱动,再进行安装。个人觉得系统自带的驱动就可以为下面安装CUDA、CUDNN提供支持了,所以我这里就用了系统自带的驱动)。点击System Settings ---> Software & Updates ---> Additional Drivers. 进入到这里可以看到有两个驱动,新的Ubuntu系统默认是Nouveau,我们选择第一个Nvidia的驱动,然后Apply Changes,这里需要等待一段时间。如果没出什么问题,驱动就换成了Nvidia的驱动。
检查一下驱动是否更换成功,打开terminal,输入以下命令,打印出gpu信息的表格,说明更换成功。可以看到,我的驱动版本是384.130。
nvidia-smi
二、安装CUDA
首先,去NVIDIA官网下载CUDA,我这里下载的是CUDA9.0版本,附上链接:
CUDA9.0: https://developer.nvidia.com/cuda-90-download-archive
Download下载选择如图:
下载成功后,进入到下载所在目录,先对cuda添加权限,再通过命令进行安装(命令如下)。安装过程中会执行一些确认信息,其中有一个是否更新驱动,这里选择no(前面已经安装过驱动了)。其他的都选择y或accept。
chmod a+x *.run # * 为下载cuda对应的名字
sudo sh *.run # 执行.run,进行CUDA安装
安装成功后,执行以下命令,配置环境变量:
sudo gedit ~/.bashrc # 打开.bashrc
# 将以下内容写入文件的尾部
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
#让配置生效
source ~/.bashrc
完成以上步骤,CUDA就安装完成,测试CUDA是否安装成功:
cd /usr/local/cuda-9.0/samples/1_Utiities/deviceQuery
sudo make
sudo ./deviceQuery
出现以下信息,说明安装成功:
三、安装CUDNN
CUDA安装成功后,下面安装CUDNN。附上CUDNN下载链接:https://developer.nvidia.com/rdp/form/cudnn-download-survey
cudnn的安装是建立在我们成功安装cuda的基础上的,cudnn同样需要去NVIDIA的官网下载(需要注册登录)我们的cuda版本所对应的cudnn的tgz文件。下载完成后,解压.tgz文件
解压后会出现一个cuda文件夹,里面有两个文件夹include和lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录下。然后对文件进行加权限。
# 复制
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
# 加权限
sudo chmod a+x /usr/local/cuda/include/cudnn.h
sudo chmod a+x /usr/local/cuda/lib64/libcudnn*
更新网络连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.6.4
sudo ln -sf libcudnn.so.7.6.4 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
检查是否安装成功,通过以下命令:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR-A2
若出现以下信息,说明安装成功:
四、安装OPENCV
首先,去下载opencv,链接在下面,进入到链接,选择自己所要安装的版本,我这里安装的是opencv3.4.2版本。选择Sources下载
链接:http://opencv.org/releases.html
下载成功后,进行解压,在同级目录下创建一个opencv342_build的文件夹,用于存放构建后的opencv。
下面安装一些opencv的依赖库(这里可能安装的不全,等在cmake时,会有提示还缺少哪些依赖库,到时候我们再依照提示对应安装)和cmake,cmake-gui(用于cmake图形化界面安装)
sudo apt-get install cmake
sudo apt-get install cmake-gui
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
打开终端,输入cmake-gui,在source code:输入你解压后的opencv路径;build the binaries:输入刚才创建的opencv342_build文件夹的路径,然后点击Configure进行构建。完成后,会出现需要红的提示错误,这些每个人都会不一样,根据提示进行安装就可以(一般就是缺少依赖库),在根据自己的需求勾选你需要或者不需要的库。最后,知道没有红色警告,点击Generate。
进入到opencv342_build中,执行make进行编译
cd opencv342_build
sudo make -j8 # 时间比较漫长
编译完成后,进行安装
sudo make install
以上步骤执行完后,opencv的编译安装过程就结束了,接下来的工作就是配置一些opencv的编译环境。
首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加以下内容:/usr/local/lib
执行如下命令使得刚才的配置路径生效:
sudo ldconfig
配置环境变量:
sudo gedit /etc/bash.bashrc
#添加以下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#保存,然后使环境变量生效
source /etc/bash.bashrc
至此,opencv安装配置完成,下面测试一下是否成功。执行以下命令,会打开摄像头,则说明opencv安装配置成功。
cd Download/opencv-3.4.2/samples/cpp/example_cmake
cmake .
make
./opencv_example