linux 命令列下適配 nvidia 驅動
真乃踩坑實錄......
1. 下載相應驅動
在官網這裡選擇適應你 GPU 的驅動版本,在下載介面可用右鍵得到下載連結,然後在 linux 命令列下使用 wget 進行下載,如我下載的是 1080 Ti 的驅動版本:
wget https://www.nvidia.cn/content/DriverDownload-March2009/confirmation.php?url=/XFree86/Linux-x86_64/440.82/NVIDIA-Linux-x86_64-440.82.run&lang=cn&type=TITAN
下載完成後是一個名為NVIDIA-Linux-x86_64-440.82.run
sudo sh NVIDIA-Linux-x86_64-440.82.run
進行安裝,會產生如下報錯:
You appear to be running an X server; please exit X before installing.
這主要是由於通常而言你的電腦上已經有 nvidia 驅動並且在運行了,此時無法進行新驅動的安裝,因為會影響依賴你現有驅動的應用的正常執行。比方說你的桌面程式就需要依靠現有的顯示卡驅動進行顯示。
回到這個報錯,百度瞭解到是有一個叫做 X 的程序服務在依賴著 nvidia 驅動的執行,這個 X 程序似乎就是支撐你的圖形桌面的服務。使用ps aux | grep X
$ ps aux | grep X root 1459 0.0 0.0 15984 928 pts/40 S+ 19:12 0:00 grep X root 1643 0.0 0.1 426836 187692 tty7 Ssl+ 10:43 0:15 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch root 3604 0.0 0.0 387052 71108 tty8 Ssl+ 10:44 0:22 /usr/lib/xorg/Xorg -core :1 -seat seat0 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch git 3909 0.0 0.0 43732 4264 ? Ss 10:44 0:03 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-E2NLgH7XO1
2. 關閉 X 服務
為了能夠安裝新的 nvidia 驅動,我們需要關閉這個 X 服務,我的 Ubuntu 是基於 lightdm 型別的桌面系統,採用如下命令:
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
對於其他的 linux 版本,如果桌面系統是基於 gdm 型別,應該把命令中的 lightdm 改為 gdm 即可;非這兩種桌面系統型別的,百度一下你的 linux 版本關閉 X 服務的相關命令吧。
關閉了 X 服務後圖形桌面可能會關閉,因為我是通過 ssh 連線的伺服器進行的操作,所以也沒有看到具體的變化,不確定具體會發生什麼情況,不過別慌就是了。
關閉 X 後,可再次用 ps 命令檢視相關程序以確認,我這裡顯示如下,確實沒有執行的 X 服務了:
$ ps aux | grep X
root 1656 0.0 0.0 15984 1084 pts/40 S+ 19:15 0:00 grep X
3. 解除安裝舊的驅動
終於可以解除安裝舊驅動了:
sudo apt-get --purge remove nvidia-*
# 也有的說用下面的命令進行解除安裝,我個人均有嘗試,無礙
sudo apt-get --purge remove "*nvidia*"
4. 安裝新驅動
在第 1 步下載的驅動檔案目錄裡執行安裝包即可:
$ sudo sh NVIDIA-Linux-x86_64-440.82.run
值得一提的是,中間可能會有一些小的 warning 提示(好像還有一個 error?),但流程走下來最終還是提示 successfully complete,這就中了!使用nvidia-smi
已經可以看到你的新驅動版本號(Driver Version)產生了變化:
$ nvidia-smi
Sun Jun 21 19:16:54 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82 Driver Version: 440.82 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:02:00.0 Off | N/A |
| 27% 35C P5 24W / 250W | 0MiB / 11170MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+