63 lines
2.7 KiB
Bash
Executable File
63 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
echo "=== Elden Ring AI — Dependency Installer ==="
|
|
|
|
# ── 1. System packages ────────────────────────────────────────────────────────
|
|
echo "[1/4] Installing system packages..."
|
|
sudo pacman -S --needed --noconfirm \
|
|
base-devel \
|
|
linux-headers \
|
|
v4l2loopback-dkms \
|
|
gpu-screen-recorder \
|
|
python \
|
|
python-pip
|
|
|
|
# ── 2. Persistent v4l2loopback config ─────────────────────────────────────────
|
|
echo "[2/4] Configuring v4l2loopback..."
|
|
echo 'v4l2loopback' | sudo tee /etc/modules-load.d/v4l2loopback.conf > /dev/null
|
|
echo 'options v4l2loopback devices=1 video_nr=2 card_label="EldenVision" exclusive_caps=1' \
|
|
| sudo tee /etc/modprobe.d/v4l2loopback.conf > /dev/null
|
|
sudo modprobe v4l2loopback devices=1 video_nr=2 card_label="EldenVision" exclusive_caps=1 2>/dev/null || true
|
|
|
|
# Add user to input group (needed for evdev/uinput)
|
|
sudo usermod -aG input "$USER"
|
|
echo " NOTE: Log out and back in for the input group to take effect."
|
|
|
|
# ── 3. Python venv ────────────────────────────────────────────────────────────
|
|
echo "[3/4] Setting up Python virtual environment..."
|
|
if [ ! -f "bin/activate" ]; then
|
|
python -m venv .
|
|
fi
|
|
# shellcheck disable=SC1091
|
|
source bin/activate
|
|
|
|
# ── 4. Python packages ────────────────────────────────────────────────────────
|
|
echo "[4/4] Installing Python packages..."
|
|
|
|
# Detect CUDA version from driver and map to a PyTorch wheel tag
|
|
CUDA_RAW=$(nvidia-smi 2>/dev/null | grep -oP "CUDA Version: \K[\d.]+" || echo "0")
|
|
CUDA_MAJOR=$(echo "$CUDA_RAW" | cut -d. -f1)
|
|
CUDA_MINOR=$(echo "$CUDA_RAW" | cut -d. -f2)
|
|
CUDA_NUM=$((CUDA_MAJOR * 10 + CUDA_MINOR)) # e.g. 13.2 → 132
|
|
|
|
if [ "$CUDA_NUM" -ge 130 ]; then TORCH_CU="cu130"
|
|
elif [ "$CUDA_NUM" -ge 124 ]; then TORCH_CU="cu124"
|
|
elif [ "$CUDA_NUM" -ge 121 ]; then TORCH_CU="cu121"
|
|
elif [ "$CUDA_NUM" -ge 118 ]; then TORCH_CU="cu118"
|
|
else
|
|
echo " WARNING: No supported CUDA found, installing CPU-only PyTorch."
|
|
TORCH_CU="cpu"
|
|
fi
|
|
|
|
TORCH_INDEX="https://download.pytorch.org/whl/${TORCH_CU}"
|
|
echo " CUDA ${CUDA_RAW} detected → using index: ${TORCH_INDEX}"
|
|
|
|
pip install --upgrade pip
|
|
pip install torch torchvision --index-url "$TORCH_INDEX"
|
|
pip install -r requirements.txt
|
|
|
|
echo ""
|
|
echo "=== Done! Activate the venv with: source bin/activate ==="
|
|
echo "=== Then start training with: python train.py ==="
|