#!/bin/bash
# =================================================================
# ThinkPad T450 Ultimate Kernel, System & Graphics - FINAL VERSION
# System: Debian Testing | CPU: Broadwell i5-5200U
# =================================================================
# Variablen definieren
KERNEL_VER="6.19.11"
BUILD_THREADS=$(nproc)
export DEBEMAIL="t450@user.debian"
export DEBFULLNAME="ThinkPad User"
echo "--- 1. INSTALLATION ALLER BAU-ABHÄNGIGKEITEN ---"
sudo apt update
sudo apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev \
xz-utils wget rsync python3 debhelper libdw-dev libva-dev devscripts vainfo \
intel-media-va-driver libva-drm2 libva-x11-2
cd /usr/src
# Download falls nicht vorhanden
if [ ! -f "linux-$KERNEL_VER.tar.xz" ]; then
echo "Lade Kernel $KERNEL_VER herunter..."
sudo wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$KERNEL_VER.tar.xz
fi
# Entpacken falls nicht vorhanden
if [ ! -d "linux-$KERNEL_VER" ]; then
echo "Entpacke Kernel..."
sudo tar -xf linux-$KERNEL_VER.tar.xz
fi
cd linux-$KERNEL_VER
echo "--- 2. KERNEL-KONFIGURATION (OPTIMIERUNG) ---"
# Bestehende Config als Basis nehmen
if [ -f /boot/config-$(uname -r) ]; then
sudo cp /boot/config-$(uname -r) .config
else
sudo make defconfig
fi
# Experten-Optionen für T450 setzen
echo "Setze CPU- und Scheduler-Optimierungen..."
sudo ./scripts/config --set-val CONFIG_NR_CPUS 4
sudo ./scripts/config --enable CONFIG_MCORE2
sudo ./scripts/config --enable CONFIG_PREEMPT
sudo ./scripts/config --disable CONFIG_PREEMPT_DYNAMIC
sudo ./scripts/config --set-val CONFIG_HZ_1000 y
# Performance-Fokus
sudo ./scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
sudo ./scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
sudo ./scripts/config --enable CONFIG_MQ_IOSCHED_KYBER
sudo ./scripts/config --set-val CONFIG_DEFAULT_IOSCHED "kyber"
# Debugging & Zertifikate (Fix für Build-Abbruch)
sudo ./scripts/config --disable CONFIG_DEBUG_INFO
sudo ./scripts/config --disable CONFIG_DEBUG_KERNEL
sudo ./scripts/config --disable CONFIG_DEBUG_MISC
sudo ./scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
sudo ./scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
echo "Wende 'localmodconfig' an (Hardware-Check)..."
# Hinweis: Alle USB-Geräte/Hardware sollte eingesteckt sein!
sudo make localmodconfig
echo "--- 3. KOMPILIEREN ---"
echo "Starte Build mit $BUILD_THREADS Threads. Das wird ca. 45-90 Min dauern..."
sudo -E make -j$BUILD_THREADS bindeb-pkg
# Prüfen ob der Build erfolgreich war
if [ $? -ne 0 ]; then
echo "FEHLER: Der Kernel-Build wurde abgebrochen!"
exit 1
fi
echo "--- 4. INSTALLATION KERNEL ---"
cd ..
# Installation via apt löst lokale Abhängigkeiten sauber auf
sudo apt install -y ./linux-image-${KERNEL_VER}*.deb ./linux-headers-${KERNEL_VER}*.deb
echo "--- 5. SYSTEM-BOOT-TUNING ---"
echo "Stelle Initramfs auf 'MODULES=dep' um..."
sudo sed -i 's/MODULES=most/MODULES=dep/' /etc/initramfs-tools/initramfs.conf
sudo update-initramfs -u
# Dienste deaktivieren
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable docker postgresql mariadb apache2 caddy php8.4-fpm cups ModemManager 2>/dev/null
echo "--- 6. GRUB UPDATE ---"
sudo update-grub
# --- ABSCHLUSS-HINWEISE ---
echo ""
echo "--------------------------------------------------------"
echo "OPTIMIERUNG ABGESCHLOSSEN!"
echo "--------------------------------------------------------"
echo "Was du jetzt noch manuell tun solltest:"
echo ""
echo "1. CHROMIUM TURBO (in chrome://flags):"
echo " - 'Zero-copy rasterizer' -> Enabled"
echo " - 'Override software rendering list' -> Enabled"
echo " - 'GPU rasterization' -> Enabled"
echo " - 'Back-forward cache' -> Enabled"
echo ""
echo "2. BROWSER ADD-ONS:"
echo " - 'enhanced-h264ify' -> VP9 & AV1 blockieren"
echo " - 'uBlock Origin' -> Werbung & Tracker blockieren"
echo ""
echo "3. SYSTEM-CHECK NACH REBOOT:"
echo " - 'systemd-analyze' -> Prüfe Bootzeit"
echo " - 'uname -a' -> Muss 'PREEMPT' anzeigen"
echo " - 'vainfo' -> Prüfe Grafik-Beschleunigung"
echo "--------------------------------------------------------"