install_ollama_deb_fix.sh hinzugefügt

This commit is contained in:
2026-07-30 13:14:13 +02:00
parent 9b2f99a608
commit 9b7248f13b

80
install_ollama_deb_fix.sh Normal file
View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bash
# Repariert/aktiviert AMD-GPU-Nutzung in Ollama auf Debian 13 über Vulkan (Mesa/RADV).
# Beste Wahl für viele Radeon-Karten, wenn ROCm auf Debian auf CPU zurückfällt.
set -Eeuo pipefail
log() { printf '\n\033[1;32m==> %s\033[0m\n' "$*"; }
warn() { printf '\n\033[1;33mWARNUNG: %s\033[0m\n' "$*" >&2; }
die() { printf '\n\033[1;31mFEHLER: %s\033[0m\n' "$*" >&2; exit 1; }
[[ $EUID -eq 0 ]] || die "Bitte mit sudo ausführen."
[[ -r /etc/os-release ]] || die "/etc/os-release fehlt."
# shellcheck disable=SC1091
source /etc/os-release
[[ "${ID:-}" == "debian" && "${VERSION_ID:-}" == "13" ]] || \
warn "Erwartet wurde Debian 13; erkannt: ${PRETTY_NAME:-unbekannt}"
OLLAMA_BIN="$(command -v ollama || true)"
[[ -n "$OLLAMA_BIN" ]] || die "Ollama wurde nicht gefunden."
id ollama >/dev/null 2>&1 || die "Der Systembenutzer 'ollama' fehlt."
log "AMD-GPU und Kernel-Treiber anzeigen"
lspci -nnk | grep -EA4 -i 'VGA|3D|Display' || true
modprobe amdgpu || true
log "Vulkan-/Mesa-Pakete installieren"
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends \
mesa-vulkan-drivers vulkan-tools libvulkan1 libcap2-bin pciutils
if ! dpkg -s firmware-amd-graphics >/dev/null 2>&1; then
if ! apt-get install -y --no-install-recommends firmware-amd-graphics; then
warn "firmware-amd-graphics konnte nicht installiert werden. Prüfe, ob 'non-free-firmware' in den APT-Quellen aktiviert ist."
fi
fi
log "Ollama Zugriff auf AMD-Geräte geben"
for group in render video; do
getent group "$group" >/dev/null 2>&1 && usermod -aG "$group" ollama
if [[ -n "${SUDO_USER:-}" && "${SUDO_USER}" != "root" ]] && id "$SUDO_USER" >/dev/null 2>&1; then
getent group "$group" >/dev/null 2>&1 && usermod -aG "$group" "$SUDO_USER"
fi
done
# Ollama empfiehlt dies für eine zuverlässigere VRAM-Erkennung mit Vulkan.
setcap cap_perfmon+ep "$OLLAMA_BIN" || warn "cap_perfmon konnte nicht gesetzt werden. Vulkan kann trotzdem funktionieren."
log "Vulkan-Backend für den systemd-Dienst aktivieren"
install -d -m 0755 /etc/systemd/system/ollama.service.d
cat > /etc/systemd/system/ollama.service.d/30-amd-vulkan.conf <<'CONF'
[Service]
Environment="OLLAMA_VULKAN=1"
Environment="OLLAMA_DEBUG=1"
CONF
chmod 0644 /etc/systemd/system/ollama.service.d/30-amd-vulkan.conf
systemctl daemon-reload
systemctl restart ollama.service
sleep 3
log "Vulkan-Erkennung als Benutzer ollama"
sudo -u ollama vulkaninfo --summary 2>&1 | \
grep -E -i 'GPU|deviceName|deviceType|driverName|driverInfo|apiVersion' | head -n 80 || true
log "Geräte und Berechtigungen"
ls -l /dev/kfd /dev/dri/renderD* 2>/dev/null || true
id ollama
log "Ollama-Umgebung"
systemctl show ollama.service -p Environment --no-pager
log "Ollama-GPU-Erkennung im Journal"
journalctl -u ollama.service -b --no-pager -n 250 | \
grep -E -i 'vulkan|rocm|gpu|amdgpu|device|offload|inference compute|no compatible|discovery|error|warn' | tail -n 100 || true
printf '\nFertig. Starte nun ein Modell und prüfe parallel:\n'
printf ' ollama run <DEIN-MODELL>\n'
printf ' watch -n 1 ollama ps\n\n'
printf 'In der Spalte PROCESSOR sollte 100%% GPU oder ein CPU/GPU-Split stehen.\n'
printf 'Bei mehreren GPUs steht der verwendbare Vulkan-Index im Journal; dann kann GGML_VK_VISIBLE_DEVICES gesetzt werden.\n'