天天看點

Ubuntu14.04+Cuda7.5驅動BUG的解決方案1. 軟體版本2. 故障現象及原因3. 解決方案4.總結5.更新

前面寫過一篇修複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驅動。

具體方法:

1. 用Recovery Mode啟動系統

2. 在登陸界面按下 Ctrl + Alt + F1進入指令行登陸

3. 禁用Nvidia驅動。執行如下指令:

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

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

blacklist nvidia
           

按下Esc,在控制欄輸入:wq,按下回車。儲存修改。之後重新開機電腦,就可以進入系統了。

進入系統後輸入lsmod指令,可以看到如下内容:

...
drm                      i915,drm_kms_helper,nvidia
alx                       
libahci                   ahci
mdio                      alx
video                     i915
           

video一欄隻有核心顯示卡驅動i915,而獨顯驅動nvidia并沒有被加載。

經過本人測試,CUDA程式可以正常運作。但是顯示卡失去了自動變頻的功能,耗電量和發熱量都有所增加。于是本人嘗試再嘗試取消禁用nvidia顯示卡禁用。按上面的方法将blacklist.conf中的blacklist nvidia去掉。同時手動運作指令加載驅動:

sudo modprobe nvidia-
           

用nvidia-settings檢視可以發現顯示卡又可以自動變頻了,并且溫度和發熱量恢複正常。重新開機系統後也正常使用。

4.總結

Nvidia顯示卡驅動與Ubuntu系統的配合并不是很穩定,建議一旦安裝好就不要更新核心;雙顯示卡機器不要切換顯示卡,否則就容易引發各種問題。

5.更新

最近發現,更新核心到3.16.0-70可以解決N卡驅動導緻Null Pointer Kernel Bug的問題。

打開終端,運作

注意去掉 blacklist.conf 檔案中 blacklist nvidia這一行。重新開機電腦即可正常使用Nvidia驅動。

繼續閱讀