This repository has been archived on 2026-08-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-08-20 00:45:43 +02:00

110 lines
4.1 KiB
Bash

#!/bin/bash
# =============================================================================
# Step 5: Install Patched amdgpu Module
# =============================================================================
# Installs the patched amdgpu.ko.zst module, backs up the original,
# runs depmod, and rebuilds initramfs.
#
# Usage: sudo bash 05_install_module.sh [path_to_amdgpu.ko.zst]
# If no path given, looks in the default build location.
#
# IMPORTANT: Reboot after running this script!
# =============================================================================
set -euo pipefail
KERNEL_VER="$(uname -r)"
MODULE_DIR="/lib/modules/$KERNEL_VER/kernel/drivers/gpu/drm/amd/amdgpu"
ORIGINAL="$MODULE_DIR/amdgpu.ko.zst"
# Find the module to install
if [[ -n "${1:-}" ]]; then
NEW_MODULE="$1"
else
# Try default build location
NEW_MODULE="$HOME/kernel-build/linux-cachyos/src/linux-*/drivers/gpu/drm/amd/amdgpu/amdgpu.ko.zst"
NEW_MODULE=$(ls $NEW_MODULE 2>/dev/null | head -1 || true)
fi
if [[ -z "$NEW_MODULE" || ! -f "$NEW_MODULE" ]]; then
echo "ERROR: No module found. Provide path as argument:"
echo " sudo bash $0 /path/to/amdgpu.ko.zst"
exit 1
fi
echo "============================================"
echo " Installing Patched amdgpu Module"
echo "============================================"
echo ""
echo " Kernel: $KERNEL_VER"
echo " Source: $NEW_MODULE"
echo " Target: $ORIGINAL"
echo ""
# ─────────────────────────────────────────────
# 1. Backup Original Module
# ─────────────────────────────────────────────
echo "[1/4] Backing up original module..."
if [[ -f "$ORIGINAL" && ! -f "$ORIGINAL.orig" ]]; then
sudo cp "$ORIGINAL" "$ORIGINAL.orig"
echo " Backup: $ORIGINAL.orig"
elif [[ -f "$ORIGINAL.orig" ]]; then
echo " Backup already exists: $ORIGINAL.orig"
else
echo " WARNING: Original module not found at $ORIGINAL"
fi
# ─────────────────────────────────────────────
# 2. Install New Module
# ─────────────────────────────────────────────
echo "[2/4] Installing patched module..."
sudo cp "$NEW_MODULE" "$ORIGINAL"
echo " Installed: $(ls -lh "$ORIGINAL" | awk '{print $5, $9}')"
# ─────────────────────────────────────────────
# 3. Run depmod
# ─────────────────────────────────────────────
echo "[3/4] Running depmod..."
sudo depmod -a "$KERNEL_VER"
echo " Done."
# ─────────────────────────────────────────────
# 4. Rebuild Initramfs
# ─────────────────────────────────────────────
echo "[4/4] Rebuilding initramfs..."
if command -v mkinitcpio &>/dev/null; then
# Arch/CachyOS
sudo mkinitcpio -P
echo " mkinitcpio completed."
elif command -v dracut &>/dev/null; then
sudo dracut --force
echo " dracut completed."
elif command -v update-initramfs &>/dev/null; then
sudo update-initramfs -u
echo " update-initramfs completed."
fi
# Update bootloader if Limine
if command -v limine-update &>/dev/null; then
echo " Updating Limine bootloader..."
sudo limine-update
echo " Limine updated."
fi
echo ""
echo "============================================"
echo " Module installed successfully!"
echo "============================================"
echo ""
echo " REBOOT NOW to load the patched module:"
echo " sudo reboot"
echo ""
echo " After reboot, run 06_verify_installation.sh"
echo ""
echo " To restore original module if needed:"
echo " sudo cp $ORIGINAL.orig $ORIGINAL"
echo " sudo depmod -a $KERNEL_VER"
echo " sudo mkinitcpio -P && sudo limine-update"
echo " sudo reboot"