Einen Router bauen
arrow.gif Entwicklungsumgebung
arrow.gif Hardware Plattformen
arrow.gif Slackware Router
arrow.gif Downloads
   
Weiterentwicklung
arrow.gif Tasks pending
arrow.gif Bugs
   
Informationen
arrow.gif Security
arrow.gif FAQ
arrow.gif Links
 
Slackware Linux Router
Prev Next

4. Kernel kompilieren

4.1 Übersicht

Für den Einsatz auf dem Router muss ein Kernel erzeugt werden, der die Hardware des Zielsystems unterstützt und der die nötigen Routing- und Filterfunktionen zur Verfügung stellt. Zum Kompilieren des Kernels wird der Entwickungsrechner DEVBOX verwendet.

4.2 Vorbereitung

Sicherstellen, dass der C-Compiler auf dem Entwicklungsrechner installiert ist und funktioniert.

Die Kernelsource in ein geeignetes Verzeichnis kopieren, z.B. /home/myname/kernel/ und entpacken (Platzbedarf: ca. 200 MB).

myname@DEVBOX:~/kernel $ tar -xjvf linux-2.x.xx.tar.bz2
 

Einen Link anlegen, der auf den Kernel Source-Tree weist.

myname@DEVBOX:~/kernel $ ln -s linux-2.x.xx linux
 

Ins Verzeichnis /home/myname/kernel/linux/ wechseln und den Parameter EXTRAVERSION im «Makefile» anpassen:

EXTRAVERSION=_build_2003-10-10
 

Sicherstellen, dass die Kernel Sources korrekt installiert sind:

myname@DEVBOX:~/kernel/linux $ make mrproper
 

4.3 Kernel konfigurieren

Ein Beispiel eines .config-Files steht unter Downloads zur Verfügung. Den Konfigurator starten:

myname@DEVBOX:~/kernel/linux $ make menuconfig
Load an Alternate Configuration File
 

Auf Intel-kompatiblen-Systemen als Prozessortyp «586» wählen. Router Boards, Set-Top-Boxes und verwandte Hardware sollten mit dieser Einstellung klarkommen.

Processor type and features --->
(586/K5/5x86/6x86/6x86MX. Processor family)
(X) 586/K5/5x86/6x86/6x86MX
 

Für die Netzwerkkarten müssen die passenden Treiber unter «Network device support» eingetragen werden.

Der Kernel-Support für die serielle Konsole wird unter «Character devices» aktiviert.

Nach Abschluss der Konfiguration menuconfig mit Exit verlassen und die Einstellungen sichern. Damit steht ein neues Konfigurationsfile /home/myname/kernel/linux/.config zur Verfügung.

4.4 Kernel kompilieren

Die Überreste von vorgängigen Kompilations-Durchläufen entfernen. (Achtung: make mrproper löscht auch .config.)

myname@DEVBOX:~/kernel/linux $ make mrproper
 

Eventuell vorhandene Objektdateien entfernen.

myname@DEVBOX:~/kernel/linux $ make clean
 

Die .depend-Dateien erzeugen, welche die Abhängigkeiten zwischen den Quellcodemodulen beschreiben. (Für Kernel 2.6.x nicht nötig.)

myname@DEVBOX:~/kernel/linux $ make dep 2>dep_errs.txt
 

Den Kernel kompilieren.

myname@DEVBOX:~/kernel/linux $ make bzImage 2>compile_errs.txt
 

Der neu erzeugte Kernel befindet sich unter:

/home/myname/kernel/linux/arch/i386/boot/bzImage
 

4.5 Kernel testen

Den Kernel ins boot-Verzeichnis von SLACK_LNX kopieren.

# mount /dev/hda5 /tmp
# cp /home/myname/kernel/linux/arch/i386/boot/bzImage /tmp/boot/vmlinuz-2.x.xx.stb
 

Auf Intel Systemen sollte der Kernel lauffähig sein. Er kann somit auf dem Rechner DEVBOX getestet werden. Dazu SLACK_LNX booten und einen Link auf den neuen Kernel anlegen:

# ln -s /boot/vmlinuz-2.x.xx.stb /boot/linux
 

Die Datei /etc/lilo.conf von SLACK_LNX angepassen.

image = /boot/linux
root = /dev/hda5
label = linux
 

LILO updaten.

# lilo
 

Prev Home Next
Slackware installieren Content Serielle Konsole