# 1.4 Verwendung eines modifizierten Kernels -- Compilieren eigener Module

Möchte man die Konfiguration des 2.4er Kernel für fli4l modifizieren, kann man dazu das Script mkkernel.sh in src/kernel-2.4 aus dem Src-Archive src.tar.gz verwenden. Dieses automatisiert das Bauen des Kerns.

Wie das geschieht, sieht man bei einem Aufruf der Hilfe zum Script:

        mkkernel.sh -h

Will man die Konfiguration verändern, sind folgende Schritte notwendig:

1. Alle evtl. notwendigen zusätzlichen Patches werden nach src/kernel-2.4 kopiert. Die Namen müssen dabei wie folgt lauten:

           patch_<patch name>_<kernel version>

2. Den Kern für das Konfigurieren vorbereiten:

           cd src/kernel-2.4
           mkkernel.sh -fetch  # hole den kern von www.kernel.org
           mkkernel.sh -unpack # packe ihn aus
           mkkernel.sh -patch  # wende die Patches an

   Hat man den Kern bereits lokal irgendwo liegen, kann man sich das fetch sparen und kann das Verzeichnis, in dem das Archiv liegt, als Option an mkkernel.sh mitgeben.

3. Kernel konfigurieren:

           cd linux-<kernel version>
           make xconfig #  oder config oder menuconfig
           cp .config ../dot-config

   Hat man bereits eine fertige dot-config, kann man sich 2. und 3. ganzen Schritt sparen.

4. Den Kern bauen:

           mkkernel.sh -remove # lösche alte Binaries
           mkkernel.sh -kernel # bau den Kern und seine Module
           mkkernel.sh -hisax  # bau die Hisax-Module

   Danach liegen der Kern und die Module in einer fli4l-konformen Verzeichnisstruktur unter ./out. Sollte sich die Kernelversion geändert haben, ist in der Datei config/base.txt die Variable KERNEL_VERSION anzupassen, da mkfli4l diese Variable verwendet, um die korrekte Version der Module einzupacken.

Einige andere sinvolle Optionen zu mkkernel.sh sind die folgenden:

- -all - führt alle notwendigen Aktionen aus
- -nohisax - wie all, nur ohne isdn module
- -other - baut die nicht im kernel enthaltenen Module
- -header - stellt die Linux-Header zur Verfügung, die man benötigt, um externe Module zu bauen

Das Fli4l-Team
23. Februar 2006