適用系統版本:Ubuntu 24.04 LTS以上
讓Ivon為您解說如何在Ubuntu LTS安裝Nvidia閉源驅動(proprietary driver),以及相關的CUDA與NVIDIA Container Toolkit套件。
一般用戶玩遊戲只要裝完Nvidia閉源驅動即可收工。
要跑3D渲染、神經網路、深度學習的用戶才裝後面的CUDA、NVIDIA Container Toolkit套件。這些套件都依賴Nvidia閉源驅動,但是不一定要全裝,端看專案需求。
1. 前言#
Ubuntu內建支援Nvidia顯示卡的開源驅動「nouveau」,為Linux社群逆向工程而來,不至於讓電腦開機沒畫面。那為什麼還要安裝Nvidia官方發表的閉源驅動(專有驅動)?因為nouveau驅動會導致Nvidia顯示卡性能下降,控制風扇失效,並且無法使用Nvidia獨家的加速技術「CUDA」、「NVENC」。欲發揮Nvidia顯示卡全部潛能,安裝Nvidia閉源驅動乃必要之舉。
根據Ubuntu文件與Nvidia官方文件,安裝Nvidia驅動的方式共有以下幾種:
| 途徑 | 驅動版本 | 穩定性 | 適用情況 |
|---|---|---|---|
| Ubuntu套件庫 | 舊 | 穩定 | 從Ubuntu系統版本的套件庫安裝並透過DKMS裝載。也就是apt install或者交由ubuntu-drivers自動偵測。這些Nvidia驅動都是由Ubuntu開發者測試過的,通常很穩定,不過驅動版本偏舊。適合不在乎CUDA版本,穩定性為重的用戶。 |
| Proprietary GPU Drivers PPA | 新 | 不穩定 | 這是Ubuntu團隊維護的額外套件庫,能取得最新版Nvidia驅動,但可能不穩定。適合需要最新版Nvidia驅動但又不想使用Nvidia官方套件庫的用戶。 |
| 使用Nvidia CUDA套件庫的驅動 | 新 | 不穩定 | Nvidia公司維護的套件庫。適用:需要最新版Nvidia驅動與最新CUDA版本。 |
| 從Nvidia官網下載deb檔匯入PPA安裝(Local) | 新 | 不穩定 | 新增Nvidia公司維護的PPA套件庫,將完整驅動檔案下載下來,再apt install。適用:顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。 |
| 從Nvidia官網套件管理員匯入PPA安裝(Network) | 新 | 不穩定 | 新增Nvidia公司維護的PPA套件庫,再從Nvida的套件庫apt install下載驅動套件。適用:顯卡已經不受官方支援;需要特定版本的驅動。 |
| 手動執行.run檔案安裝驅動 | 新 | 不穩定 | 就是透過執行.run的安裝器來安裝驅動。通常不建議這樣裝,會無法被套件管理器追蹤。適用:顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。 |
Linux的Nvidia驅動不會一直都是官方發表的最新版本,要看你是從哪一種途徑安裝。
這裡的「穩定」是以Ubuntu維護者的角度來看。事實上只要是Nvidia官方正式發表的驅動都是夠穩定的,上面寫不穩定只是相對Ubuntu收錄的Nvidia驅動版本來說,這些套件沒有經過長時間測試。
本文採用的是透過Ubuntu套件庫安裝Nvidia驅動與CUDA。
2. 檢查Nvidia顯示卡相容性#
註解:雖然Ubuntu有提供圖形界面的「軟體更新中心」,內含Nvidia驅動安裝器,但我篇文章全部用終端機指令安裝,方便檢查安裝結果是否正常。
Ubuntu可能在你第一次安裝系統的時候就自動裝好Nvidia驅動了。如何確認你現在是否已經安裝Nvidia閉源驅動程式?開啟終端機,執行
nvidia-smi指令,看是否會印出Nvidia驅動版本。有的話,你就已經完成安裝了。
確認Nvidia是否仍支援你的顯示卡驅動,到Nvidia官網查詢。只要不是十年以上的舊卡,Nvidia閉源驅動應該都會繼續提供支援。如果有支援,那麼就能夠安裝最新版Nvidia閉源驅動。如果你的顯示卡已經取消支援,那麼頂多只能裝到特定舊版本的驅動。
舉例來說:NVIDIA GeForce GTX 1050屬於Turing架構以前的舊卡,那麼最高就只能裝到580版本的驅動。在Turing架構以後推出的NVIDIA GeForce GTX 1650,可以直接裝最新版的590驅動。但是在這篇文章中,我們沒有要使用Nvidia官網的驅動安裝器,所以這裡的資訊僅是作為參考。
- 若有Nvidia顯示卡但沒有安裝Nvidia閉源驅動,Ubuntu預設會載入開源nouveau驅動。這可以用指令
sudo lshw -C display確認,driver區段會顯示"nouveau"
3. 安裝Nvidia閉源驅動#
桌電與伺服器#
- 如果有的話,先將舊版Nvidia套件解除安裝:
sudo apt update
sudo apt upgrade
sudo apt purge *nvidia*接著使用
ubuntu-drivers list工具列出目前Nvidia顯示卡可用的驅動版本。例如Nvidia GTX 1050Ti會看到以下畫面:
讓
ubuntu-drivers自動挑選適合的版本安裝,有時候最新版Nvidia驅動不見得穩定。它會自動執行apt install指令選取適合版本的驅動。
# 讓Ubuntu自動挑選推薦的驅動版本
sudo ubuntu-drivers install
# 或者手動指定版本,填入要安裝的Nvidia驅動版本號。
sudo ubuntu-drivers install nvidia:580順帶一提,你可以使用這個語法搜尋其他版本的Nvidia驅動:sudo apt search nvidia-driver-
安裝後nouveau應會自動加入黑名單禁止載入。接著重開機,用指令
sudo lshw -C display確認是否安裝成功,driver區段應會顯示"nvidia"
輸入
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.錯誤,可能是nouveau沒有成功加入黑名單。觀察上面lshw指令輸出結果,如果Kernel modules:後面顯示nouveau,那麼就是沒有黑名單,nouveau驅動會跟Nvidia驅動搶控制權。此時,需要手動將nouveau加入開機禁止載入的核心模組黑名單,更新核心設定,並重開機:
echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u雙GPU筆電#
搭載Nvidia獨立顯示卡的筆電安裝顯示卡驅動的方式跟桌上型電腦一樣。
不過,像Intel+Nvidia這種的雙GPU筆電,即使裝了Nvidia驅動也可能繼續用Intel的GPU渲染3D,導致3D性能低下。
此時可以使用prime-select指令,指定用Nvidia顯示卡負責渲染作業。
sudo prime-select nvidia重開機後再使用指令:vulkaninfo --summary查看主顯示卡為何。
相關文章:Nvidia PRIME指令使用方式
3. 如何查看Nvidia GPU使用量#
了解Nvidia GPU的使用率、VRAM佔用、影片編碼用量。
Nvidia閉源驅動附帶的nvidia-smi -l指令便能夠查看GPU使用量。
不過nvidia-smi的資料太簡陋,建議透過nvtop工具查看,它能夠詳細顯示3D渲染與影片編解碼的使用率,並且支援Intel與AMD的GPU。
透過套件管理器安裝:
sudo apt install nvtop透過nvtop指令啟動nvtop。如果出現警告訊息就按方向鍵,移動Enter確定。
這樣子就會顯示有哪些行程正在使用Nvidia顯示卡計算。
4. 安裝CUDA#
CUDA (Compute Unified Device Architecture),在做深度學習、Blender渲染時常用到的技術。
必須先裝Nvidia閉源驅動才能裝CUDA。
- 從Ubuntu套件庫安裝CUDA Toolkit,重開機。
sudo apt update
sudo apt install nvidia-cuda-toolkit用
nvcc --version指令確認CUDA版本
Ubuntu套件庫收錄的CUDA版本可能是舊版,如果需要新版,請改用CUDA套件庫安裝CUDA。


