Install current NVIDIA driver from official repository
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
+30
-4
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user