快轉到主要內容

Linux使用.run file安裝Nvidia閉源驅動與CUDA Toolkit

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

透過Nvidia官網下載的.run file安裝Nvidia驅動。可以自由選擇想要使用的驅動版本。它提供純CLI指令操作模式,方便大量部署使用。

支援的Linux發行版包含:Ubuntu、Debian、KylinOS、Fedora、RHEL、Rocky Linux、Amazon Linux、Azure Linux、SUSE Linux。

本文以Ubuntu為例。

警告: 這是萬策盡的時候才使用的方法。Linux跟Windows管理系統的思維不一樣,大部分Linux發行版開發者都不推薦使用這種方式安裝驅動。除了難以被Linux的套件管理器追蹤變更之外,日後要切換版本也很困難。以Ubuntu來說,應當優先使用套件管理器安裝Nvidia驅動

1. 前置條件
#

不可混用APT與.run file版本的檔案。也就是說,如果你要用.run file安裝Nvidia驅動,則CUDA也只能用.run file安裝。

否則會產生一種吊詭的現象:要是你用.run安裝舊版驅動,結果用apt安裝cuda-toolkiy套件,cuda會因為依賴關係拉取新版Nvidia驅動套件下來,導致兩者驅動衝突!

2. 以.run file安裝Nvidia驅動
#

  1. 為免衝突,安裝這個版本的Nvidia驅動之前,解除安裝系統所有的Nvidia相關套件
sudo apt purge *nvidia*
  1. Nvidia官網依照顯示卡型號搜尋對應的Linux驅動,然後下載.run副檔名的installer檔案。例如我的Nvidia GTX1050Ti可以安裝到580版本驅動。

  2. 如果你要用指令下載的話,就對「下載」按鈕按右鍵,複製網址,再用wget指令下載

wget "網址"
  1. 賦予執行權限
chmod +x ./NVIDIA-Linux-*.run
  1. 以sudo權限執行installer,等待一下,它會解壓縮
sudo ./NVIDIA-Linux-*.run
  1. Nvidia不推薦在有圖形環境(X Server)執行的時候安裝這個驅動,建議在tty模式安裝。這裡就忽略警告。使用方向鍵移動選項到Continue Installation,按Enter

  2. 剩下的全部同意

  3. 如果有需要,一併安裝32位元的驅動

  4. 以DKMS模式安裝驅動。日後會跟著Linux核心自動更新,也就不需要重新跑一次次安裝器。

  5. 更新initramfs

  6. 因為現在都是使用Wayland桌面比較多了,不需要使用nvidia-xconfig生成X.org設定檔。

  7. 安裝後,重開機。執行以下指令,檢查驅動版本。

nvidia-smi
  1. 如果遇到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
  1. 日後要解除安裝Nvidia驅動的話,在執行安裝器的時候加上以下參數:
sudo ./NVIDIA-Linux-*.run --uninstall

3. 以.run file安裝CUDA套件
#

  1. 參考Nvidia官網的CUDA支援列表,依照目前的Nvidia驅動,下載對應的CUDA版本。例如CUDA 13.1需要Nvidia 580以上版本的驅動,那就直接下載最新版CUDA。

  2. NVIDIA CUDA Toolkit官網,依照系統版本下載.run file。或者使用網頁的指令下載。

  3. 以sudo權限執行installer,等待一下,它會解壓縮

chmod +x cuda_*_linux.run

sudo sh cuda_*_linux.run
  1. 輸入accept同意EULA,再按Enter

  2. 選取要安裝的項目,通常維持預設就好,用方向鍵移動到Install再按Enter。CUDA會建議你使用最新版Nvidia驅動,因此會一併自動安裝。不過如果你之前已經用run file安裝Nvidia驅動,並且不希望升級的話,就用空白鍵取消勾選,不要安裝Nvidia驅動。

  3. 等待安裝完成。

  4. 重開機。用nvcc --version指令確認CUDA版本

  5. 如果顯示Command nvcc not found,則編輯~/.bashrc

vim ~/.bashrc
  1. 加入以下兩條指令,將CUDA的路徑加入環境變數,撰文當下為CUDA 13.1。由於CUDA版本會一直更新,你可能要執行 ls /usr/local/查看CUDA的真正路徑,依照你的實際情況做修改。
export PATH=/usr/local/cuda-13-1/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-13-1/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  1. 再嘗試檢查一次版本
source ~/.bashrc

nvcc --version
  1. 日後要解除安裝CUDA的話,執行:
sudo /usr/local/cuda-13.1/bin/cuda-uninstaller

參考資料
#

相關文章


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

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

Click here to edit your comments.

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