ok... ok... I'll add it to git...
This commit is contained in:
Executable
+105
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
# NVIDIA Driver Upgrade Script: 470 -> 535
|
||||
# Upgrades NVIDIA driver for CUDA 12 support (required by Ollama)
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== NVIDIA Driver Upgrade: 470 -> 535 ==="
|
||||
echo ""
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "❌ This script must be run as root (use sudo)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup current state
|
||||
echo "[1/9] Backing up current container state..."
|
||||
docker ps > /tmp/nvidia-upgrade-containers-backup.txt
|
||||
echo "✅ Container list saved to /tmp/nvidia-upgrade-containers-backup.txt"
|
||||
echo ""
|
||||
|
||||
# Stop GPU containers
|
||||
echo "[2/9] Stopping GPU-using containers..."
|
||||
docker stop ollama 2>/dev/null || true
|
||||
docker stop jellyfin 2>/dev/null || true
|
||||
echo "✅ GPU containers stopped"
|
||||
echo ""
|
||||
|
||||
# Unhold NVIDIA Container Toolkit packages
|
||||
echo "[3/9] Unholding NVIDIA Container Toolkit packages..."
|
||||
echo "libnvidia-container-tools install" | dpkg --set-selections
|
||||
echo "libnvidia-container1 install" | dpkg --set-selections
|
||||
echo "nvidia-container-toolkit install" | dpkg --set-selections
|
||||
echo "nvidia-container-toolkit-base install" | dpkg --set-selections
|
||||
echo "✅ Packages unheld"
|
||||
echo ""
|
||||
|
||||
# Remove ALL driver 470 packages
|
||||
echo "[4/9] Removing ALL NVIDIA driver 470 packages..."
|
||||
apt-get purge -y 'libnvidia-*-470' 'nvidia-*-470' '*nvidia*470*' 2>&1 | grep -E "Removing|Purging|^$" || true
|
||||
apt-get purge -y nvidia-settings 2>&1 | grep -E "Removing|Purging|^$" || true
|
||||
apt-get autoremove -y > /dev/null 2>&1
|
||||
echo "✅ All driver 470 packages removed"
|
||||
echo ""
|
||||
|
||||
# Clean up package database
|
||||
echo "[5/9] Cleaning package database..."
|
||||
apt-get clean
|
||||
apt-get autoclean
|
||||
dpkg --configure -a
|
||||
apt-get install -f -y
|
||||
echo "✅ Package database cleaned"
|
||||
echo ""
|
||||
|
||||
# Update package lists
|
||||
echo "[6/9] Updating package lists..."
|
||||
apt-get update > /dev/null 2>&1
|
||||
echo "✅ Package lists updated"
|
||||
echo ""
|
||||
|
||||
# Install driver 535 with all dependencies
|
||||
echo "[7/9] Installing NVIDIA driver 535..."
|
||||
apt-get install -y --no-install-recommends \
|
||||
libnvidia-common-535 \
|
||||
libnvidia-gl-535 \
|
||||
libnvidia-compute-535 \
|
||||
libnvidia-decode-535 \
|
||||
libnvidia-encode-535 \
|
||||
nvidia-utils-535 \
|
||||
xserver-xorg-video-nvidia-535 \
|
||||
libnvidia-cfg1-535 \
|
||||
libnvidia-fbc1-535 \
|
||||
nvidia-kernel-common-535 \
|
||||
nvidia-dkms-535 \
|
||||
nvidia-driver-535 \
|
||||
nvidia-settings
|
||||
|
||||
echo "✅ Driver 535 installed"
|
||||
echo ""
|
||||
|
||||
# Update NVIDIA Container Toolkit
|
||||
echo "[8/9] Updating NVIDIA Container Toolkit..."
|
||||
apt-get install --reinstall -y nvidia-container-toolkit > /dev/null 2>&1
|
||||
nvidia-ctk runtime configure --runtime=docker > /dev/null 2>&1
|
||||
echo "✅ Container toolkit updated"
|
||||
echo ""
|
||||
|
||||
# Restart Docker
|
||||
echo "[9/9] Restarting Docker daemon..."
|
||||
systemctl restart docker
|
||||
sleep 3
|
||||
echo "✅ Docker restarted"
|
||||
echo ""
|
||||
|
||||
echo "=== Upgrade Complete ==="
|
||||
echo ""
|
||||
echo "⚠️ REBOOT REQUIRED NOW"
|
||||
echo ""
|
||||
echo "Run: sudo reboot"
|
||||
echo ""
|
||||
echo "After reboot:"
|
||||
echo " 1. Verify: nvidia-smi"
|
||||
echo " 2. Restart: cd ~/Projects/portainer-core/stacks && docker compose -f ollama.yml up -d"
|
||||
echo " 3. Test GPU: docker exec ollama ollama ps"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user