Install current NVIDIA driver from official repository
This commit is contained in:
+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