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.
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:
Drücken Sie eine Taste, um das GRUB-Menü anzuzeigen:
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)
- 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.
- System startet nicht nach Boot:
- Beim GRUB-Menü alten Kernel auswählen.
- initrd prüfen: existiert /boot/initrd-
.img? - Boot-Parameter (root=…) kontrollieren.
- 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
- Quelle herunterladen und Prüfsumme validieren (wenn verfügbar).
- .config aus dem laufenden Kernel kopieren.
- Konfiguration anpassen (Module bevorzugen).
- Build auf Testsystem/VM durchführen.
- Installieren und Eintrag im Bootloader setzen.
- 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
- Fedora: http://fedora.redhat.com
- Fedora Wiki: http://fedoraproject.org/wiki
- The Linux Kernel Archives: http://www.kernel.org
Ähnliche Materialien

WireGuard auf CentOS 8: Installation & Konfiguration

24 GB Speicher freimachen nach Windows 10 Update

Kurierfahrer werden: Arbeit, Bezahlung, Tipps

Cache in Microsoft Edge löschen – Anleitung

My Family Cinema nicht bei Google Play – APK sicher installieren
