快轉到主要內容

Rocky Linux如何安裝Nvidia閉源驅動與CUDA Toolkit

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

適用版本:Rocky Linux 10以上

以Nvidia顯示卡來說,Linux預設載入的是nouveau開源驅動,需要手動安裝Nvidia閉源驅動,之後才能夠安裝CUDA套件。

雖然Rocky Linux安裝指令跟RHEL很像,但是有些服務不太一樣,所以特別寫一篇介紹。

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

  1. 確認Nvidia是否仍支援你的顯示卡驅動,到Nvidia官網查詢。只要不是十年以上的舊卡,Nvidia閉源驅動應該都會繼續提供支援。如果有支援,那麼就直接安裝最新版Nvidia閉源驅動。如果你的顯示卡已經停止支援,那麼頂多只能裝到特定舊版本的驅動。

舉例來說:NVIDIA GeForce GTX 1050屬於Turing架構以前的舊卡,那麼最高就只能裝到580版本的驅動。在Turing架構以後推出的NVIDIA GeForce GTX 1650,可以直接裝最新版的590驅動。

  1. 若有Nvidia顯示卡但沒有安裝Nvidia閉源驅動,預設會載入開源nouveau驅動。這可以用指令sudo lspci -k | grep -A 2 -i "NVIDIA"確認,driver區段會顯示nouveau

3. 安裝Nvidia閉源驅動的方法
#

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

途徑驅動版本穩定性適用情況
EPEL套件庫不穩定Fedora協助維護的套件庫。適合需要最新版驅動與最新CUDA版本。
RPM Fusion套件庫不穩定Fedora協助維護的套件庫,主要包含閉源驅動軟體。適合需要最新版驅動與最新CUDA版本。
使用Nvidia CUDA套件庫的.deb驅動相對穩定需要最新版驅動與最新CUDA版本。
手動下載Nvidia官網的.rpm檔案安裝驅動相對穩定顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。
手動執行Nvidia官網的.run檔案安裝驅動相對穩定顯卡已經不受官方支援;需要特定版本的驅動;需要在完全離線的環境安裝。

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

Rocky Linux自身的套件庫並沒有收Nvidia驅動套件。又,因為Rocky Linux是與RHEL相容的Linux發行版,因此可以安裝給RHEL使用的Nvidia驅動套件。

本文採用Nvidia CUDA套件庫的驅動。

3. 安裝Nvidia閉源驅動
#

桌電與伺服器
#

  1. 啟用EPEL和CRB套件庫
sudo dnf install epel-release

sudo dnf config-manager --enable crb
  1. 安裝編譯依賴套件
sudo dnf groupinstall "Development Tools"

sudo dnf install kernel-devel-matched kernel-headers

sudo dnf install dkms
  1. 新增Nvidia CUDA官方套件庫,Rocky Linux要選取對應RHEL 10的版本
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel10/$(uname -m)/cuda-rhel10.repo

sudo dnf clean expire-cache
  1. 以DKMS方式安裝Nvidia驅動

Turing架構以後推出的顯示卡,安裝這個套件:

sudo dnf install nvidia-open

Turing架構以前推出的顯示卡,安裝:

# 安裝最新版驅動
sudo dnf install cuda-driver

# 或者安裝特定版本的驅動
sudo dnf install cuda-drivers-580
  1. 重開機
sudo reboot
  1. 確認Nvidia驅動版本:
nvidia-smi
  1. 再度執行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

如果遇到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驅動搶控制權。

此時,嘗試透過Grubby修改GRUB,手動將nouveau驅動加入黑名單,並重開機:

sudo grubby --args="nouveau.modeset=0 rd.driver.blacklist=nouveau" --update-kernel=ALL

雙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. 加入Nvidia官方套件庫
# 使用這個環境變數,自動偵測目前Rocky Linux對應的RHEL版本
curver="rhel$(rpm -E %rhel)"

sudo wget -O /etc/yum.repos.d/cuda-$curver.repo \
http://developer.download.nvidia.com/compute/cuda/repos/$curver/$(uname -i)/cuda-$curver.repo
  1. 安裝最新版CUDA套件
sudo dnf install cuda-toolkit
  1. /usr/local/目錄下最新版本CUDA 13.1的路徑加入到PATH,目前是CUDA
echo "export PATH=/usr/local/cuda-13-1/bin${PATH:+:${PATH}}" >> ~/.bashrc

source ~/.bashrc
  1. 確認CUDA版本
nvcc --version

參考資料
#

相關文章


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

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

Click here to edit your comments.

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