首先簡單介紹一下場景:實驗室發了新的台式電腦(聯想工作站(台式機),GPU:Quadro RTX 4000)電腦剛到手就重裝了雙系統(Window10+Ubuntu16.04)但是Ubuntu系統沒有NVIDIA的顯卡驅動所有這里選擇手動安裝顯卡驅動。
安裝NVIDIA驅動首先要做的是進入blos關閉secure boot (華碩還有fast boot)否則會導致安裝過程中出現錯誤
一、准備工作
1、查看自己的GPU是否支持CUDA(我這里肯定是支持的)
lspci | grep -i nvidia
2、查看自己的Linux版本
uname -m && cat /etc/*release
3、(可選)卸載之前安裝的NVIDIA顯卡驅動(目前的安裝程序有覆蓋選項,不卸載之前的也可以,安裝新的驅動會覆蓋原有的驅動)
1)卸載通過apt-get方式安裝的驅動
sudo apt-get remove --purge nvidia*
2)卸載runfile文件手動安裝的驅動
sudo chmod +x *.run sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
不放心的話兩種方式都卸載一下
3)可選(非必須操作,作為第一次安裝不成功的前提下第二次嘗試的操作項),為確保萬無一失安裝必要依賴
sudo apt-get update sudo apt-get install dkms build-essential linux-headers-generic sudo apt-get install gcc-multilib xorg-dev sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
4、禁用nouveau
這是Ubuntu自帶的第三方驅動,禁用掉避免和NVIDIA產生沖突
4.1打開黑名單
sudo gedit /etc/modprobe.d/blacklist.conf
4.2末尾添加
1)第一個版本(推薦)
blacklist nouveau options nouveau modeset=0
# 保存 :wq
2)第二個版本(可選,非必須操作,作為第一次安裝不成功的前提下第二次嘗試的操作項)
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
# 保存 :wq
4.3(可選,第一次安裝不建議的操作)禁用nouveau,內核模塊
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
4.4然后執行,更新修改
sudo update-initramfs -u
4.5重啟之后(重啟系統使用 sudo reboot)查看是否禁用成功(沒有輸出代表禁用生效)
lsmod | grep nouveau
5、下載對應驅動(NVIDIA-Linux-x86_64-400.100.run文件)
這里去NVIDIA官網查詢自己型號的顯卡對應的驅動版本。。。這里就不一一道述了。
下載好了之后放在你能找到的位置就行,我為了方便直接放在了打開命令行的默認位置
二、安裝驅動
1、進入命令行界面
按Ctrl-Alt+F1進入命令行界面,輸入用戶名和密碼登錄,注意不要使用小鍵盤輸入。
2、關閉X-Windows服務
進入命令行界面之后要禁止使用圖形界面(人雲亦雲,不關閉會有問題不知道真的假的,你可以試試不關會不會有問題)
# 這會關閉圖形界面
sudo service lightdm stop
3、開始安裝
1)賦予驅動文件權限
sudo chmod +x NVIDIA-Linux-x86_64-400.100.run
2)開始安裝
sudo ./NVIDIA-Linux-x86_64-384.59.run –no-x-check –no-nouveau-check –no-opengl-files
有人說台式電腦不需要加任何參數,經過我的實操發現不加任何參數會出現登錄界面死循環,所以還是老老實實帶上參數吧。
- –no-opengl-files:表示只安裝驅動文件,不安裝OpenGL文件。這個參數不可省略,否則會導致登陸界面死循環,英語一般稱為”login loop”或者”stuck in login”。
當然臉紅的情況下並不會。
必選參數解釋:因為NVIDIA的驅動默認會安裝OpenGL,而Ubuntu的內核本身也有OpenGL、且與GUI顯示息息相關,一旦NVIDIA的驅動覆寫了OpenGL,在GUI需要動態鏈接OpenGL庫的時候就引起問題。 - –no-x-check:表示安裝驅動時不檢查X服務,非必需,我們已經禁用圖形界面。
- –no-nouveau-check:表示安裝驅動時不檢查nouveau,非必需,我們已經禁用驅動。
- -Z, –disable-nouveau:禁用nouveau。此參數非必需,因為之前已經手動禁用了nouveau。
- -A:查看更多高級選項。
- -dkms(默認開啟)在 kernel 自行更新時將驅動程序安裝至模塊中,從而阻止驅動程序重新安裝。在 kernel 更新期間,dkms 觸發驅動程序重編譯至新的 kernel 模塊堆棧。
3)安裝過程中的選項
這個大致說幾種情況吧:
- 選擇install without signing
- dkms 安裝最好 選yes
- 32位兼容 安裝最好 選yes
- x-org 最好別安,選no,有的電腦可能導致登錄界面黑屏
以上內容是我參考別的博主,經過我的實操最后我的安裝選項是一路默認下來
4)回到圖形界面
如果你走到了這一步那么恭喜你就快碰到后面的幾個坑了!!!
開啟圖像界面(之前不會關閉過嘛,有始有終嘛)
sudo service lightdm restart
然后最好重啟一下系統吧
sudo reboot
重啟之后又回到了界面操作系統,如果沒有出現登錄界面循環卡死的情況,恭喜你跳過一個坑。
三、測試驅動(count = 0)
1)若列出GPU的信息列表,表示驅動安裝成功(count++)
nvidia-smi
2)若彈出設置對話框,亦表示驅動安裝成功(count++)
nvidia-settings
3)點擊電腦右上角的電源圖標 -> About This Computer 查看你的電腦信息,如果 Graphics 顯示的是你安裝的顯卡信息(count++)
如果count=3那么恭喜你應該的完全安裝成功了
如果count=2(我的情況)好像安裝沒有徹底成功但是目前不影響使用的
如果count<2 不好意思兄弟你還沒從坑里出來,再想想其他辦法吧!!!