Proxmox : utiliser une carte graphique Nvidia avec un conteneur LXC

Lien : https://shionn.github.io/draft/nvidia-proxmox-lxc-passthrought-ollama.html

Installation des pilotes sur le serveur Proxmox

mise à jour du serveur

apt update && apt upgrade

Installation des prérequis logiciels

apt install pve-nvidia-vgpu-helper nvtop pve-headers build-essential

Pré configuration de Proxmox :

pve-nvidia-vgpu-helper setup

Installation des paquets du driver nvidia.

wget https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64/cuda-keyring_1.1-1_all.deb
apt install ./cuda-keyring_1.1-1_all.deb
apt update
apt upgrade
apt install nvidia-driver-cuda

Problèmes rencontrés avec l'installation de plusieurs pilotes Nvidia pour Debian 13. Installation manuelle de ces pilotes avec ce script : #!/bin/bash set -e # Stoppe le script en cas d’erreur BASE_URL="https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64" # Liste des paquets à télécharger packages=( "firmware-nvidia-gsp_590.48.01-1_amd64.deb" "libnvidia-gpucomp_590.48.01-1_amd64.deb" "libnvidia-ptxjitcompiler1_590.48.01-1_amd64.deb" "libnvidia-pkcs11-openssl3_590.48.01-1_amd64.deb" "libcuda1_590.48.01-1_amd64.deb" "libcudadebugger1_590.48.01-1_amd64.deb" "libnvcuvid1_590.48.01-1_amd64.deb" "libnvidia-cfg1_590.48.01-1_amd64.deb" "libnvidia-encode1_590.48.01-1_amd64.deb" "nvidia-modprobe_590.48.01-1_amd64.deb" "nvidia-kernel-support_590.48.01-1_amd64.deb" "libnvidia-fbc1_590.48.01-1_amd64.deb" "libnvidia-ml1_590.48.01-1_amd64.deb" "libnvidia-nvvm4_590.48.01-1_amd64.deb" "libnvidia-nvvm704_590.48.01-1_amd64.deb" "libnvidia-opticalflow1_590.48.01-1_amd64.deb" "libnvidia-present_590.48.01-1_amd64.deb" "libnvidia-sandboxutils_590.48.01-1_amd64.deb" "libnvidia-tileiras_590.48.01-1_amd64.deb" "libnvoptix1_590.48.01-1_amd64.deb" "nvidia-opencl-icd_590.48.01-1_amd64.deb" "nvidia-persistenced_590.48.01-1_amd64.deb" "nvidia-driver-cuda_590.48.01-1_amd64.deb" ) echo "=== Téléchargement et installation des paquets NVIDIA CUDA ===" for pkg in "${packages[@]}"; do echo "" echo "--- Téléchargement : $pkg ---" wget -q "$BASE_URL/$pkg" -O "$pkg" echo "Installation de $pkg..." dpkg -i "$pkg" done echo "" echo "=== Tous les paquets ont été installés avec succès ! ===" echo "Correction des paquets manquants." apt --fix-broken install ``

lmdskfmqldkfjlMFD

* reboot du serveur
* il doit maintenant être possible d'utiliser l'outil nvidia-smi :

# nvidia-smi
Wed Jan 14 15:05:04 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01 Driver Version: 590.48.01 CUDA Version: 13.1 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla T4 On | 00000000:86:00.0 Off | 0 |
| N/A 38C P8 8W / 70W | 0MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 Tesla T4 On | 00000000:AF:00.0 Off | 0 |
| N/A 38C P8 9W / 70W | 0MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+

Nvidia dans le Container LXC

Votre container n'as pas besoin d'option particulière, il n'as pas besoin d'être privilégié. configuration, sur l'hôte faites un ls /dev/nvi* et vous devriez avoir quelque chose comme cela :

root@MaxiMox:~# ls -l /dev/nvi* crw-rw-rw- 1 root root 195, 0 Aug 23 10:52 /dev/nvidia0 crw-rw-rw- 1 root root 195, 255 Aug 23 10:52 /dev/nvidiactl crw-rw-rw- 1 root root 195, 254 Aug 23 10:52 /dev/nvidia-modeset crw-rw-rw- 1 root root 508, 0 Aug 23 10:52 /dev/nvidia-uvm crw-rw-rw- 1 root root 508, 1 Aug 23 10:52 /dev/nvidia-uvm-tools

/dev/nvidia-caps: total 0 cr——– 1 root root 234, 1 Aug 23 10:52 nvidia-cap1 cr–r–r– 1 root root 234, 2 Aug 23 10:52 nvidia-cap2 Il fait passthrought tous ces dossiers au container. Cela se fait dans l'interface de votre proxmox.

#!/bin/bash
set -e # Stoppe le script en cas d’erreur
BASE_URL="https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64"
# Liste des paquets à télécharger
packages=(
"firmware-nvidia-gsp_590.48.01-1_amd64.deb"
"libnvidia-gpucomp_590.48.01-1_amd64.deb"
"libnvidia-ptxjitcompiler1_590.48.01-1_amd64.deb"
"libnvidia-pkcs11-openssl3_590.48.01-1_amd64.deb"
"libcuda1_590.48.01-1_amd64.deb"
"libcudadebugger1_590.48.01-1_amd64.deb"
"libnvcuvid1_590.48.01-1_amd64.deb"
"libnvidia-cfg1_590.48.01-1_amd64.deb"
"libnvidia-encode1_590.48.01-1_amd64.deb"
"nvidia-modprobe_590.48.01-1_amd64.deb"
"nvidia-kernel-support_590.48.01-1_amd64.deb"
"libnvidia-fbc1_590.48.01-1_amd64.deb"
"libnvidia-ml1_590.48.01-1_amd64.deb"
"libnvidia-nvvm4_590.48.01-1_amd64.deb"
"libnvidia-nvvm704_590.48.01-1_amd64.deb"
"libnvidia-opticalflow1_590.48.01-1_amd64.deb"
"libnvidia-present_590.48.01-1_amd64.deb"
"libnvidia-sandboxutils_590.48.01-1_amd64.deb"
"libnvidia-tileiras_590.48.01-1_amd64.deb"
"libnvoptix1_590.48.01-1_amd64.deb"
"nvidia-opencl-icd_590.48.01-1_amd64.deb"
"nvidia-persistenced_590.48.01-1_amd64.deb"
"nvidia-driver-cuda_590.48.01-1_amd64.deb"
)
echo "=== Téléchargement et installation des paquets NVIDIA CUDA ==="
for pkg in "${packages[@]}"; do
echo ""
echo "--- Téléchargement : $pkg ---"
wget -q "$BASE_URL/$pkg" -O "$pkg"
echo "Installation de $pkg..."
sudo dpkg -i "$pkg"
done
echo ""
echo "=== Tous les paquets ont été installés avec succès ! ==="
echo "Vous pouvez exécuter : sudo apt --fix-broken install pour corriger d'éventuels manques."
``