之前為了省事赞枕,直接用CUDA自帶的NVIDIA driver,其間一直沒有問題尊搬,nvidia-smi可以成功顯示顯卡情況
但是nvidia-settings不能用
有一天心血來潮,看到有人安利prime-indicator,可以非常簡單切換顯卡(苦于我的GPU只能跑程序泊脐,什么3D渲染,圖形界面全用的服務(wù)器自帶的集顯)烁峭,所以就下載了一個容客,settings研究打不開,所以就點擊了Quick switch Graphics, 告訴我要log out什么東西约郁,我就確定了缩挑,之后跳回登陸界面,輸入密碼后卡死鬓梅。(事實證明瞎折騰就是給自己挖坑)调煎,之后重啟。
對己肮,就是這個重啟士袄!!他似乎幫我更新了什么亂七八糟的東西,當我再次使用nvidia-smi時谎僻,告訴我
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
之后我就開始了漫長的修復(fù)之路(辛酸史)
- 查看系統(tǒng)擁有的內(nèi)核
grep menuentry /boot/grub/grub.cfg
只有5.3.0-45-generic和5.3.0-46-generic娄柳,切換至5.3.0-45,發(fā)現(xiàn)仍然沒有解決問題艘绍。 - dkms大法
ls /usr/src #查看驅(qū)動版本
我的是nvidia-440.64.00
所以果斷
sudo dkms install -m nvidia -v 440.64.00
告知赤拒,nvidia440.64.00 has already install on 5.3.0-46-generic(大概是這么說的),方法崩潰
- 檢查bios中的secure boot
發(fā)現(xiàn)是disable 沒有問題 - 安裝舊的內(nèi)核
比如5.3.0-28诱鞠, 安裝完畢挎挖,修改grub進入!
sudo gedit /etc/default/grub #進入文件
#修改
GRUB_DEFAULT = 0 #原始
GRUB_DEFAULT = "1> 4" #改成這樣
這里修改的GRUB_DEFAULT需要根據(jù)自己的情況來,通過grep menuentry /boot/grub/grub.cfg來查看自己的內(nèi)核順序航夺,然后從上往下蕉朵,第一個是0。 1代表進入Ubuntu高級選項阳掐,4代表選擇的內(nèi)核順序始衅。中間有個空格。
修改完之后
sudo update-grub #更新
reboot #重啟
然后我的服務(wù)器就失聯(lián)了缭保,之后找人去看汛闸,發(fā)現(xiàn)舊內(nèi)核里面沒有網(wǎng),ifconfig和ifconfig -a都只有l(wèi)o一個端口艺骂。然后托人下載了網(wǎng)卡驅(qū)動诸老,去安裝,重啟钳恕,發(fā)現(xiàn)還是沒網(wǎng)别伏,(大概是驅(qū)動不匹配)吮廉。放棄了,回到原來的kernel
- 重裝nvidia驅(qū)動
sudo apt-get --purge remove nvidia-*
sudo apt-get autoremove #刪除驅(qū)動
這一步不能將CUDNN等刪去畸肆。
之后通過cuda重裝宦芦,nvidia-smi依舊不行;
通過ppa重裝轴脐,nvidia-smi依舊不行调卑;
通過軟件與更新安裝,還是不行大咱;
通過.run文件安裝恬涧,安裝途中報錯,也是關(guān)于driver和kernel的問題碴巾。
之后也嘗試了什么modprobe nvidia等方法溯捆,都報錯。
解決方法
想著可能是內(nèi)核不完全的問題厦瓢,就安裝了一下kernel的相關(guān)包
sudo apt-get install kernel*
其間發(fā)現(xiàn)blacklist里有一個blacklist-nvidia.conf文件提揍,在/etc/modprobe.d下面,里面的內(nèi)容是
blacklist nvidia
blacklist nvidia-uvm
...
... #記不得了
果斷刪掉了煮仇。
安裝kernel包的時候劳跃,會新裝很多內(nèi)核,所以需要再次進入grub浙垫,把default改回當前使用的版本刨仑,否則很可能重啟之后再次失聯(lián)!
再次重啟,問題解決夹姥,一切都回來了杉武!!
然后我果斷的
(個人經(jīng)歷,有點無厘頭辙售,希望對廣大網(wǎng)友有所幫助轻抱,畢竟都是板磚工,能不重裝就不重裝)