19 May 2005 Kernel backen für Dummies
Irgendwie war ich immer zu blöd dazu, einen eigenen Kernel zu backen. Der ultimativ idiotensichere Weg für Debian-Nutzer hat dann aber doch zu Folgendem geführt:
matthias@gromit:~$ cat /etc/debian_version
3.1
matthias@gromit:~$ uname -r
2.6.11.11
(Für Nicht-Debianiten: Das ist ein Debian Sarge, dessen Standard-Kernel eigentlich ein 2.6.8 wäre, auf dem aber ein 2.6.11.10 2.6.11.11 läuft. Und der Witz ist, der Kernel ist sogar als "echtes" Debian-Paket ins System eingebunden.)
Okay, und wie geht sowas? Einfach.
- Kernel-Quellen irgendwohin (also: gerne nach $HOME) entpacken und in das besagte Verzeichnis wechseln.
Sicherstellen, dass neben den ansonsten zum Kernelbacken notwendigen Paketen (GCC & Co.) zusätzlich die Pakete kernel-package und fakeroot installiert sind (zu fakeroot gäbe es auch Alternativen, aber damit habe ich es getestet. Ansonsten ggf. nachinstallieren per apt-get install.
- Die Konfiguration des aktuell installieren Kernels (aus /boot) nach /pfad/zum/kernel/.config kopieren.
- make menuconfig, dort besagte .config als Konfigurationsdatei laden, menuconfig mittels Exit verlassen und dabei besagte .config als Konfiguration übernehmen.
- make-kpkg clean
- fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image (wenn man sich entscheiden sollte, einen Kernel ohne initrd zu verwenden, kann die Option --initrd wegfallen; mehr dazu in /usr/share/doc/kernel-package/README.gz - sollte man aber eh' lesen)
- Warten, bis der Kernel fertig gebacken ist. Dann wieder ins übergeordnete Verzeichnis wechseln, in dem bereits das fertige Kernel-deb liegt.
- mittels z.B. su Root-Rechte erlangen und als root dpkg -i kernel-image-XYZ, wobei XYZ je nach Kernel-Version variiert. Root-Status wieder loswerden, fertig (nun gut, um den neuen Kernel zu verwenden, muss man selbstredend neu booten; benutzt man immer noch lilo als Bootloader, muss lilo vor dem Reboot entsprechend konfiguriert werden, auch dazu empfehle ich ggf. die README.gz des kernel-package.
Je nach Wunsch kann man selbstverständlich in make menuconfig den Kernel noch "verschlanken". Als Lektüre für Kernelbauten sei generell die hervorragende Anleitung von Thomas Hertweck empfohlen.