From 057920b94176d0f9a47e5286d108b39c62e5d547 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:12:37 +0200 Subject: [PATCH] Install current NVIDIA driver from official repository --- config/install.env.example | 4 ++++ docs/INSTALLATION.md | 4 +++- install.sh | 34 ++++++++++++++++++++++++++++++---- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/config/install.env.example b/config/install.env.example index f5b7bfb..8403d60 100644 --- a/config/install.env.example +++ b/config/install.env.example @@ -9,6 +9,10 @@ MODEL_DIR=/srv/mike-ai/models # Installing a new NVIDIA driver can require one reboot. In that case this # installer exits with code 20; rerun the same command after reboot. INSTALL_NVIDIA_DRIVER=true +# Optional: auf einen im offiziellen NVIDIA-Repository vorhandenen Hauptzweig +# festlegen (z. B. 610). Leer lassen, um dem aktuellen stabilen Zweig zu folgen. +NVIDIA_DRIVER_BRANCH= +NVIDIA_MIN_DRIVER_MAJOR=570 TEXT_GPU_DEVICES=0 SECONDARY_GPU_DEVICES=1 diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 9e188b1..70e6c43 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -1,7 +1,9 @@ # Installation auf einem frischen Debian-Host Der automatisierte Weg ist `install.sh`. Das Skript ist für **Debian 12/13 -amd64** gedacht, installiert Docker CE, NVIDIA-Treiber/Container-Toolkit, +amd64** gedacht, installiert Docker CE, den aktuellen Compute-only-NVIDIA-Treiber +mit offenen Kernelmodulen aus dem offiziellen NVIDIA-Repository, das +NVIDIA-Container-Toolkit, WireGuard, baut llama.cpp reproduzierbar, lädt Modelle mit SHA256-Prüfung und startet den Stack. diff --git a/install.sh b/install.sh index 14495fa..3ea4016 100755 --- a/install.sh +++ b/install.sh @@ -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