nvidia 驱动重装踩坑之路

背景:

本来用gpu用的好好的,有一天系统软件自动更新手贱点了确定,里面包含nvidia字眼,当时看到就感觉有点不妥,仍然点了确定。
恩,直觉真准,但是手快啊!!于是开启了踩坑之路。

报错:

使用gpu版本的tensorflow,运行session时会出现如下问题:


这里写图片描述

于是乎gpu就不能用了,nvidia-smi也报错说类似版本不匹配的意思。

查看当天的系统更新内容:


这里写图片描述

可以发现驱动被更新了,但是由错误可以看出来,是和cuda的kernel版本不匹配(看英文是这样猜的,不确定)。
于是决定重装驱动回退到之前的版本。
这里有参考这个博客,有类似的问题:参考博客1

安装驱动:尝试1

首先,删除掉之前的驱动相关

sudo apt-get remove --purge nvidia*  

最开始采用的是ppa源安装驱动的方式,但是ppa源一直连接不上,放弃这种方法,
这种方法参考博客:参考博客2

安装驱动:尝试2

第一种方法不行,那就从官方下载runfile文件安装,还好我知道之前用的驱动是什么版本,使用runfile安装,参考该博客:参考博客3
该博客写的很详细,很赞。
这里再复现一下步骤:

首先,卸载掉之前驱动相关

sudo apt-get remove --purge nvidia*  

但是我最开始用的是:sudo apt-get autoremove –purge nvidia-* ,用这句话貌似把一些cuda相关的东西也删了,不太明白差别,没有查。建议用上面那句。

禁用nouveau

打开如下编辑配置文件

/etc/modprobe.d/blacklist.conf

在末尾添加

blacklist nouveau 

参考博客说之后也不需要改过来。
执行

sudo update-initramfs -u

使其生效?
重启电脑,输入

lsmod | grep nouveau

若没有任何输出表示屏蔽好了

禁用X服务

sudo /etc/init.d/lightdm stop

感觉就是关掉图形处理器
这个时候就要黑屏了,don’t worry

安装驱动

进入命令行界面

ctrl+alt f1

给待安装runfile加权限:名字根据自己驱动table一下

sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run

安装,注意参数设置,超重要

sudo ./NVIDIA-Linux-x86_64-375.20.run –no-opengl-files

根据提示安装完毕之后:
打开X服务:

sudo /etc/init.d/lightdm restart

这样安装就结束了,
nvidia-smi测试有没有驱动即可,
我是ubuntu14.04,根据上述流程亲测有效。

安装cuda8.0

驱动安装好了,本来以为可以试一下能不能用,但是发现还是不能用,跟cuda有关,在usr/local下面的cuda文件夹里发现少了很多东西,感觉删除nvidia相关的时候,把很多cuda的东西删了,可能跟我最开始使用的这个命令有关:sudo apt-get autoremove –purge nvidia-* (不确定,猜测,因为后面会说到,第二次安装驱动的时候,cuda的东西没有被破坏)

由于没有cuda runfile文件,我使用的是deb安装方式
值得注意的是,实际上参考博客3里面提到了一些禁忌和注意事项,安装cuda要选择runfile方式,因为这样就可以选择不安装cuda自带的nvidia驱动,然而我没有注意到,并且我手上也只有deb的安装包!!!!

安装deb格式的文件,按照官网教程来的:
很简单,如下三句,但是安装前需要验证一些东西,具体见网上教程,很多的。

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb 
sudo apt-get update
sudo apt-get install cuda

但是这里遇到一个:一直提示我unable to locate package cuda,一直提示找不到包,但是我已经update了呀!
后来发现原因是:因为我修改了软件源,并且在设置-软件更新-其他软件下面,我把很多选型都取消掉勾选了,而一个跟cuda有关的一定要勾选上,所以revert一下还原之前的勾选情况,重新来跑那三句哈,就安装好了,这个时候update可能要等一下,等待是值得的,不要急!!!!这里是参考一个解决方案的,找不到了。sad。

但是在安装cuda的过程中,自动又更新了我的显卡驱动,又到了380几,感觉一秒回到解放前。心累。。

卸载显卡驱动

实在木有办法,按照网上的说法,安装了驱动再安装cuda,或者先安装cuda,再安装自己想装的驱动,要用runfile的cuda安装,但是刚好今天官网维护,下载不到。
但是我实在是不明白,为什么安装cuda,会自己安装nvidia驱动到那么高的版本,不太理解!!!!这个cuda是适用自己以前版本的驱动的。然而这个版本的驱动和这个cuda自己不匹配啊,搞不懂,难道它自己检测了电脑附加驱动里面的内容?

于是再次卸载驱动,准备下次继续用runfile的方式试一下,这一次卸载完驱动之后发现cuda还在还能使用:nvcc -V测试

再次装驱动

这个时候灵机一动,此时我的电脑cuda也在,但是我把驱动卸载了,我再装我要的驱动不就行了吗,所以在安装了deb格式驱动的情况下,我卸载了驱动,再装了一次驱动,居然可以使用gpu了,超级开心,没有按照网上说的用runfile也成功了!!!!!

总结

可以考虑的解决方案:
(cuda等已经安装的情况下)
若要重装驱动,理论上卸载了驱动,再装一次就行了(如果cuda没有神奇的被破坏)。
(cuda要重装,deb方式)
可采取:deb方式安装cuda–卸载驱动–安装自己需要的驱动(如果cuda和自动安装的驱动不匹配);
或者:网上说的runfile方式。这种方式在安装cuda的时候可选是否安装驱动,注意事项见参考博客3,但我没试过。

在解决过程中,参考了很多博客,感谢!!!
但是之后会出什么问题就不知道了,都是坑,心累,记录一下!
重要的事情说三遍!!!
ubuntu 也要关掉系统自动更新,或者不要点!!!

发布了10 篇原创文章 · 获赞 26 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览