fix(xtts): LLM auf der GPU + Container finden nach dem Reboot den RVS
Zwei Ursachen, beide auf der KI-Box nachgewiesen:
1. llama.cpp fand auch mit Treiber 615 keine Karte ("unsupported display
driver / cuda driver combination"). Das llama-swap-Image traegt in seiner
ld.so.conf die eigene CUDA-Kompatibilitaets-libcuda (575) VOR dem vom
Container-Toolkit eingehaengten Host-Treiber (615) ein. Die Kompatibilitaets-
bibliothek hilft nur Rechenzentrumskarten; bei GeForce scheitert llama.cpp
damit — mit aelterem Treiber ("forward compatibility …") wie mit neuerem —
und rechnet still auf der CPU. Jetzt LD_LIBRARY_PATH mit dem Host-Treiber
zuerst. Auf der Box getestet: llama.cpp sieht CUDA0 + CUDA1. Whisper und
F5-TTS (andere Images) sehen ihre Karte mit 615 ohnehin.
2. Nach dem Reboot erreichte kein Container den RVS ("Temporary failure in name
resolution"). Debian traegt die Netzwerkkarte als allow-hotplug ein; darauf
wartet network-online.target nicht. Docker startete die Container 2 s nach
"online", bevor DHCP den DNS-Server lieferte ("DNS resolver has no external
nameservers"), und die Container behalten diesen leeren Stand. Passiert bei
jedem Reboot. bootstrap.sh legt jetzt ein systemd-Drop-in an: Docker wartet
vor dem Start bis zu 90 s auf einen Nameserver in /etc/resolv.conf, dann
startet es trotzdem. Netzkonfiguration bleibt unangetastet. Escaping und
beide Pfade (DNS da / nicht da) in einer echten systemd-Unit getestet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -252,6 +252,33 @@ if [[ "$DO_UPGRADE_DRIVER" -eq 1 ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# ── 2c. Docker wartet beim Booten auf DNS ──
|
||||
# Debian traegt die Netzwerkkarte als "allow-hotplug" ein — darauf wartet
|
||||
# network-online.target NICHT. Docker startet die Container dann, bevor DHCP den
|
||||
# DNS-Server geliefert hat ("DNS resolver has no external nameservers"), und die
|
||||
# Container behalten diesen leeren Stand: kein RVS, keine Verbindung, bis man
|
||||
# sie neu erzeugt. Passiert bei jedem Reboot.
|
||||
# Abhilfe ohne die Netzkonfiguration anzufassen: Docker wartet vor dem Start bis
|
||||
# zu 90 s, bis /etc/resolv.conf einen Nameserver hat.
|
||||
step "Docker wartet beim Booten auf DNS"
|
||||
DROPIN=/etc/systemd/system/docker.service.d/aria-wait-dns.conf
|
||||
if [[ -f "$DROPIN" ]]; then
|
||||
ok "schon eingerichtet ($DROPIN)"
|
||||
else
|
||||
mkdir -p "$(dirname "$DROPIN")"
|
||||
cat > "$DROPIN" <<'EOF'
|
||||
# ARIA bootstrap.sh: Container erst starten, wenn DNS da ist (sonst merken sie
|
||||
# sich "keine Nameserver" und erreichen den RVS nie). Siehe xtts/bootstrap.sh.
|
||||
[Unit]
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
[Service]
|
||||
ExecStartPre=/bin/sh -c 'for i in $(seq 1 90); do grep -q "^nameserver" /etc/resolv.conf && exit 0; sleep 1; done; echo "kein DNS nach 90 s — starte trotzdem"; exit 0'
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
ok "eingerichtet — greift ab dem naechsten Boot"
|
||||
fi
|
||||
|
||||
# ── 3. NVIDIA-Treiber ──
|
||||
step "NVIDIA-Treiber"
|
||||
if nvidia-smi >/dev/null 2>&1; then
|
||||
|
||||
Reference in New Issue
Block a user