在Linux上安裝驅動,這事情多半是跑CUDA程序的人才會搞的,多年前學CUDA時為這一步驟頭疼的很,現如今已經比較熟悉了,今日給出一些記錄。
首先,在NVIDIA官方網站上找到驅動下載頁面:
https://www.nvidia.cn/Download/Find.aspx?lang=cn
查詢到可以使用的驅動版本,如下:
BETA版過新,穩定性尚未可知,選擇非beta版本的最新版驅動,即 415.27版本。
下載鏈接頁面:
https://www.nvidia.cn/download/driverResults.aspx/141852/cn
前面忘記交代硬件情況,本機為:
(惠普(HP)暗影精靈II代Pro 精靈綠 15.6英寸游戲筆記本(i7-7700HQ 8G 128GSSD+1T GTX1050Ti 4G獨顯 IPS FHD)
硬件配置:
CPU Core i7-7700HQ(含集成顯卡)
獨立顯卡 NVIDIA GTX1050ti
下面開始正式安裝步驟:
禁用nouveau驅動
Ubuntu系統集成的顯卡驅動程序是nouveau,我們需要先將nouveau從Linux內核卸載掉才能安裝NVIDIA官方驅動。
將nouveau添加到黑名單blacklist.conf中,(關於blacklist參見 《禁用Linux內核驅動》),linux啟動時,就不會加載nouveau.
因為nouveau驅動的影響,ubuntu安裝后無法登入桌面,所以在ubuntu系統啟動顯示登錄界面后,需要按ctrl+alt+F1進入tty文本模式進入下面的操作
由於blacklist.conf文件的屬性不允許修改。所以需要先修改文件屬性。
查看屬性
ll /etc/modprobe.d/blacklist.conf
修改屬性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
用vi編輯器打開
sudo vi /etc/modprobe.d/blacklist.conf
在文件末尾添加如下幾行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
修改並保存文件后,記得把文件屬性復原:
sudo chmod 644 /etc/modprobe.d/blacklist.conf
再更新一下內核:
sudo update-initramfs -u
關於update-initramfs命令的用途,參見 《initramfs 簡介,一個新的 initial RAM disks 模型》
修改后需要重啟系統。
重啟系統確認nouveau是已經被屏蔽掉,使用lsmod命令查看:
lsmod | grep nouveau
lsmod命令用於顯示已經加載到內核中的模塊的狀態信息,參見《lsmod命令》
具體過程見下圖:
=====================================================================
安裝驅動之前另一個重要的事情就是確認系統里面沒有舊版本的驅動,以免發生沖突,因此需要卸載舊版本的驅動。
命令:
sudo apt-get autoremove --purge nvidia*
===========================================================================
PPA方式安裝顯卡驅動:
在Linux系統里面安裝顯卡驅動使用PPA的方式成功率一般比較高,但是安裝的版本有限,這里不采用該方法,但是仍給出該方法的具體步驟:
使用如下命令添加Graphic Drivers PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update
尋找合適的驅動版本
命令:
ubuntu-drivers devices
安裝NVIDIA driver
如上圖顯示GTX1050ti顯卡建議的驅動版本是390
按ctrl+alt+F1進入tty文本模式
關閉(圖形)桌面顯示管理器LightDM
命令:
sudo service lightdm stop
sudo apt-get install nvidia-390 sudo reboot
安裝nvidia driver,如果網速度不好,可能要花比較長的時間
安裝完成后重啟。
重啟系統后,執行下面的命令查看驅動的安裝狀態顯示安裝成功
sudo nvidia-smi sudo nvidia-setting
=====================================================================
下面給出本文的安裝方法,根據官網下載的驅動文件安裝:
安裝NVIDIA driver
進入文本模式:
按ctrl+alt+F1進入tty文本模式
關閉(圖形)桌面顯示管理器LightDM 。
命令:
sudo service lightdm stop
執行安裝文件:
設置驅動文件為可執行,命令:
sudo chmod a+x ./NVIDIA-Linux-x86_64-415.27.run
執行安裝:
sudo ./NVIDIA-Linux-x86_64-415.27.run
安裝結束,重啟:
sudo reboot
重新開機進入系統,執行如下:
nvidia-smi
nvidia-settings
可以發現成功安裝。
====================================================================
物理機安裝上最新驅動后,在conda中安裝tensorflow-gpu最新版本1.20便可以成果,因為conda中編譯好的tensorflow-gpu版本需要NVIDIA驅動在396之上。
注明:
本機安裝之前已經設置進入系統免密碼,該步驟是否有用沒有研究過,如果有人想復現該過程強烈建議將Ubuntu系統設置為免密碼進入桌面。