红联Linux门户
Linux帮助

Ubuntu14.04+Cuda7.5驱动BUG的解决方案

发布时间:2016-04-25 15:51:06来源:linux网站作者:tomheaven

前面修复Ubuntu14.04启动时黑屏卡死。自以为知道如何解决问题,于是尝试了用nvidia-settings切换到核心显卡省电。在又要用CUDA的时候切换回来,却发现又黑屏了。而且前面的方法无法解决。经过7个小时的探索,有了新解决方案,记录如下。
(注意:本方法仅适用于双显卡笔记本。)


1.软件版本

我使用的软件版本如下:

 

系统 内核版本 Nvidia 驱动版本 CUDA版本
Ubuntu 14.04 3.13.0-61 352.63 7.5


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驱动。


具体方法:
一.用Recovery Mode启动系统

二.在登陆界面按下 Ctrl + Alt + F1进入命令行登陆

三.禁用Nvidia驱动。执行如下命令:

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

按下i,并在尾部添加如下内容

blacklist nvidia

按下Esc,在控制栏输入:wq,按下回车。保存修改。之后重启电脑,就可以进入系统了。
进入系统后输入lsmod命令,可以看到如下内容:

Ubuntu14.04+Cuda7.5驱动BUG的解决方案

...
drm                   303102  5 i915,drm_kms_helper,nvidia
alx                    32452  0
libahci                32716  1 ahci
mdio                   13807  1 alx
video                  19476  1 i915

video一栏只有核心显卡驱动i915,而独显驱动nvidia并没有被加载。

经过本人测试,CUDA程序可以正常运行。但是显卡失去了自动变频的功能,耗电量和发热量都有所增加。于是本人尝试再尝试取消禁用nvidia显卡禁用。按上面的方法将blacklist.conf中的blacklist nvidia去掉。同时手动运行命令加载驱动:

sudo modprobe nvidia-352

用nvidia-settings查看可以发现显卡又可以自动变频了,并且温度和发热量恢复正常。重启系统后也正常使用。


4.总结

Nvidia显卡驱动与Ubuntu系统的配合并不是很稳定,建议一旦安装好就不要更新内核;双显卡机器不要切换显卡,否则就容易引发各种问题。


本文永久更新地址:http://www.linuxdiyf.com/linux/20086.html