#!/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 "--------------------------------------------------------"
Für einen 7er Kernel:
#!/bin/bash
set -e
# =================================================================
# ThinkPad T450 Ultimate Kernel, System & Graphics - FINAL VERSION
# System: Debian Testing | CPU: Broadwell i5-5200U
# Build: neuester Kernel aus der 7er Reihe von kernel.org
# =================================================================
# Variablen definieren
BUILD_THREADS=$(nproc)
export DEBEMAIL="t450@user.debian"
export DEBFULLNAME="ThinkPad User"
echo "--- 1. INSTALLATION ALLER BAU-ABHAENGIGKEITEN ---"
sudo apt update
sudo apt install -y build-essential bc kmod cpio libncurses-dev bison flex libssl-dev \
libelf-dev dwarves xz-utils wget rsync python3 debhelper libdw-dev devscripts \
fakeroot ca-certificates
cd /usr/src
echo "--- 2. NEUESTE 7.x KERNEL-VERSION ERMITTELN ---"
KERNEL_TARBALL=$(wget -qO- [cdn.kernel.org](https://cdn.kernel.org/pub/linux/kernel/v7.x/) \
| grep -oE 'linux-7\.[0-9]+(\.[0-9]+)?\.tar\.xz' \
| sort -V \
| tail -n1)
if [ -z "$KERNEL_TARBALL" ]; then
echo "FEHLER: Konnte keine Kernel-7.x-Version auf kernel.org finden!"
exit 1
fi
KERNEL_VER="${KERNEL_TARBALL#linux-}"
KERNEL_VER="${KERNEL_VER%.tar.xz}"
echo "Neueste gefundene Version: $KERNEL_VER"
# Download falls nicht vorhanden
if [ ! -f "linux-$KERNEL_VER.tar.xz" ]; then
echo "Lade Kernel $KERNEL_VER herunter..."
sudo wget "[cdn.kernel.org](https://cdn.kernel.org/pub/linux/kernel/v7.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 "--- 3. 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
# Alte Config auf neuen Kernelstand anheben
yes "" | sudo make olddefconfig
echo "Setze CPU- und Scheduler-Optimierungen..."
sudo ./scripts/config --set-val CONFIG_NR_CPUS 4
# Broadwell: MCORE2 nicht erzwingen, passt nicht sauber zum i5-5200U
# sudo ./scripts/config --enable CONFIG_MCORE2
sudo ./scripts/config --enable CONFIG_PREEMPT || true
sudo ./scripts/config --disable CONFIG_PREEMPT_DYNAMIC || true
# HZ korrekt setzen
sudo ./scripts/config --disable CONFIG_HZ_100 || true
sudo ./scripts/config --disable CONFIG_HZ_250 || true
sudo ./scripts/config --disable CONFIG_HZ_300 || true
sudo ./scripts/config --enable CONFIG_HZ_1000 || true
# Performance-Fokus
# Auf Notebooks nicht immer ideal, aber nah an deinem Original belassen
sudo ./scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL || true
sudo ./scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE || true
sudo ./scripts/config --enable CONFIG_MQ_IOSCHED_KYBER || true
sudo ./scripts/config --set-str CONFIG_DEFAULT_IOSCHED "kyber" || true
# Debugging & Zertifikate (Fix fuer Build-Abbruch)
sudo ./scripts/config --disable CONFIG_DEBUG_INFO || true
sudo ./scripts/config --disable CONFIG_DEBUG_KERNEL || true
sudo ./scripts/config --disable CONFIG_DEBUG_MISC || true
sudo ./scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
sudo ./scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""
echo "Aktualisiere Kernel-Konfiguration..."
yes "" | sudo make olddefconfig
echo "Wende 'localmodconfig' an (Hardware-Check)..."
echo "Hinweis: Alle USB-Geraete/Hardware sollten eingesteckt sein!"
echo "Wenn du maximale Kompatibilitaet willst, kommentiere die naechste Zeile aus."
sudo make localmodconfig
echo "--- 4. KOMPILIEREN ---"
echo "Starte Build mit $BUILD_THREADS Threads. Das wird ca. 45-90 Min dauern..."
sudo -E fakeroot make -j"$BUILD_THREADS" bindeb-pkg LOCALVERSION=-t450
# Pruefen ob der Build erfolgreich war
if [ $? -ne 0 ]; then
echo "FEHLER: Der Kernel-Build wurde abgebrochen!"
exit 1
fi
echo "--- 5. INSTALLATION KERNEL ---"
cd ..
IMAGE_DEB=$(find /usr/src -maxdepth 1 -type f -name "linux-image-*${KERNEL_VER}*t450*.deb" ! -name "*dbg*.deb" | head -n1)
HEADERS_DEB=$(find /usr/src -maxdepth 1 -type f -name "linux-headers-*${KERNEL_VER}*t450*.deb" | head -n1)
if [ -z "$IMAGE_DEB" ] || [ -z "$HEADERS_DEB" ]; then
echo "FEHLER: Gebaute .deb-Pakete wurden nicht gefunden!"
exit 1
fi
# Installation via apt loest lokale Abhaengigkeiten sauber auf
sudo apt install -y "$IMAGE_DEB" "$HEADERS_DEB"
echo "--- 6. SYSTEM-BOOT-TUNING ---"
echo "Stelle Initramfs auf 'MODULES=dep' um..."
sudo sed -i 's/MODULES=most/MODULES=dep/' /etc/initramfs-tools/initramfs.conf || true
sudo update-initramfs -u
# Dienste deaktivieren
sudo systemctl disable NetworkManager-wait-online.service 2>/dev/null || true
sudo systemctl disable docker postgresql mariadb apache2 caddy php8.4-fpm cups ModemManager 2>/dev/null || true
echo "--- 7. 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 " - 'uname -r' -> Sollte $KERNEL_VER-t450 zeigen"
echo " - 'uname -a' -> Sollte PREEMPT anzeigen"
echo " - 'systemd-analyze' -> Pruefe Bootzeit"
echo " - 'vainfo' -> Pruefe Grafik-Beschleunigung"
echo "--------------------------------------------------------"