Ubuntu 26.04 Server + NVIDIA CUDA 13.3 + NVIDIA Driver 安裝流程

本篇文章針對台灣企業 IT 人員,提供一套在 Ubuntu 26.04 Server 上安裝 NVIDIA 顯示驅動(NVIDIA Driver)與 CUDA Toolkit 13.3 的詳細實作流程與注意事項。內容包含 APT(套件管理)安裝方式與 Runfile(NVIDIA 官方執行檔)安裝方式、環境變數設定、驗證指令、常見錯誤排除、APT 與 Runfile 的比較、適用情境建議,以及最後的 FAQ。適用於無頭(headless)GPU 伺服器或需要 GPU 加速的運算環境(如深度學習訓練、推論、HPC)。

前置條件與環境檢查(Ubuntu 26.04 Server)

在開始安裝前,請先確定系統與硬體環境:

  • 作業系統:Ubuntu 26.04 Server(請確認已更新到最新套件)。
  • 硬體:有相容的 NVIDIA GPU(確認 GPU 型號與對應驅動支援)。
  • 網路:能連線到 NVIDIA 官方 repository 或可下載 Runfile 安裝檔。
  • 權限:需具備 sudo 或 root 權限。

系統更新與必要套件

建議先更新系統並安裝編譯模組所需套件:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential dkms linux-headers-$(uname -r) curl ca-certificates gnupg lsb-release

安裝前注意:關閉或處理 Nouveau 驅動與 Secure Boot

Nouveau(開放原始碼 NVIDIA 驅動)會與官方驅動衝突,必須停用或封鎖。若主板啟用 Secure Boot,NVIDIA 核心模組可能無法載入(因為模組未簽章),可以選擇關閉 Secure Boot 或在安裝過程中使用 MOK 登記模組簽章。

封鎖 Nouveau(示範)

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot

重開機後可用 lsmod | grep nouveau 檢查是否仍被載入。

方法一:APT(Repository)安裝 NVIDIA Driver 與 CUDA 13.3(推薦生產環境)

APT 安裝的好處是與系統套件管理整合、更新與移除較簡單,並且較容易配合 DKMS 自動重編譯。

步驟 1:新增 NVIDIA apt repository(建議使用 NVIDIA 官方 keyring 套件)

建議透過 NVIDIA 的官方 repo 套件或 keyring 方式加入金鑰與 repository。以下為標準流程(請以 NVIDIA 官方文件為準,URL 可能會隨版本調整):

# 安裝 NVIDIA keyring(示意)
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-archive-keyring.gpg

# 新增 repository(請確認 repo 路徑是否對應 ubuntu2604 與 x86_64)
echo "deb [signed-by=/usr/share/keyrings/nvidia-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/ /" | sudo tee /etc/apt/sources.list.d/cuda.list

sudo apt update

注意:Ubuntu 26.04 的 repository 名稱可能會隨 NVIDIA 官網調整,建議到 NVIDIA CUDA Downloads 頁面選擇 Ubuntu 26.04 並複製官方指令。

步驟 2:安裝驅動(範例:nvidia-driver)

可選擇安裝特定版本或由系統自動決定。舉例安裝較新的生產建議驅動(請依需求選擇適合版本號,如 535、545 等):

# 查詢可用驅動
apt-cache search nvidia-driver

# 安裝驅動(範例)
sudo apt install -y nvidia-driver-535

安裝完成後重開機:

sudo reboot

步驟 3:安裝 CUDA Toolkit 13.3(APT)

在加入 NVIDIA repo 後,直接使用 apt 安裝 CUDA 工具包:

# 安裝 CUDA 13.3 ToolKit(套件名稱示意,請以官方倉庫的正確套件名稱為準)
sudo apt update
sudo apt install -y cuda-toolkit-13-3

或安裝整個 CUDA 套件(包含 driver 與 toolkit):sudo apt install -y cuda-13-3

步驟 4:設定環境變數(APT 方式)

安裝完成後,CUDA 的執行檔與函式庫通常位於 /usr/local/cuda-13.3(或 /usr/local/cuda 指向當前版本)。建議將以下內容加入 /etc/profile.d/cuda.sh(系統層)或使用者的 ~/.bashrc:

# /etc/profile.d/cuda.sh(範例)
export CUDA_HOME=/usr/local/cuda-13.3
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}

儲存後執行:source /etc/profile.d/cuda.sh 或重新登入。

驗證(APT)

安裝與設定完成後,驗證方式如下:

# 驅動與 GPU 確認
nvidia-smi

# nvcc(CUDA 編譯器)版本
nvcc --version

# 測試 CUDA 執行(可切換到 Samples 範例)
/usr/local/cuda-13.3/bin/cuda-install-samples-13.3.sh ~
cd ~/NVIDIA_CUDA-13.3_Samples/1_Utilities/deviceQuery
make
./deviceQuery

deviceQuery 應回報 “Result = PASS” 並列出裝置資訊。

方法二:Runfile(NVIDIA 官方執行檔)安裝(適合需要完全控制或離線安裝)

Runfile 是 NVIDIA 官方提供的單一可執行安裝檔,可在沒有網路 repository 的環境或需要特別選項(例如只安裝 Toolkit 而不安裝 Driver)時使用。缺點是須自行管理卸載與更新,且較容易與系統套件產生衝突。

下載 Runfile

到 NVIDIA CUDA Downloads 頁面選擇 Linux / x86_64 / Ubuntu / 26.04 / runfile (local) 並下載 cuda_13.3.<版本>_linux.run 至伺服器。假設檔名為 cuda_13.3.0_XXXX_linux.run。

安裝步驟(範例)

# 標記可執行
chmod +x cuda_13.3.0_linux.run

# 若要同時安裝 driver,執行以下(互動式或加上參數)
sudo ./cuda_13.3.0_linux.run

# 若只想安裝 toolkit,不安裝 driver(driver 改用 apt 安裝或已有合適 driver)
sudo ./cuda_13.3.0_linux.run --silent --toolkit

# 若要使用 DKMS 安裝驅動(若 runfile 支援)可選擇 --dkms
sudo ./cuda_13.3.0_linux.run --silent --driver --dkms --toolkit

注意:互動安裝會詢問是否安裝 driver、Toolkit、Samples 等,若系統已安裝來自 apt 的 driver,建議只安裝 Toolkit(–toolkit)以避免衝突。

Runfile 常見安裝選項

  • –silent:靜默安裝(非互動)。
  • –toolkit:只安裝 CUDA Toolkit。
  • –driver:安裝 NVIDIA Driver(會安裝私有驅動)。
  • –samples:安裝範例程式。
  • –dkms:使用 DKMS 建立模組以便 kernel 更新後自動重編譯。

Runfile 後續設定

Runfile 安裝完成後,請手動加入環境變數(與 APT 類似):

export CUDA_HOME=/usr/local/cuda-13.3
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}

若 runfile 安裝在 /usr/local/cuda,請對應修改變數。

驗證(Runfile)

驗證方式同 APT:

nvidia-smi
nvcc --version
# 使用範例編譯測試
cd ~/NVIDIA_CUDA-13.3_Samples/1_Utilities/deviceQuery
make
./deviceQuery

環境變數細節與 system-wide 設定建議

為了系統化管理,建議建立一個全系統的環境設定檔 /etc/profile.d/cuda.sh,如下:

#!/bin/sh
export CUDA_HOME=/usr/local/cuda-13.3
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}

設定檔儲存後給予執行權限並重新登入。針對 Docker 或容器化環境,通常在 container image 裡面設定相同變數或透過環境變數注入。

驗證清單(常用指令)

  • nvidia-smi:顯示驅動與 GPU 使用狀態。
  • nvcc –version:檢查 CUDA 編譯器版本。
  • ldconfig -p | grep cuda 或 ls /usr/local/cuda-13.3/lib64:檢查 CUDA 函式庫。
  • lspci -k | grep -A 2 -i nvidia:查看 kernel driver in use。
  • dkms status:檢查驅動模組是否已由 DKMS 管理。
  • modinfo nvidia:檢查載入的 nvidia kernel module 資訊。

常見錯誤與排除策略

1. nvidia-smi 顯示 “No devices were found” 或驅動版本 0

可能原因:

  • 驅動未正確載入(modprobe nvidia 檢查)。
  • Nouveau 尚未關閉或衝突。
  • Secure Boot 阻止模組載入(需關閉 Secure Boot 或使用 MOK 簽章)。
  • 驅動版本不支援該 GPU(檢查 gpu 與 driver 相容性)。

排除步驟:

# 檢查模組
lsmod | grep nvidia
dmesg | grep -i nvidia
# 檢查是否有 nouveau
lsmod | grep nouveau
# 檢查 kernel headers 與目前 kernel 相符
sudo apt install linux-headers-$(uname -r)

2. nvcc 找不到,但 nvidia-smi 正常

代表只有 driver 正常但 CUDA Toolkit 未加入 PATH。檢查 /usr/local/ 下的 cuda 目錄,並確認環境變數是否正確設定。

3. 安裝失敗時 apt 出現套件衝突

多半是因為 runfile 安裝與 apt 安裝彼此衝突導致,建議先統一移除舊驅動再重新安裝:

# 若使用 runfile 安裝,可能需執行 uninstall script
sudo /usr/local/cuda-13.3/bin/uninstall_cuda_.pl  # 若存在

# 移除 apt 的 NVIDIA 套件
sudo apt remove --purge '^nvidia-.*' 'cuda-.*' -y
sudo apt autoremove -y

重開機後再依選定方式重裝。

4. DKMS 編譯錯誤(kernel module build fails)

常見於 kernel headers 與目前 kernel 不匹配或缺少 build 工具。請確認 linux-headers 與 gcc 版本相容:

sudo apt install --reinstall build-essential dkms linux-headers-$(uname -r)

檢查 /var/lib/dkms/nvidia//build/make.log 以獲取詳細錯誤訊息。

5. Secure Boot(模組簽章)問題

若系統啟用了 Secure Boot,內核會拒絕未簽章的模組。處理方式:

  • 在 BIOS/UEFI 關閉 Secure Boot(最直接)。
  • 使用 mokutil 登記簽章金鑰(若要保留 Secure Boot,可在安裝過程中產生金鑰並透過 MOK 管理員註冊)。

APT 與 Runfile 的比較(優缺點、建議使用情境)

APT(Repository)

  • 優點:
    • 整合系統套件管理,更新/移除方便。
    • 往往支援 DKMS,自動在 kernel 更新後重編譯模組。
    • 適合長期維運與叢集環境(例如 HPC 或企業伺服器)。
  • 缺點:
    • repo 中的版本可能比官方 Runfile 慢一些。
    • 在非常特殊或自訂需求時,彈性較低。

Runfile(官方執行檔)

  • 優點:
    • 能取得 NVIDIA 官方最新版本與特定組態。
    • 適合離線環境或需要精細控制安裝內容(僅 toolkit、僅 driver)。
  • 缺點:
    • 非套件管理,更新與移除需手動處理。
    • 較容易與系統其他套件衝突(需小心管理)。
    • 若同時使用 apt 安裝,需特別注意衝突。

建議情境

  • 生產伺服器或叢集(需長期穩定):建議使用 APT 安裝(repo),以便套件管理與自動更新。
  • 開發、測試或需要最新 CUDA 功能:可考慮 Runfile(但須嚴格管理版本與相依套件)。
  • 離線環境或企業網路隔離:Runfile 或在內部建置 apt repository(將 NVIDIA .deb 包放到內部 repo)皆可。
  • 容器化部署:建議使用 NVIDIA 提供的 CUDA 基礎映像(NVIDIA Container Toolkit + nvidia-docker),在宿主機安裝相容 driver,容器內安裝 CUDA runtime/toolkit(APT 或預建 image)。

進階建議(叢集與容器)

在 GPU 叢集或 Kubernetes 環境,建議:

  • 宿主機僅安裝 NVIDIA Driver(或 headless driver),並搭配 NVIDIA Container Toolkit 提供 GPU 給容器使用。
  • 容器映像中安裝或使用 NVIDIA 提供的 CUDA image(例如 nvcr.io 或官方 docker hub cuda images),避免在容器內安裝驅動。
  • 透過 apt repository 管理驅動版本,以便在多台節點上統一配置。

實務安裝流程範例(綜合指南)

  1. 確認硬體與系統:nvidia-smi 先檢查是否已有驅動或設備。
  2. 封鎖 nouveau,重開機。
  3. 安裝 linux-headers 及 build-essential、dkms。
  4. 選擇安裝方式:
    • APT:加入 NVIDIA repo、安裝 nvidia-driver 與 cuda-toolkit-13-3、設定環境變數、重開機。
    • Runfile:下載 runfile、以 –toolkit 或 –driver 選項安裝、手動設定環境變數、重開機。
  5. 驗證:nvidia-smi、nvcc、deviceQuery 範例。
  6. 若使用 Secure Boot,處理 MOK 或關閉 Secure Boot。

FAQ(常見問答)

問:我應該先安裝 driver 還是 CUDA Toolkit?

答:一般建議先安裝 driver(確保 GPU 與內核模組正常),再安裝 CUDA Toolkit。若使用 Runfile 可選擇一併安裝,但在使用 apt 與 runfile 混合時需小心衝突。

問:如何處理 Secure Boot 導致的模組無法載入?

答:最簡單是到 BIOS/UEFI 關閉 Secure Boot;若必須啟用 Secure Boot,可使用 mokutil 與自簽章金鑰來簽署 NVIDIA 模組並 enroll(MOK),或使用 distro 的 signer 工具流程。

問:APT 與 Runfile 可以混用嗎?

答:不建議混用。若必須混用,請確保先移除舊有安裝並清理衝突,或以 Runfile 只安裝 toolkit 而 driver 由 apt 管理,避免驅動版本衝突。

問:如何在多台伺服器上自動化部署?

答:建議使用自動化工具(Ansible、Puppet、Salt)搭配企業內部 apt repository 或直接從 NVIDIA 官方 repo 用相同版本指令安裝,並透過相同的 kernel header、driver 版本策略維護。

問:我裝好後 GPU 利用率一直為 0,但 nvidia-smi 有看到 GPU,怎麼辦?

答:若 GPU 被識別但利用率為 0,可能是因為沒有任何工作負載或程式未正確使用 CUDA;可執行 deviceQuery 或 nvidia-smi dmon 等工具檢查即時使用情況;若是深度學習框架,確認該框架(如 TensorFlow、PyTorch)與 CUDA / cuDNN 版本相容並能偵測到 GPU。

問:如何移除 CUDA 與 NVIDIA Driver?

答:若使用 apt 安裝,使用 sudo apt remove –purge ‘cuda*’ ‘nvidia-*’ 並 sudo apt autoremove;若使用 runfile,runfile 內通常包含 uninstall script(檢查 /usr/local/cuda/bin 或安裝目錄),或使用 runfile 提供的命令進行移除。移除後請重開機並檢查 lsmod、dmesg。

結語:本篇提供在 Ubuntu 26.04 Server 上安裝並驗證 NVIDIA Driver 與 CUDA 13.3 的詳細步驟、環境變數設定、驗證指令與常見錯誤排除策略。企業 IT 在實作時,建議先在測試環境驗證整體安裝流程(包含 Secure Boot 處理、kernel header 相依、容器化策略),再將作法推到生產叢集,並以 APT repository 為主要管理方式以降低維運成本與風險。

error: 內容受保護!