NVIDIA-Treiber auf dem Proxmox-Host installieren
Alle Befehle in diesem Abschnitt werden auf dem Proxmox-Host ausgeführt.
Wichtig: Der NVIDIA-Treiber lädt sein Kernelmodul bei aktivem Secure Boot in der Regel nicht. Deaktiviere Secure Boot im BIOS, bevor du den Treiber installierst. Den Status prüfst du mit
apt install mokutil -yund danachmokutil --sb-state. Das Signieren des Moduls behandelt diese Anleitung nicht.
1.1 Proxmox aktualisieren
Melde dich über die Proxmox-Weboberfläche an und öffne die Shell des Hosts. Alternativ kannst du dich per SSH verbinden.
Prüfe zunächst die installierte Version:
pveversion -v
Aktualisiere anschließend die Paketlisten und installiere verfügbare Updates:
apt update && apt full-upgrade -y
Falls ein Kernel-Update installiert wurde, ist ein Neustart erforderlich, damit der neue Kernel tatsächlich läuft.
** 1.2 NVIDIA GPU erkennen**
Bevor wir irgendwelche NVIDIA-Treiber installieren, prüfen wir zunächst,
ob Proxmox die Grafikkarte überhaupt erkennt.
lspci | grep -i nvidia
Wenn die RTX 3060 korrekt erkannt wird, sollte eine Ausgabe ähnlich dieser erscheinen:
01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GA106 High Definition Audio Controller (rev a1)
Damit wissen wir, dass die Grafikkarte auf PCIe-Ebene erkannt wird.
1.3 Benötigte Pakete installieren
Bevor wir den NVIDIA-Treiber installieren, richten wir zunächst die benötigten Werkzeuge ein. Dazu gehören die Compiler-Werkzeuge für den Bau des NVIDIA-Kernel-Moduls, DKMS sowie einige Hilfsprogramme, die wir im weiteren Verlauf der Installation benötigen.
Installiere die Pakete mit:
apt install build-essential dkms pciutils wget curl nano mc btop nvtop
Die einzelnen Pakete haben dabei folgende Aufgaben:
- build-essential – enthält Compiler und Werkzeuge, die für den Bau des NVIDIA-Kernel-Moduls benötigt werden.
- dkms – verwaltet und baut Kernel-Module bei Bedarf automatisch für den verwendeten Kernel.
- pciutils – stellt unter anderem lspci bereit, mit dem wir die erkannte NVIDIA-GPU überprüfen können.
- wget – wird zum Herunterladen von Dateien verwendet.
- curl – wird ebenfalls für Downloads und zum Abrufen von Informationen verwendet.
- nano – einfacher Editor zum Bearbeiten von Konfigurationsdateien.
- mc – komfortabler Dateimanager für das Terminal.
- btop – zeigt CPU-Auslastung, RAM-Verbrauch, laufende Prozesse und Systemressourcen an.
- nvtop – zeigt GPU-Auslastung, VRAM-Verbrauch, Temperaturen und laufende GPU-Prozesse in Echtzeit an.
Anschließend prüfen wir, welchen Kernel der Proxmox-Host aktuell verwendet:
uname -r
Für den Bau des NVIDIA-Kernel-Moduls müssen die passenden Kernel-Header installiert sein. Unter Proxmox VE 9 verwenden wir dafür das Header-Metapaket des aktuellen Proxmox-7.0-Kernel-Zweigs:
apt install proxmox-headers-7.0
Damit wird die zum installierten Proxmox-Kernel passende Header-Version eingerichtet.
Zum Abschluss kontrollieren wir, ob das benötigte Build-Verzeichnis vorhanden ist:
ls -ld /lib/modules/$(uname -r)/build
Wenn hier ein gültiges Verzeichnis angezeigt wird, sind die benötigten Kernel-Header vorhanden und die Voraussetzungen für die NVIDIA-Treiberinstallation erfüllt.
Falls das Verzeichnis fehlt, sollte die NVIDIA-Treiberinstallation an dieser Stelle noch nicht durchgeführt werden. Zuerst müssen die Kernel-Header für den aktuell laufenden Proxmox-Kernel korrekt installiert werden.
1.4 NVIDIA-Treiber herunterladen
Lade den passenden Linux-Treiber für deine Nvidia RTX Grafikkarte von der offiziellen NVIDIA-Seite herunter:
NVIDIA – Treiber herunterladen
Für die RTX 3060 verwenden wir in diesem Beispiel die Production-Branch-Version 595.99.02.
Öffne anschließend die NVIDIA-Treiberseite im Browser und kopiere den direkten Download-Link der .run-Datei.
Füge diesen Link anschließend in den folgenden Befehl ein:
wget <kopierter-Download-Link>
Beispiel für die verwendete Version:
wget https://download.nvidia.com/XFree86/Linux-x86_64/595.99.02/NVIDIA-Linux-x86_64-595.99.02.run
Prüfe anschließend, ob die Datei erfolgreich heruntergeladen wurde:
ls -lh NVIDIA-Linux-x86_64-*.run
Mache die heruntergeladene Datei ausführbar. Verwende dabei am besten den exakten Dateinamen:
chmod +x NV*
Hinweis: chmod +x NV* funktioniert, wenn sich im Verzeichnis /root nur die heruntergeladene NVIDIA-.run-Datei befindet. Wenn dort mehrere Dateien mit NV beginnen, sollte stattdessen der vollständige Dateiname verwendet werden.
1.5 NVIDIA-Treiber mit DKMS installieren
Starte den Installer:
./NV* --dkms
Während der Installation werden verschiedene Abfragen angezeigt.
Kernelmodul auswählen:
→ NVIDIA proprietary
Das proprietäre Kernelmodul ist der klassische NVIDIA-Kerneltreiber. Die MIT/GPL-Variante ist das offene NVIDIA-Kernelmodul und wird insbesondere bei neueren GPU-Generationen (RTX50xx usw.) und aktuellen NVIDIA-Treibern eingesetzt. Für unseren Aufbau mit der RTX 3060 verwenden wir die proprietäre Variante.
Weitere Abfragen:
- Nouveau deaktivieren → Yes
- Installation trotz aktuell geladenem Nouveau fortsetzen → Continue installation
- 32-bit compatibility libraries → OK; diese werden nicht benötigt
- Kernelmodul mit DKMS registrieren → Yes
- initramfs neu erstellen → Rebuild initramfs
- nvidia-xconfig ausführen → No
Die Option --dkms sorgt dafür, dass das NVIDIA-Kernelmodul über DKMS verwaltet wird. Dadurch kann das Modul bei späteren Kernel-Updates automatisch für den neuen Kernel gebaut werden, sofern die passenden Kernel-Header vorhanden sind.
Da Nouveau zum Zeitpunkt der Installation noch im laufenden Kernel geladen ist, muss der Proxmox-Host anschließend neu gestartet werden. Die Deaktivierung von Nouveau wird erst nach dem Neustart wirksam.
1.6 Automatische NVIDIA-Device-Initialisierung einrichten
Auf Headless-Servern erstellt der NVIDIA-Treiber die Gerätedateien (/dev/nvidiactl etc.) erst beim ersten Zugriff. Damit Proxmox-LXC-Container beim Booten nicht mit TASK ERROR: Device /dev/nvidiactl does not exist abbrechen, legen wir einen kleinen Systemd-Dienst an. Dieser führt nvidia-smi aus, bevor Proxmox die Container startet:
Kernel-Module eintragen:
cat <<EOF > /etc/modules-load.d/nvidia.conf
nvidia
nvidia_uvm
EOF
Systemd-Dienst anlegen:
cat <<EOF > /etc/systemd/system/nvidia-init.service
[Unit]
Description=Initialize NVIDIA Device Nodes
DefaultDependencies=no
After=systemd-modules-load.service
Before=pve-guests.service
[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi
[Install]
WantedBy=multi-user.target
EOF
Dienst aktivieren:
systemctl daemon-reload
systemctl enable nvidia-init.service
1.7 Treiber überprüfen
Nach dem Neustart öffnest du erneut die Host-Shell und prüfst:
nvidia-smi
Anschließend:
lsmod | grep nvidia
Wenn nvidia-smi die RTX 3060 mit 12 GB VRAM und die installierte Treiberversion anzeigt und das NVIDIA-Kernelmodul geladen ist, ist der Host fertig für den nächsten Schritt.