快轉到主要內容

如何在Debian系統安裝Nvidia閉源驅動、CUDA Toolkit

· 民國115年丙午年
·
切換繁體/簡體
分類 Linux系統 Linux使用技巧
標籤 Debian Nvidia CUDA
目錄

適用系統版本:Debian 13 Trixie以上

本文讓Ivon解說如何在Debian GNU/Linux系統安裝Nvidia驅動程式與CUDA套件。

在安裝Debian的時候,如果有Nvidia顯示卡,預設會載入開源的nouveau驅動。但是要使用CUDA技術,就得安裝Nvidia的閉源驅動。

nouveau是含在mesa套件裡面的,一般不需要刪除套件,在安裝Nvidia閉源驅動後nouveau就會自動被停用。

1. Nvidia驅動的版本差異
#

根據Debian Wiki與Nvidia官方文件,Nvidia驅動裝法有以下途徑:

途徑驅動版本穩定性適用情況
Debian套件庫穩定不在乎CUDA版本;穩定性為重。
使用Nvidia CUDA套件庫的.deb驅動不穩定需要最新版驅動與最新CUDA版本。
手動下載Nvidia官網的.deb檔案安裝驅動不穩定顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。
手動執行Nvidia官網的.run檔案安裝驅動不穩定顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。

Linux的Nvidia驅動不會一直都是官方發表的最新版本,要看你是從哪一種途徑安裝。

這裡的「穩定」是以Debian維護者的角度來看。事實上只要是Nvidia官方正式發表的驅動都是夠穩定的,上面寫不穩定只是相對Debian收錄的Nvidia驅動版本來說,這些套件沒有經過長時間測試。

需要注意的是,Debian套件庫打包的Nvidia驅動版本雖然被Debian開發者認為是「穩定的」但只是對於伺服器而言,不保證桌面的圖形驅動穩定。例如,Debian 13收錄的Nvidia驅動套件版本是550,對Wayland桌面的支援度不佳。若透過Nvidia CUDA套件庫,則可以取得針對Wayland相容性大幅改善的590版本驅動。

本文採用的是透過Debian套件庫安裝Nvidia驅動與CUDA。

2. 檢查Nvidia顯示卡相容性
#

  1. 首先要到Nvidia官網查詢,檢查手上的顯示卡是否仍受Nvidia官方支援,如果有的話就直接裝最新版驅動。如果已經停止支援,則只能安裝舊版驅動。

舉例來說:NVIDIA GeForce GTX 1050屬於Turing架構以前的舊卡,那麼最高就只能裝到580版本的驅動。在Turing架構以後推出的NVIDIA GeForce GTX 1650,可以直接裝最新版的590驅動。但是在這篇文章中,我們沒有要使用Nvidia官網的驅動安裝器,所以這裡的資訊僅是作為參考。

  1. 查看現在Nvidia顯示卡是使用哪個驅動。
sudo lspci -k | grep -A 2 -i "NVIDIA"
  1. 沒安裝Nvidia閉源驅動前,Linux應該會載入nouveau核心模組。
# 範例輸出
07:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
        Subsystem: ASUSTeK Computer Inc. Device 85d6
        Kernel modules: nouveau

3. 安裝Nvidia閉源驅動
#

桌電與伺服器
#

  1. Debian官方非自由(non-free)的套件庫有收錄Nvidia驅動的套件。編輯/etc/apt/sources.list,加上non-freecontrib,啟用非自由的套件庫
deb http://deb.debian.org/debian trixie main non-free-firmware non-free contrib

deb http://deb.debian.org/debian trixie-updates main non-free-firmware non-free contrib
  1. 更新套件庫
sudo apt update 
  1. 接著以DKMS安裝Nvidia驅動,這會讓Nvidia驅動自動跟著Linux核心更新。註:你可以用apt search nvidia-driver搜尋其他版本的Nvidia驅動程式。

Turing架構(含)以後的新卡,也就是RTX20系列之後,安裝以下版本的套件:

sudo apt install nvidia-open-kernel-dkms nvidia-driver

Turing架構以前的舊卡,也就是RTX10系列之前,是安裝以下套件:

sudo apt install nvidia-kernel-dkms nvidia-driver
  1. 安裝後重開機,執行nvidia-smi指令查看目前驅動版本。

  2. 再度執行lspci指令

sudo lspci -k | grep -A 2 -i "NVIDIA"
  1. 查看nouveau是否已經變成nvidia。
# 範例輸出
07:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
        Subsystem: ASUSTeK Computer Inc. Device 85d6
        Kernel modules: nvidia_drm, nvidia
  1. 執行nvidia-smi指令,查看Nvidia驅動版本。

  2. 如果遇到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沒有成功加入黑名單。觀察上面lspci指令輸出結果,如果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 -k all
  1. 對於Nvidia驅動550 ~ 580版本,登入Wayland桌面與顯示管理器,會黑螢幕,可能要在/etc/default/grub新增GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1,接著更新GRUB:sudo update-grub

雙GPU筆電
#

搭載Nvidia獨立顯示卡的筆電安裝顯示卡驅動的方式跟桌上型電腦一樣。

不過,像Intel + Nvidia這種的雙GPU筆電,即使裝了Nvidia驅動也可能繼續用Intel的GPU渲染3D,導致3D性能低下。

此時可以使用prime-select指令,指定用Nvidia顯示卡負責渲染作業。

sudo prime-select nvidia

重開機後再使用指令:vulkaninfo --summary查看主顯示卡為何。

相關文章:Nvidia PRIME指令使用方式

4. 安裝CUDA
#

必須先裝Nvidia閉源驅動才能裝CUDA。

  1. 從Debian套件庫安裝CUDA
sudo apt install nvidia-cuda-toolkit
  1. 執行nvcc --version指令查看CUDA版本。

  2. Debian Stable提供的nvidia-driver套件版本可能有點舊,若需要新版,得從Nvidia CUDA的deb套件庫下載。

參考資料
#

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。