Dieser Artikel ist viel zu kompliziert geschrieben und vollgestoft mit unnützen Wissens.
Ich finde diesen hier besser geschrieben:
http://de.gentoo-wiki.com/Kernel_manuell_kompilieren
Dieser bezieht sich auf gentoo, aber es werden viele Kerneloptionen gut beschrieben und das ist das Wichtigste.
Bei der Konfiguration des Kernels wird eine Konfigurationsdatei .config erzeugt. Diese Datei gibt es auch bei FreeBSD und eventuell Solaris. Die Syntax ist ganz ähnlich. Allerdings muß man bei FreeBSD den Editor benutzen um den kernel zu konfigurieren.
Im Prinzip installierst du die ncurses - Bibliothek (ncurses-dev???? Pakte), den gcc, binutils (enthält den Linker ld und einen Assembler) und das make Programm.
Du entpackst die Kernelsources unter /usr/src und gibst im Verzeichnis der Kernelsources als root den befehl "make menuconfig" ein. Dabei wird ein Dialog erzeugt, mit dem dann der kernel menügeführt konfiguriert wird (also kein Editor wie bei FreeBSD ;-)).
Dann mußt du die einzelnen Optionen durchgehen und entscheiden , ob du die Option bzw. den Treiber für deinen Rechner brauchst oder nicht (weil die Hardware nicht eingebaut ist).
Alle Treiber für die root-Partition (Dateisystem, Controller, Festplattte u.s.w) müssen monolitisch (Stern Zeichen * bei der jeweiligen kerneloption) in den Kern kompiliert werden und alle anderen Treiber können modular (Zeichen M bei der jeweiligen Kerneloption) in den Kern kompiliert werden.
Der Grund dafür ist, das ein Kernelmodul erst geladen werden kann nachdem die root-Partition gemounted wurde. Es müssen dafür Programme gestartet werden wie das modprobe Programm und das geht erst nach dem die root-Partition gemounted wurde.
Wenn die Konfiguration fertig ist ,speicherst du sie ab und gibst "make" und danach "make modules" ein um den Kernel und danach alle Module zu kompilieren.
Die Module werden mit "make modules_install " unter /lib/modules/kernel???? installiert.
Du kannst aber auch einen monolitischen Kern , also ohne Module, kompilieren .
Das wird für Server empfohlen, da monolitische Kernel nicht so leicht mit diesen rootkits angreifbar sind.
Ich meine richtige Internetserver und keinen "Home-Server".
Der fertige kernel ist unter /usr/src/kernel????/arch/Recherarchitektur..../boot/ und heißt bzImage.
Die Rechnerarchitektur hängt von deinem Prozessor ab. Für 32 bit Intel/AMD Prozessoren ist es das i386 Verzeichnis. Sparc Prozessoren von Sun Microsystems und Alpha Prozessoren von Digital haben ihre eigenen Verzeichnisse. Für AMD64 Prozessoren (Athlon64, Opteron) ist das x86_64 Verzeichnis vorgesehen. Das ia64 Verzeichnis ist für Intels Itanium 64 bit Prozessoren. Man kann daran sehr schön erkennen, das der Linuxkernel sehr portable programmiert wurde. Im Gegensatz zu Windows läuft der Linuxkernel auf vielen Rechnerarchitekturen, wobei PCs mit am preiswertesten sind.
Du kannst bzImage dann nach /boot/grub kopieren und ihn mit vmlinuz-Version??? bezeichnen und mit grub starten lassen.
Den Standardkernel behälst du für den Fehlerfall. grub kann mehrere kernel zum Booten anzeigen.
Wenn man das ein paar mal gemacht hat, ist es nicht mehr so kompliziert.
Es werden allerdings immer mehr Kerneloptionen von einer Version zur nächsten, da immer mehr Hardware unterstützt werden soll.
Ich brauche etwa 1,5 Stunden für die Kompilierung eines eigenen Kernels, wobei davon der gcc auf meinem Athlon 64 3500 MHz etwa 5 min braucht um den Kernel zu kompilieren. Mein Pentium 1 brauchte damals mehr als 1 Stunde allein für die Kompilerung des kernels mit dem gcc.