Technologieführer

Kernel manuell bauen — traditionelle Methode

6 min read Linux Aktualisiert 25 Sep 2025
Kernel manuell bauen — traditionelle Methode
Kernel manuell bauen — traditionelle Methode

Kurzübersicht

Dieser Leitfaden beschreibt eine konservative, verteilungsunabhängige Methode, um einen Kernel aus den offiziellen Quellen zu bauen. Er eignet sich für Entwickler, Administratoren und Power-User, die volle Kontrolle über Kernel-Konfiguration und Module brauchen. Begriffe in einer Linie erklärt:

  • Kernel-Image: Die ausführbare Kernel-Datei (z. B. vmlinuz-…)
  • .config: Die Konfigurationsdatei, die Optionen für den Kernel-Build enthält
  • Patch / Prepatch: Ergänzende Änderungen, um neue Features oder Geräteunterstützung hinzuzufügen

Wichtig: Erstellen Sie Backups, testen Sie auf einer nicht-produktiven Maschine oder in einer VM, und behalten Sie immer einen funktionierenden Kernel im GRUB-Menü.


3 Kernel auf traditionelle Weise bauen

Dieses Kapitel beschreibt eine Methode, die auf jedem Linux-System funktioniert. Da hier nichts Fedora-spezifisch ist, erzeugen Sie damit kein Kernel-RPM oder ähnliches Paket. Sie erhalten stattdessen ein Kernel-Image und dazugehörige Dateien, die im Bootloader eingetragen werden.

3.1 Herunterladen der Kernel-Quellen

Wir laden die gewünschte Kernel-Version nach /usr/src herunter. Besuchen Sie https://www.kernel.org und wählen Sie die gewünschte Version aus, z. B. linux-2.6.18.2.tar.bz2 (alle 2.6-Kernel finden Sie im Archiv: http://www.kernel.org/pub/linux/kernel/v2.6/).

Beispiel: So laden Sie die Quellen nach /usr/src herunter:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.2.tar.bz2

Packen Sie die Quellen aus und erstellen Sie einen Symlink namens linux auf das Quellverzeichnis:

tar xjf linux-2.6.18.2.tar.bz2
ln -s linux-2.6.18.2 linux
cd /usr/src/linux

Hinweis: Verwenden Sie immer die Version, die Sie wirklich benötigen. Für experimentelle oder noch nicht vollständig veröffentlichte Features können Prepatches nötig sein (siehe Abschnitt 3.2).

3.2 Patches auf die Quellen anwenden (optional)

Manchmal benötigen Sie Treiber oder Features, die in der gewünschten Kernelversion noch nicht enthalten sind. Solche Änderungen liegen oft als Patch-Datei vor. Legen wir an, die Datei heißt patch.bz2 und liegt in /usr/src. Anwenden (im Verzeichnis /usr/src/linux):

bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1

Der erste Befehl testet nur, ob der Patch anwendbar ist. Wenn er Fehler meldet, führen Sie den zweiten Befehl nicht aus. Entfernen oder beheben Sie Konflikte, bevor Sie fortfahren.

Prepatches: Wenn Sie ein Feature benötigen, das nur in z. B. 2.6.19-rc5 verfügbar ist, aber die vollständigen Quellen noch nicht veröffentlicht sind, laden Sie die vorherige Vollversion (z. B. 2.6.18) und wenden den Prepatch an. Beispiel:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc5.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc5.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc5.bz2 | patch -p1

Wichtig: Prepatches müssen auf die vorherige volle Release-Version angewendet werden, nicht auf Zwischen-Patches.

3.3 Kernel konfigurieren

Als Basis verwenden Sie am besten die Konfiguration Ihres aktuell laufenden Kernels. Das reduziert Überraschungen beim Booten. Führen Sie im Quellverzeichnis aus:

make mrproper
cp /boot/config-`uname -r` ./.config

Dann starten Sie die Konfigurationsoberfläche:

make menuconfig

Wählen Sie im Menü “Load an Alternate Configuration File” und laden Sie die Datei .config, die Sie kopiert haben. Dadurch werden Ihre aktuellen Einstellungen übernommen. Navigieren Sie danach durch die Menüs und ändern Sie Optionen nach Bedarf. Wenn Sie fertig sind, wählen Sie Exit und beantworten Sie die Frage “Do you wish to save your new kernel configuration?” mit Yes.

Kernel-Konfigurationsmenü mit Option zum Laden einer alternativen Konfigurationsdatei

Kernel-Konfigurationsmenü: .config als alternative Datei auswählen

Dialog: Speichern der neuen Kernel-Konfiguration bestätigen

Tipp: Wenn Sie unsicher sind, markieren Sie optionale Treiber als modular (M). So können Sie Module nachladen, ohne den Kernel neu bauen zu müssen.

3.4 Kernel bauen und installieren

Führen Sie folgende Befehle im Quellverzeichnis aus:

make all
make modules_install
make install

Der Build kann je nach Prozessorleistung und gewählter Konfiguration mehrere Stunden dauern. Der letzte Befehl legt in der Regel das Kernel-Image, ein initrd und Einträge im Bootloader an (bei klassischen Systemen z. B. /boot/grub/menu.lst).

Bearbeiten Sie die Bootloader-Konfiguration, damit Ihr System standardmäßig mit dem neuen Kernel startet. In GRUB (ältere GRUB 0.97/legacy) ist dies /boot/grub/menu.lst oder /boot/grub/grub.conf. Setzen Sie default=0, damit der oberste Menüeintrag startet:

vi /boot/grub/menu.lst

Meine menu.lst sieht so aus:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Fedora Core (2.6.18.2)
        root (hd0,0)
        kernel /vmlinuz-2.6.18.2 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18.2.img

title Fedora Core (2.6.18-1.2798.fc6)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-1.2798.fc6.img

Starten Sie neu:

shutdown -r now

Wenn alles klappt, startet das System mit dem neuen Kernel. Prüfen Sie mit:

uname -r

Sie sollten die neue Versionsnummer sehen, z. B. 2.6.18.2.

Wenn das System nicht startet, wählen Sie beim GRUB-Bootscreen einen älteren, funktionierenden Kernel aus:

GRUB-Startbildschirm: Hinweis

Drücken Sie eine Taste, um das GRUB-Menü anzuzeigen:

GRUB-Menü mit Auswahl der Kernel-Versionen

Wählen Sie dann Ihren vorherigen Kernel und starten Sie. Entfernen Sie anschließend die fehlerhafte Strophe aus /boot/grub/menu.lst.

Checkliste: Vor dem Kompilieren

  • Backup Ihrer wichtigen Daten.
  • Funktionierenden Kernel im GRUB behalten.
  • Genügend freier Speicherplatz in /usr/src und /boot (mehrere hundert MB bis einige GB je nach Konfiguration).
  • Installierte Compiler-Toolchain (gcc, make, binutils) und Kernel-Build-Abhängigkeiten.
  • Netzwerkzugang für eventuelle Patches oder Module.

Troubleshooting-Runbook (Kurz)

  1. Build-Fehler (Komplilierung bricht ab):
    • Prüfen Sie die Fehlermeldung im letzten Build-Output.
    • Fehlende Abhängigkeiten installieren (Header, libc-dev, etc.).
    • Bei Modulfehlern: betreffende Option in .config als Modul setzen und neu bauen.
  2. System startet nicht nach Boot:
    • Beim GRUB-Menü alten Kernel auswählen.
    • initrd prüfen: existiert /boot/initrd-.img?
    • Boot-Parameter (root=…) kontrollieren.
  3. Netzwerk / Hardware fehlt nach Boot:
    • Prüfen Sie, ob Treiber als Modul (M) oder fest (Y) gebaut wurden.
    • Module mit modprobe nachladen.

Entscheidungshilfe: Wann manuell bauen vs. Distribution-Paket

flowchart TD
  A[Benötigen Sie spezielle Kernel-Features?] -->|Ja| B[Manuell bauen]
  A -->|Nein| C[Distribution-Kernel verwenden]
  B --> D{Brauchen Sie ein Paket?}
  D -->|Ja| E[Erstellen Sie ein RPM/DEB-Paket aus den Quellen]
  D -->|Nein| F[Direkt bauen und installieren]
  C --> G[Verwaltung durch Distribution & Updates]

Kurz: Bauen Sie manuell, wenn Sie spezifische Optionen, Patches oder Modifikationen brauchen. Für Stabilität, Sicherheitsupdates und einfache Verwaltung sind Distribution-Kernel oft besser.

Rolle-basierte Checkliste

  • Administrator:
    • Backup planen, Recovery-Plan bereitstellen, Bootloader-Einträge prüfen.
  • Entwickler:
    • Konfiguration dokumentieren, Debug-Symbole behalten, Reproduzierbarkeit sicherstellen.
  • Tester:
    • Acceptance-Tests (siehe Kriterien), Hardware-Kompatibilität prüfen, Regressions-Tests laufen lassen.

Kriterien für Erfolg

  • System bootet mit neuem Kernel.
  • Kernelfunktionen, die Sie benötigen (Netzwerk, Dateisysteme, spezielle Treiber) funktionieren.
  • Keine Kernel-Panics oder regressionsbedingte Abstürze unter typischer Last.

Mini-Methodik: Sicheres Vorgehen in 6 Schritten

  1. Quelle herunterladen und Prüfsumme validieren (wenn verfügbar).
  2. .config aus dem laufenden Kernel kopieren.
  3. Konfiguration anpassen (Module bevorzugen).
  4. Build auf Testsystem/VM durchführen.
  5. Installieren und Eintrag im Bootloader setzen.
  6. Testen, Monitoring aktivieren, ggf. zurückrollen.

Sicherheit und Datenschutz

  • Bauen Sie Kernel nicht mit eingeschränkten Sicherheitsfeatures, wenn Sie erhöhte Sicherheit benötigen (z. B. SELinux-Komponenten deaktiviert).
  • Proprietäre und nicht vertrauenswürdige Patches können Sicherheitsrisiken bringen. Verwenden Sie nur Patches aus vertrauenswürdigen Quellen.
  • Beachten Sie unternehmenseigene Richtlinien zur Softwarelieferkette.

Mögliche Fehlerfälle / Wann diese Methode nicht passt

  • Sie benötigen Integration in das Distribution-Paketmanagement (Updates, Signaturen, automatisierte Rollouts): Verwenden Sie stattdessen Distribution-spezifische Packaging-Workflows.
  • Langfristiger Support und Sicherheitsupdates sind kritisch: Setzen Sie auf Distribution-Kernel oder Backport-Strategien.

Kurze Zusammenfassung

Manuelles Bauen des Kernels gibt maximale Kontrolle. Es erfordert aber Sorgfalt: Konfiguration, Patches und Bootloader-Anpassungen müssen korrekt sein. Testen Sie auf Nicht-Produktivsystemen und behalten Sie immer einen funktionierenden Kernel als Fallback.

Wichtiger Hinweis: Entfernen Sie nicht voreilig ältere Kernel-Einträge, solange Sie das neue System nicht verlässlich geprüft haben.


4 Links

Autor
Redaktion

Ähnliche Materialien

WireGuard auf CentOS 8: Installation & Konfiguration
VPN

WireGuard auf CentOS 8: Installation & Konfiguration

24 GB Speicher freimachen nach Windows 10 Update
Windows

24 GB Speicher freimachen nach Windows 10 Update

Kurierfahrer werden: Arbeit, Bezahlung, Tipps
Karriere

Kurierfahrer werden: Arbeit, Bezahlung, Tipps

Cache in Microsoft Edge löschen – Anleitung
Browser

Cache in Microsoft Edge löschen – Anleitung

My Family Cinema nicht bei Google Play – APK sicher installieren
Anleitung

My Family Cinema nicht bei Google Play – APK sicher installieren

Single Wrench: Sichere Dateifreigabe für KMU
Dateifreigabe

Single Wrench: Sichere Dateifreigabe für KMU