写在前面:
由于需要做ROS的一个项目,ubuntu需要装14.04和ROS indigo的东西,于是就在Ubuntu14.04的环境下进行安装,学校电脑是Dell的WorkstationT7910, 装上Ubuntu14.04之后就有一些问题,Ubuntu14.04兼容不了显卡,导致图标过大,分辨率很低,在设置页面又是不能够调节,本来想凑合用,但是在Gazebo和rviz显示的时候太过于别扭了,于是下定决心要把驱动装好,就开始了漫漫的装驱动之路,也算是踩过不少坑,写下这篇博客为后来人铺路。之后的CUDA也有不少坑,算是配环境配到手软吧哈哈。
最后强力推荐一个老哥的博客,写的很好,很细致,从配环境到手把手教深度学习项目内容都有,感兴趣的读者欢迎访问
https://blog.csdn.net/qq_33431368
一开始我是没打算学习深度学习的,只是想要把环境装好,查了多方资料,最终搞好了,这篇博客给我了很大的帮助,附上链接以示尊敬。点击此处[1]
里面也有讲解ubuntu系统的安装,这里就不多提了,来说一下驱动的安装。
lspci | grep VGA
命令就能查看,但是我这边是没有识别出来的,显示如下
03:00.0 VGA compatible controller: NVIDIA Corporation Device 1bb0 (rev a1)
/etc/X11/xorg.conf
路径下能看到自己的显卡型号,我的是
也没有显示,emmmm由于我是双系统,在win10中用鲁大师查到了自己的配置,如果读者没有双系统的话如有查询的方法望告知。
接下来,就登录nvidia的官网下载适合自己的显卡驱动吧。网址[2]
选择适合自己版本的显卡驱动,我的就是这个 Quadro P5000
在接下来的窗口点击下载即可。
安装驱动(引用自网址[2])
(1) 卸载原有驱动 sudo apt-get remove --purge nvidia-* 如果之前没有装过NVIDIA驱动,这步可以不需要。
(2) 禁用Ubuntu系统自带的通用显卡驱动nouveau
sudo gedit /etc/modprobe.d/blacklist.conf输入密码后,该命令会用gedit工具打开一个配置文本文件,类似于window里的txt文件,在该文件的最后添加一行:blacklist nouveau后保存退出。然后终端敲入命令 sudo update-initramfs -u
(3) 重启电脑,打开终端敲入命令 lsmod | grep nouveau 若无输出表示该驱动禁用成功。
(4) 开机后,Ctrl+alt+F1进入tty1,按提示输入用户名(login)、密码(password)后,敲入命令sudo service lightdm stop,显示lightdm stop/waiting字样代表禁用X服务器成功。(提示,小键盘不管用,用字母上面的那些数字来输入你的数字密码)
(5) 安装NVIDIA显卡驱动,若是deb包敲入命令 dpkg -i “.deb文件名”;若是run文件敲入命令sudo sh “.run文件名”。按照提示选择进行安装,如accept、yes、ok等,等待片刻即可安装成功。
(6) 敲入命令sudo service lightdm start 打开X服务器后,重启电脑。
(7) 进入终端用以下三个命令均可验证显卡驱动是否安装成功,最后一个命令需要根据提示安装glxinfo程序:sudo nvidia-smi(显示GPU设备表)、cat /proc/driver/nvidia/version(显示出用于显示的GPU驱动程序版本号、也就是那块接了显示线的独显的驱动程序版本号)、glxinfo | grep rendering(显示yes)
至此,驱动部分已经装好了,可以试一下
nvidia-smi
来看一下自己的驱动是否装好,如下图
我的界面是在恢复图形界面时,自动的适应了屏幕的分辨率,如果你的没有,可以在系统设置--显示中查看
(发现上方 CUDA版本是10.0, emmm,这就是我踩过的坑之一,后面会讲)
其实本节上方的链接有讲CUDA的安装,但是当时我心不在此,装好了驱动之后感觉万事大吉,并没有总结,也没有去装CUDA, 导致后来又有了一系列的惨剧,今天先写到这里,明天有时间补。
最近开始学习深度学习的一些东西,需要用到tensorflow的东西,由于机器显卡比我的计算机强的不知道多少倍了,于是决定一步到位,安装一个GPU版本的tensorflow,于是开始各方查资料,了解到要安装CUDA和CUDNN,而CUDA需要有NVIDIA驱动的支持,不同版本的CUDA也有一个最低的驱动配置要求。
我当时是参考的这一篇博客[3],因为看到别的CUDA10.0都跟tensorflow不兼容,导致无法运行,只有这一篇兼容,于是进行了操作。
(后来看到了HongShu Che大佬的博客,这个大佬我认识,人自律又十分强,写了十分多的关于机器学习和深度学习实战的文章,我也准备进一步关注他的博客。看到了他给出了一个解决方案,但是这时候我已经换到了CUDA9.0,也懒得折腾了,如果大家有需求,请参看大佬博客1.[4] 2.[5])
于是开开心心的装了Anaconda3.0于清华的镜像源,装了CUDA10.0以及配套的CUDNN,结果出现了很严重的问题。
在此放出清华的源[6]
查询了很多解决方案,不管是下载还是更新全部都是如此,换源换过清华的还有中科大的,也换过最新的清华源,但是并没有任何改善,知乎网友说遇到了这个情况把源都删掉,用默认的官网的源就好了,但是依旧不起作用。哦对了,值得提的就是最开始重启电脑的时候,安装成功了,但是之后再也没有成功过,导致我无法用anaconda安装tensorflow而根据我参考的博客说,pip下载的tensorflow是只能跟cuda9.0兼容的,于是我陷入了瓶颈。
附上清华的源的添加方法,和网址,能够直接使用成功的小伙伴可以直接食用。
添加方法:添加源的方法[7]
如果成功的小伙伴可以跳过这一点了,如果没有成功的小伙伴我先附上我的解决方案。
一些源:中科大&清华的源[8]
步骤如下:
应该有人疑惑为什么不选deb(local) 安装吧,因为之前我安了10.0的,再次安装的时候默认安装10.0导致我安不了9.0的,于是找到了一个安装9.0的方法,就是用runfile文件安装了。
参考https://www.cnblogs.com/cmsax/p/tfub.html
这里需要注意的是,我们已经安装好了驱动,他询问是否安装驱动的时候选择n,否则可能会被覆盖掉,我们之前的驱动就白装了。
https://developer.nvidia.com/rdp/cudnn-download
科学上网上去,之后进去需要注册账号,验证邮箱等,然后对应到相应的版本号下载需要的CUDNN就好了
直接找到for CUDA 9.0中的 for Linux 下载
下载完之后解压出来,在该文件目录下
sudo cp lib64/* /usr/local/cuda/lib64/ #复制头文件
sudo cp include/cudnn.h /usr/local/cuda/include/ #复制动态链接库
cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so libcudnn.so.9.0
sudo ln -s libcudnn.so.9.0.64 libcudnn.so.9.0
sudo ln -s libcudnn.so.9.0 libcudnn.so
测试一下
nvcc -v
如果输出版本号则证明安装成功。