最近嘗試在ubuntu中安裝nvidia的顯卡驅動以及cuda。花了近三天時間,真的如網上所說錯誤百出,期間甚至重裝了一次ubuntu系統,搞到懷疑人生,整個都是淚- -。最終經過百般“磨難”總算安裝成功。此篇博客將我的整個安裝過程介紹一下,包括錯誤的步驟與我個人理解的錯誤分析,以及最終成功的安裝方法。一方面作為后來人的參考,另一方面也作為我的學習記錄。
-------------------------------------------------------------------------------------------------
首先說明一下我的電腦配置:
筆記本型號:DELL游匣7566(i7 8G)。雙系統(win10+ubuntu)
ubuntu 系統版本:安裝失敗版本(14.04);安裝成功版本(16.04)
顯卡:nvidia GeForce GTX 960M
(注意,以下方法均未成功安裝,請勿嘗試,僅作錯誤參考)--------------------
下面先說一下我一開始的安裝步驟,注意,以下說明的步驟均未安裝成功,因此僅作為失敗參考,如果你也出現類似情況,那么可以對照進行更改。
nvidia 官網提供的cuda安裝方式有兩種,一種是run文件安裝,一種是deb安裝。
剛開始我參考一本caffe書籍的方法,用的deb安裝方式,首先講一下這個方法。
失敗方法1:ubuntu14.04+cuda7.5 deb安裝
我一開始的ubuntu版本是14.04,其搭配的cuda版本為7.5。因此首先從nvidia官網下載cuda7.5版本的deb文件https://developer.nvidia.com/cuda-75-downloads-archive.下載完以后,終端進入文件目錄,輸入如下指令:
按Ctrl+Alt+F1,進入text mode(話說這個挺高大上的=.=),登錄你的賬戶。卸載剛裝的cuda和顯卡驅動。指令如下:
sudo reboot重啟電腦,此時電腦恢復原樣(美滋滋)。
接下來參考網上其他博客的方法,他們都推薦用run的安裝方式,於是我也開始了run嘗試。
失敗方法2:ubuntu14.04+cuda7.5 run安裝
a) 從nvidia官網下載cuda7.5版本的run文件,https://developer.nvidia.com/cuda-75-downloads-archive,之后將其移到home目錄。
b) 接下來禁用nouveau(很重要!)。在/etc/modprobe.d中創建文件blacklist-nouveau.conf,在文件中輸入以下內容
打開終端,運行
設置完畢以后可以運行
檢查nouveau是否禁用成功,如果運行后沒有任何輸出,則代表禁用成功。
c)重啟電腦,到達登錄界面時,按Ctrl+Alt+F1,進入text mode。
d)輸入
關閉圖形化界面(很重要!)
e)輸入
開始安裝cuda。
接下來根據提示進行安裝,遇到提示是否安裝openGL,選擇no(很重要!),其他選擇yes以及默認配置。安裝成功后,會顯示installed,否則會顯示failed。我的當時是顯示installed。
e)輸入
重新啟動圖形化界面。接下來會跳到登錄界面,輸入密碼登錄。此時未出現循環登陸的錯誤(內心暗喜)。
f)重啟電腦。檢查/dev文件夾下是否有nvidia*多個文件。如果沒有的話,按照官方文檔里的步驟進行添加。
重點來了,我這個方法的錯誤就出現在這里,/dev文件夾下沒有nvidia*多個文件,我按照官網公布的步驟進行添加,仍然沒有,終端查詢nvidia顯卡驅動,竟然查不到信息。通常,如果你用cuda的run文件安裝方式,它會自動幫你安裝顯卡驅動。現在我的問題總結下來就是,cuda裝上去了,顯卡驅動卻未成功安裝(what the fuck?!),雖然未遇到循環登錄的錯誤,這個錯誤也着實讓我頭疼。於是卸載cuda,網上查詢了一番,進行第3次安裝(委屈臉//)
失敗方法3:先裝好NVIDIA驅動,再進行cuda.run文件安裝
此時的ubuntu版本仍然是14.04。現在的想法是,上一個方法中顯卡驅動未成功安裝,那么是不是可以先把顯卡驅動裝了,再進行cuda的安裝。於是進行第二次嘗試:先裝nvidia驅動,再裝cuda。
a)去nvidia官網下載對應顯卡型號的驅動,也是個run文件,網址如下:http://www.nvidia.cn/Download/index.aspx?lang=cn。下載完以后同樣將其移到home路徑下。
b) 打開終端,先刪除舊的驅動:(雖然我的顯卡驅動根本就沒裝上去,但為了保險起見,還是執行了這一步)
c)由於之前已經禁用了nouveau,所以禁用nouveau這一步無需進行。
d)同樣按Ctrl+Alt+F1,進入text mode。輸入
關閉圖形化界面
e)輸入
注意,以上sudo后面的run文件視顯卡型號而變。
f)接下來進行安裝,期間會跳出UEFI安全啟動的相關問題,按照提示進行操作即可,問題不大。開啟圖形化界面
g)接下來便出現循環登錄的錯誤了(心力憔悴!!。。)無奈,只好再次進入text mode(此時這個仍然可以用!),卸載剛裝的nvidia驅動。(進一步委屈臉//)
失敗方法4:系統推薦的NVIDIA顯卡驅動版本+cuda.run 文件安裝
鑒於第二種失敗的方法,我思考是否驅動版本不對的原因。於是這次我更換了NVIDIA的顯卡驅動版本,在設置里面查詢附加驅動,里面有推薦的顯卡驅動版本號,這次我沒有在官網上下載驅動run文件,而是直接apt-get安裝了,兩者其實一樣。終端裝完以后重啟電腦,這次沒有出現循環登錄的問題。但問題卻更嚴重了,系統卡在開機logo那里了!這也沒法進入text mode 啊。傻傻的等了近20分鍾,依然沒反應,強制重啟,仍是卡住,這下可絕望了,難道要我重裝系統,我里面的資料都沒備份啊啊啊啊!!!結局你懂得,重裝認命- -
失敗方法5:ubuntu16.04+cuda8.0 run文件
默默掏出U盤重裝系統,裝了個16.04的版本,這個系統的版本搭配cuda8.0。繼續重復方法2的步驟,出現相似錯誤(顯卡驅動裝不上)。
失敗方法6:先裝好NVIDIA驅動,再裝cuda run
錯誤情況同方法3(循環登錄)。
-----------------------------------------------------------------------(分割線)
以上便是我的失敗經歷,有些細節未詳細說明,大抵如此。接下來好好思考了一番,也查閱了不少資料。進行了最終的安裝方法。
成功安裝方法:ubuntu16.04+cuda8.0 deb安裝
這個方法僅僅在失敗方法1中添加了幾步而已(囧),下面說明一下步驟:
a)從nvidia官網下載cuda8.0版本的deb文件https://developer.nvidia.com/cuda-80-ga2-download-archive.
b)禁用nouveau(參考前述方法)
c)無需關閉圖形界面,在終端輸入
d)重啟,終端輸入
顯示nvidia驅動信息,安裝成功,同時設置里面顯示驅動也為nvidia顯卡,沒想到步驟這么簡單,僅僅在失敗方法1中禁用了nouveau。
--------------------更新-------------------------
現階段使用deb的方法是最穩定的,參考官網的教程指令就好!!