適用版本:Rocky Linux 10以上
以Nvidia顯示卡來說,Linux預設載入的是nouveau開源驅動,需要手動安裝Nvidia閉源驅動,之後才能夠安裝CUDA套件。
雖然Rocky Linux安裝指令跟RHEL很像,但是有些服務不太一樣,所以特別寫一篇介紹。
1. 檢查Nvidia顯示卡相容性#
- 確認Nvidia是否仍支援你的顯示卡驅動,到Nvidia官網查詢。只要不是十年以上的舊卡,Nvidia閉源驅動應該都會繼續提供支援。如果有支援,那麼就直接安裝最新版Nvidia閉源驅動。如果你的顯示卡已經停止支援,那麼頂多只能裝到特定舊版本的驅動。
舉例來說:NVIDIA GeForce GTX 1050屬於Turing架構以前的舊卡,那麼最高就只能裝到580版本的驅動。在Turing架構以後推出的NVIDIA GeForce GTX 1650,可以直接裝最新版的590驅動。
- 若有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閉源驅動#
桌電與伺服器#
- 啟用EPEL和CRB套件庫
sudo dnf install epel-release
sudo dnf config-manager --enable crb- 安裝編譯依賴套件
sudo dnf groupinstall "Development Tools"
sudo dnf install kernel-devel-matched kernel-headers
sudo dnf install dkms- 新增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- 以DKMS方式安裝Nvidia驅動
Turing架構以後推出的顯示卡,安裝這個套件:
sudo dnf install nvidia-openTuring架構以前推出的顯示卡,安裝:
# 安裝最新版驅動
sudo dnf install cuda-driver
# 或者安裝特定版本的驅動
sudo dnf install cuda-drivers-580- 重開機
sudo reboot- 確認Nvidia驅動版本:
nvidia-smi- 再度執行lspci指令
sudo lspci -k | grep -A 2 -i "NVIDIA"- 查看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。
- 加入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- 安裝最新版CUDA套件
sudo dnf install cuda-toolkit- 將
/usr/local/目錄下最新版本CUDA 13.1的路徑加入到PATH,目前是CUDA
echo "export PATH=/usr/local/cuda-13-1/bin${PATH:+:${PATH}}" >> ~/.bashrc
source ~/.bashrc- 確認CUDA版本
nvcc --version

