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
|
# Installing a new NVIDIA driver can require one reboot. In that case this
|
||||||
# installer exits with code 20; rerun the same command after reboot.
|
# installer exits with code 20; rerun the same command after reboot.
|
||||||
INSTALL_NVIDIA_DRIVER=true
|
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
|
TEXT_GPU_DEVICES=0
|
||||||
SECONDARY_GPU_DEVICES=1
|
SECONDARY_GPU_DEVICES=1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
# Installation auf einem frischen Debian-Host
|
# Installation auf einem frischen Debian-Host
|
||||||
|
|
||||||
Der automatisierte Weg ist `install.sh`. Das Skript ist für **Debian 12/13
|
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
|
WireGuard, baut llama.cpp reproduzierbar, lädt Modelle mit SHA256-Prüfung und
|
||||||
startet den Stack.
|
startet den Stack.
|
||||||
|
|
||||||
|
|||||||
+30
-4
@@ -87,16 +87,42 @@ install_nvidia() {
|
|||||||
if ! command -v nvidia-smi >/dev/null 2>&1; then
|
if ! command -v nvidia-smi >/dev/null 2>&1; then
|
||||||
[[ ${INSTALL_NVIDIA_DRIVER:-false} == true ]] || \
|
[[ ${INSTALL_NVIDIA_DRIVER:-false} == true ]] || \
|
||||||
die "NVIDIA-Treiber fehlt. Installiere ihn oder setze INSTALL_NVIDIA_DRIVER=true."
|
die "NVIDIA-Treiber fehlt. Installiere ihn oder setze INSTALL_NVIDIA_DRIVER=true."
|
||||||
log "NVIDIA-Treiber aus Debian installieren"
|
log "Aktuellen NVIDIA-Treiber aus dem offiziellen NVIDIA-Repository installieren"
|
||||||
if ! apt-cache show nvidia-driver >/dev/null 2>&1; then
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
die "Paket nvidia-driver fehlt. Debian-Quellen müssen contrib, non-free und non-free-firmware enthalten."
|
"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
|
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'
|
printf '\nNVIDIA-Treiber installiert. Jetzt neu starten und danach denselben Installer erneut ausführen.\n'
|
||||||
exit 20
|
exit 20
|
||||||
fi
|
fi
|
||||||
nvidia-smi >/dev/null || die "nvidia-smi ist vorhanden, aber der Treiber funktioniert nicht."
|
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"
|
log "NVIDIA Container Toolkit installieren"
|
||||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
|
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
|
||||||
gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
|
gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
|
||||||
|
|||||||
Reference in New Issue
Block a user