適用系統版本:Debian 13 Trixie以上
本文讓Ivon解說如何在Debian GNU/Linux系統安裝Nvidia驅動程式與CUDA套件。
安裝方法參考自Debian Wiki與Nvidia官方文件,以APT套件管理員線上安裝(Network Installation)為主,方便升級與解除安裝。
以lspci -nn | egrep -i "3d|display|vga"
確認電腦顯示卡型號,應會看到類似如下的輸出。
01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
在安裝Debian的時候,如果有Nvidia顯示卡,預設會載入開源的nouveau驅動。但是要使用CUDA技術,就得安裝Nvidia的專有驅動。
nouveau是含在mesa套件裡面的,一般不需要刪除套件,在安裝Nvidia專有驅動後nouveau就會自動被停用。
1. 安裝Nvidia專有驅動#
Debian的Nvidia驅動可以選擇從Debian套件庫安裝,或者使用Nvidia CUDA套件庫的驅動。Debian套件庫的驅動版本穩定但陳舊。Nvidia套件庫的驅動則是可以獲得上游發表的最新版本,但不一定穩定。
1.1. 桌電與伺服器#
Debian官方非自由(non-free)的套件庫有收錄Nvidia驅動的套件。
首先要到Nvidia官網查詢,檢查手上的顯示卡是否仍受Nvidia官方支援,如果有的話就直接裝最新版驅動。
- 查看現在Nvidia GPU是使用哪個驅動。
sudo lspci -k | grep -A 2 -i "NVIDIA"
- 沒安裝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
- 編輯
/etc/apt/sources.list
,加上non-free
與contrib
,啟用非自由的套件庫
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
- 接著以DKMS安裝Nvidia驅動,這會讓Nvidia驅動自動跟著Linux核心更新。註:你可以用
apt search nvidia-driver-
搜尋其他版本的Nvidia驅動程式。
sudo apt update
sudo apt install linux-headers-amd64
sudo apt install nvidia-driver firmware-misc-nonfree
安裝後重開機,執行
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
指令,查看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驅動搶控制權。此時,需要手動將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.2. 雙GPU筆電#
搭載Nvidia獨立顯示卡的筆電安裝顯示卡驅動的方式跟桌上型電腦一樣。
不過,像Intel+Nvidia這種的雙GPU筆電,即使裝了Nvidia驅動也可能繼續用Intel的GPU渲染3D,導致3D性能低下。
此時可以使用prime-select
指令,指定用Nvidia顯示卡負責渲染作業。
sudo prime-select nvidia
重開機後再使用指令:vulkaninfo --summary
查看主顯示卡為何。
相關文章:Nvidia PRIME指令使用方式
2. 安裝CUDA#
Debian套件庫有收錄CUDA的套件,但是要取得最新版本得用Nvidia官方的套件庫。Debian Stable提供的nvidia-driver
套件版本可能有點舊,這沒有關係,下面安裝CUDA的時候會自動裝上新版驅動。
必須先裝Nvidia專有驅動才能裝CUDA。
- 取得Nvidia提供的套件庫金鑰。
$distro
是Debian版本號碼,$arch
是作業系統架構。撰文當下Nvidia尚未提供Debian 13的套件庫,所以我用Debian 12的。
distro=debian12
arch=x86_64
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.1-1_all.deb
sudo apt install ./cuda-keyring_1.1-1_all.deb
- 安裝CUDA套件,撰文當下目前最新版為CUDA 13。
sudo apt update
sudo apt install cuda-toolkit
- CUDA會安裝至
/usr/local/
,以VIM編輯~/.bashrc
vim ~/.bashrc
- 將以下二行加到檔案末尾,這樣系統才找得到CUDA 13的檔案
export PATH=/usr/local/cuda-13/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-13/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- 重開機,執行
nvcc --version
指令查看CUDA版本
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_01:58:59_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0
3. 安裝CUDA Container Toolkit#
這是設計給Docker和Podman容器用的Nvidia工具,使容器可以使用CUDA計算。
即使宿主機沒有安裝CUDA套件,容器內照樣可以使用CUDA計算。
必須先安裝Nvidia專有驅動才可以安裝NVIDIA Container Toolkit。
在Debian安裝Docker
加入Nvidia的套件庫
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 安裝NVIDIA Container Toolkit
sudo apt update
sudo apt install nvidia-container-toolkit
- 向Docker註冊Nvidia裝置
sudo nvidia-ctk runtime configure --runtime=docker
- 重新啟動Docker
sudo systemctl restart docker
- 執行Ubuntu容器,測試能否印出Nvidia顯示卡的資訊。
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
參考資料#
- NvidiaGraphicsDrivers - Debian Wiki
- Nouveau: Accelerated Open Source driver for nVidia cards - freedesktop.org
- NVIDIA Driver Installation Quickstart Guide
- NVIDIA CUDA Installation Guide for Linux
- NVIDIA Deep Learning cuDNN Documentation
- NVIDIA Deep Learning TensorRT Documentation
- NVIDIA Container Toolkit Installation Guide