nvidia-smi
„nvidia-smi: command not found“ – so fixt du das (Debian/Kali)
Diese Anleitung hilft dir, nvidia-smi
wieder lauffähig zu machen und erklärt kurz, warum der Fehler passiert. Sie ist bewusst einfach gehalten – Schritt für Schritt, mit Kopierbefehlen.
TL;DR – Schnelllösung
- Stelle sicher, dass das NVIDIA/CUDA-Repository aktiv ist (für Treiber 580.x):
install -d /etc/apt/keyrings
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub \
| gpg --dearmor -o /etc/apt/keyrings/cuda-archive-keyring.gpg
cat >/etc/apt/sources.list.d/cuda-debian12-x86_64.list <<'EOF'
deb [arch=amd64 signed-by=/etc/apt/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /
EOF
apt-get update
- Reihen konsistent halten: gleiche Treiberlinie verwenden (hier 580.x). Prüfe die installierten Versionen:
apt-cache policy nvidia-driver nvidia-alternative libnvidia-ml1 | sed -n '1,200p'
- Fehlendes
nvidia-alternative
in 580 installieren (sofern nicht schon da):
apt-get install -y nvidia-alternative=580.82.07-1
- Falls das 580er Repo keine echte
nvidia-smi
-Binary liefert: nur die Binary aus 560er-Paket extrahieren (kein Downgrade!):
apt-get download nvidia-smi=560.35.05-1
dpkg-deb -x nvidia-smi_560.35.05-1_amd64.deb /tmp/nsmi
install -D -m 0755 /tmp/nsmi/usr/lib/nvidia/current/nvidia-smi /usr/local/bin/nvidia-smi
ln -sf /usr/local/bin/nvidia-smi /usr/bin/nvidia-smi
hash -r
nvidia-smi -h
nvidia-smi -q | head -n 20
nvidia-smi
-Binary. In der Praxis ist das mit libnvidia-ml1
580 kompatibel und genügt für Monitoring.Warum passiert der Fehler?
nvidia-smi
gehört nicht immer zum Paketnvidia-smi
. In manchen Repos ist das nur ein „Dummy“ (enthält nur Doku).- Die echte Binary steckt je nach Distribution/Version in anderen Paketen (z. B.
nvidia-driver-bin
,nvidia-utils-*
) – oder wird über Metapakete geliefert. - Mischt man Repositories (z. B. Kali 550.x + NVIDIA 580.x), passen die Versionsabhängigkeiten oft nicht zusammen – dann fehlt am Ende die Binary im
PATH
.
Sauberer Weg (empfohlen): konsistente Repo-Linie
Entscheide dich für eine Linie: entweder komplett 580.x (NVIDIA/CUDA) oder komplett 550.x (Kali). Mischen führt zu Konflikten.
Variante A – 580.x (NVIDIA/CUDA)
- CUDA-Repo eintragen (siehe TL;DR) und doppelte Zeilen entfernen:
awk '!seen[$0]++' /etc/apt/sources.list.d/cuda-debian12-x86_64.list \
> /etc/apt/sources.list.d/cuda-debian12_x86_64.fixed && \
mv /etc/apt/sources.list.d/cuda-debian12_x86_64.fixed /etc/apt/sources.list.d/cuda-debian12-x86_64.list
apt-get update
- Sicherstellen, dass alle Kernpakete 580 sind:
apt-cache policy nvidia-driver nvidia-alternative libnvidia-ml1
nvidia-alternative
ggf. nachziehen:
apt-get install -y nvidia-alternative=580.82.07-1
Wenn keine 580er nvidia-smi
-Binary verfügbar ist: siehe Abschnitt „Binary pragmatisch bereitstellen“.
Variante B – 550.x (Kali)
Nur falls du auf Kali-Stand bleiben willst.
- CUDA-Repo deaktivieren (um Versionen nicht zu mischen).
- Kali-Pakete sauber auf 550 ausrichten:
apt-get update
apt-get install -y \
nvidia-driver=550.163.01-3 \
nvidia-driver-bin=550.163.01-3 \
nvidia-alternative=550.163.01-3 \
libnvidia-ml1=550.163.01-3 \
--allow-downgrades
Danach ist /usr/bin/nvidia-smi
normalerweise direkt vorhanden.
Binary pragmatisch bereitstellen (ohne System-Downgrade)
Wenn die 580er Repo-Linie keine nvidia-smi
-Binary liefert, extrahieren wir nur die Binary aus dem 560er Paket:
apt-get download nvidia-smi=560.35.05-1
dpkg-deb -x nvidia-smi_560.35.05-1_amd64.deb /tmp/nsmi
install -D -m 0755 /tmp/nsmi/usr/lib/nvidia/current/nvidia-smi /usr/local/bin/nvidia-smi
ln -sf /usr/local/bin/nvidia-smi /usr/bin/nvidia-smi
hash -r
nvidia-smi -q | head -n 20
rm -f /usr/bin/nvidia-smi /usr/local/bin/nvidia-smi
rm -rf /tmp/nsmi
Prüfen, ob der Treiber wirklich läuft
nvidia-smi
startet auch ohne aktive GPU, zeigt dann aber z. B. „No devices were found“. Treiberstatus prüfen:
lsmod | grep -i nvidia || modprobe nvidia || true
dmesg | grep -i nvidia | tail -n 60
uname -r
Wenn das Kernelmodul fehlt oder nicht baut:
apt-get install -y dkms linux-headers-$(uname -r)
reboot
Alternative: Im Container testen
Mit nvidia-docker2
/nvidia-container-toolkit
kannst du nvidia-smi
im Container ausführen (ohne Host-Binary):
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu24.04 nvidia-smi
Fehlersuche (Kurzcheckliste)
- Repo doppelt? Datei auf doppelte Zeilen prüfen:
nl -ba '/etc/apt/sources.list.d/cuda-debian12-x86_64.list'
- zsh „bad pattern“? Eckige Klammern in Befehlen quoten:
noglob cat /etc/apt/sources.list.d/cuda-debian12-x86_64.list
- Welche Versionen verfügbar?
apt-cache policy nvidia-driver nvidia-driver-bin nvidia-alternative libnvidia-ml1
- Wo liegt die Binary?
apt-file update apt-file search -x '(^|/)nvidia-smi$'
- Secure Boot? Kann das Laden des Moduls blockieren → Logs prüfen:
dmesg | grep -i 'nvidia\|secure\|module verification'
FAQ
Ist die 560er Binary mit 580 kompatibel?
Für die reine Abfrage über NVML (nvidia-smi
) funktioniert das üblicherweise problemlos. Wir installieren keine 560er Systempakete, sondern nutzen nur die einzelne Binary.
Warum nicht einfach „apt install nvidia-smi“?
Weil dieses Paket in einigen Repositories nur ein Platzhalter/Dummy ist (liefert keine Binary). Die echte nvidia-smi
kann in anderen Paketen stecken.
Wie mache ich das rückgängig?
Symlinks/Binary entfernen:
rm -f /usr/bin/nvidia-smi /usr/local/bin/nvidia-smi
Repository-Zeilen ggf. wieder anpassen und apt-get update
.
Stand: Beispielbefehle für Debian 12/Kali, Treiberlinie 580.x. Versionsnummern bitte bei Bedarf mit apt-cache policy
prüfen.
No Comments