Ubuntu14.04+Cuda7.5驱动BUG的解决方案
来源:互联网 发布:淘宝天下传媒 诈骗 编辑:程序博客网 时间:2024/05/22 07:41
前面写过一篇修复Ubuntu14.04启动时黑屏卡死的文章。自以为知道如何解决问题,于是尝试了用nvidia-settings切换到核心显卡省电。在又要用CUDA的时候切换回来,却发现又黑屏了。而且前面的方法无法解决。经过7个小时的探索,有了新解决方案,记录如下。
(注意:本方法仅适用于双显卡笔记本。)
1. 软件版本
我使用的软件版本如下:
2. 故障现象及原因
故障现象:
- 直接启动系统时,直接黑屏,并出现了一个Null Pointer的Kernel Bug,系统卡死在进入登陆界面前。
- 用Recovery Mode启动系统时,也会看到显卡驱动加载出现Bug,然后有”Vga Codecs Changed”的提示,并卡上40秒左右(可以按Ctrl+C跳过),最终可以看见登陆界面。但是一旦登陆仍然会黑屏卡死。
回顾一下:笔记本启动时黑屏卡死一定是显卡驱动问题(Nvidia驱动经常出现这种问题)。对于Kernel Bug,除了换硬件,一般只能换内核版本或者驱动来尝试了。
3. 解决方案
本人尝试了更换内核版本(3.13.0-85, 3.13.0-19…)和驱动版本(nvidia-340),并且按照上次的方法反复重装Nvidia驱动,均无法解决问题。因为本人的目的是为了用CUDA,无奈之下想到了屏蔽Nvidia驱动。
具体方法:
1. 用Recovery Mode启动系统
2. 在登陆界面按下 Ctrl + Alt + F1进入命令行登陆
3. 禁用Nvidia驱动。执行如下命令:
sudo vi /etc/modprobe.d/blacklist.conf
按下i,并在尾部添加如下内容
blacklist nvidia
按下Esc,在控制栏输入:wq,按下回车。保存修改。之后重启电脑,就可以进入系统了。
进入系统后输入lsmod命令,可以看到如下内容:
...drm 303102 5 i915,drm_kms_helper,nvidiaalx 32452 0 libahci 32716 1 ahcimdio 13807 1 alxvideo 19476 1 i915
video一栏只有核心显卡驱动i915,而独显驱动nvidia并没有被加载。
经过本人测试,CUDA程序可以正常运行。但是显卡失去了自动变频的功能,耗电量和发热量都有所增加。于是本人尝试再尝试取消禁用nvidia显卡禁用。按上面的方法将blacklist.conf中的blacklist nvidia去掉。同时手动运行命令加载驱动:
sudo modprobe nvidia-352
用nvidia-settings查看可以发现显卡又可以自动变频了,并且温度和发热量恢复正常。重启系统后也正常使用。
4.总结
Nvidia显卡驱动与Ubuntu系统的配合并不是很稳定,建议一旦安装好就不要更新内核;双显卡机器不要切换显卡,否则就容易引发各种问题。
5.更新
最近发现,升级内核到3.16.0-70可以解决N卡驱动导致Null Pointer Kernel Bug的问题。
打开终端,运行
sudo apt-get install 3.16.0-70-generic
注意去掉 blacklist.conf 文件中 blacklist nvidia这一行。重启电脑即可正常使用Nvidia驱动。
- Ubuntu14.04+Cuda7.5驱动BUG的解决方案
- ubuntu14.04 安装GTX860M显卡驱动和安装CUDA7.5
- Ubuntu14.04 NVIDIA显卡驱动安装 + Cuda7.5 + cudnn6.0
- QT+CUDA7.5+UBUNTU14.04
- ubuntu14.04+cuda7.5+caffe
- Ubuntu14.04+CUDA7.5+theano
- Install cuda7.5 in ubuntu14.04
- 折腾,ubuntu14.04安装cuda7.5
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- Caffe+Ubuntu14.04+CUDA7.5安装笔记
- ubuntu14.04安装cuda7.5+cudnn+caffe
- ubuntu14.04安装theano,cuda7.5
- ubuntu14.04安装cuda7.5 cudnn
- ubuntu14.04+cuda7.5+caffe安装教程
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- Caffe+CUDA7.5+Ubuntu14.04配置
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- ubuntu14.04安装cuda7.5 详细教程
- 动态规划-数组中求最长等差数列的长度
- linux安全登录,ssh
- LeetCode------Move Zeroes
- java---多线程调度与控制常见方法一览
- java实现快速排序
- Ubuntu14.04+Cuda7.5驱动BUG的解决方案
- sdau-2 1019
- LeetCode 344. Reverse String C语言
- ZOJ 3946 Highway Project【dijkstra】【贪心】
- 菜鸟学习nodejs--回调函数
- list.remove()
- 单链表反转C代码
- 写完第一个博文的收获
- java事务管理