Install current NVIDIA driver from official repository

This commit is contained in:
Mikei386
2026-08-21 13:12:37 +02:00
parent 4089bb46e6
commit 057920b941
3 changed files with 37 additions and 5 deletions
+30 -4
View File
@@ -87,16 +87,42 @@ install_nvidia() {
if ! command -v nvidia-smi >/dev/null 2>&1; then
[[ ${INSTALL_NVIDIA_DRIVER:-false} == true ]] || \
die "NVIDIA-Treiber fehlt. Installiere ihn oder setze INSTALL_NVIDIA_DRIVER=true."
log "NVIDIA-Treiber aus Debian installieren"
if ! apt-cache show nvidia-driver >/dev/null 2>&1; then
die "Paket nvidia-driver fehlt. Debian-Quellen müssen contrib, non-free und non-free-firmware enthalten."
log "Aktuellen NVIDIA-Treiber aus dem offiziellen NVIDIA-Repository installieren"
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
"linux-headers-$(uname -r)"
local distro="debian${VERSION_ID%%.*}"
local keyring_url="https://developer.download.nvidia.com/compute/cuda/repos/${distro}/x86_64/cuda-keyring_1.1-1_all.deb"
local keyring_deb
keyring_deb=$(mktemp /tmp/cuda-keyring.XXXXXX.deb)
curl --fail --location --retry 5 --output "$keyring_deb" "$keyring_url"
dpkg -i "$keyring_deb"
rm -f "$keyring_deb"
apt-get update
if [[ -n ${NVIDIA_DRIVER_BRANCH:-} ]]; then
local pinning="nvidia-driver-pinning-${NVIDIA_DRIVER_BRANCH}"
apt-cache show "$pinning" >/dev/null 2>&1 || \
die "Gewuenschter NVIDIA-Treiberzweig fehlt im offiziellen Repository: $pinning"
DEBIAN_FRONTEND=noninteractive apt-get install -y "$pinning"
fi
DEBIAN_FRONTEND=noninteractive apt-get install -y nvidia-driver firmware-misc-nonfree
# RTX 30/50 werden beide von NVIDIAs offenen Kernelmodulen unterstuetzt.
# Compute-only vermeidet X11-, Desktop- und Vulkan-Pakete auf dem Headless-Host.
DEBIAN_FRONTEND=noninteractive apt-get install -y \
nvidia-driver-cuda nvidia-kernel-open-dkms
printf '\nNVIDIA-Treiber installiert. Jetzt neu starten und danach denselben Installer erneut ausführen.\n'
exit 20
fi
nvidia-smi >/dev/null || die "nvidia-smi ist vorhanden, aber der Treiber funktioniert nicht."
local driver_major min_driver_major
driver_major=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n1 | cut -d. -f1)
min_driver_major=${NVIDIA_MIN_DRIVER_MAJOR:-570}
[[ $driver_major =~ ^[0-9]+$ ]] || die "NVIDIA-Treiberversion konnte nicht gelesen werden."
(( driver_major >= min_driver_major )) || \
die "NVIDIA-Treiber $driver_major ist zu alt; mindestens $min_driver_major wird verlangt."
log "NVIDIA Container Toolkit installieren"
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg