Linux-Kernel für Debian Testing auf T450 i5 5200U optimieren

#!/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 "--------------------------------------------------------"

Schreibe einen Kommentar