next up previous contents
Next: Anpassung der Bridgesoftware Up: Erweiterung des Kernels Previous: Die Event-Schnittstelle

Einbinden des neuen Codes

  Grundlage für den Bridging-Code ist, wie schon erwähnt wurde, die Kernelversion 2.1.59. Um den Code auf neue Kernelversionen übertragen zu können, braucht man den Patch, der im Anhang A beigefügt ist. Neue Kernelversionen finden sich im Internet unter ftp.cs.helsinki.fi/pub/Linux_Kernel oder auf einem bekannten Mirror. Die Installation des Kernels ist in der Datei README beschrieben und soll hier daher nur kurz geschildert werden.

Der Sourcecode des Kernels kommt als gepacktes TAR-Archiv. Zum Entpacken in /usr/src verwendet man GNUzip:

cd /usr/src
gzip -cd linux-2.1.XX.tar.gz | tar xfv -

Dabei bezeichnet ''XX'' die Versionsnummer des Kernels. Anschließend wird der benötigte Patch für die VLAN-Funktionalität eingespielt:

cd /usr/src
gzip -cd patchXX.gz | patch -p0

Danach können die Originaldateien (xxx~ oder xxx.orig) gelöscht werden. Schlägt der Versuch, den Kernel zu Patchen fehl, was man an Dateien mit der Endung # oder .ref erkennt, müssen die entsprechenden Dateien ,,per Hand`` gepatcht werden.

Das Standardverzeichnis für den Kernel ist /usr/src/linux. Unter /usr/include müssen symbolische Links angelegt werden (/usr/include/asm, /usr/include/linux und/usr/include/scsi):

cd /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi

Nach einem cd /usr/src/linux kann der Kernel durch die Eingabe von make config konfiguriert werden. Für das korrekte Funktionieren des Bridging-Codes müssen mindestens folgende Optionen gesetzt werden:

CONFIG_EXPERIMENTAL=y
CONFIG_NET=y
CONFIG_NETLINK=y
CONFIG_INET=y
CONFIG_BRIDGE=y
CONFIG_NET_ETHERNET=y

Wichtig ist, mit CONFIG_EXPERIMENTAL=y dafür zu sorgen, daß auch nach experimentellem Code abgefragt wird. Der Bridging-Code gehört dazu, obwohl er im vorliegenden Kernel 2.1.59 stabil läuft[*]. Für die Eventschnittstelle ist das Einbinden des netlink-Device (CONFIG_NETLINK=y) nötig. Außerdem sollten noch die Netzkarten, die sich im Rechner befinden, in den Kernel eingebunden werden. Nach der Konfiguration des Kernels finden sich alle gemachten Einträge in der Datei .config wieder.

Nach der Eingabe von make dep kann der Kernel übersetzt werden. Dazu sind die in der README-Datei angegebenen Programme mit der entsprechenden Versionsnummer notwendig. Die für die Testversion benutzte Linux-Distribution Debian 2.0 beinhaltet diese. Das Übersetzen des Kernels geschieht mittels:

make clean
make zImage
make modules
make modules_install

Anschließend ist der erstellte Kernel noch ins Rootverzeichnis zu kopieren: cp /usr/src/linux/arch/i386/boot/zImage /vmlinuz. Um von diesem Kernel booten zu können, ist noch der Aufruf vom Linux-Bootloader /sbin/lilo nötig. Leider erkennt der Linuxkernel nicht von selbst, daß mehr als eine Netzkarte im System vorhanden ist. Daher ist dem lilo durch die Option eth=0,0,eth1 mitzuteilen, daß eine zweite Karte im System steckt. Für weitergehende Dokumentation soll auf das Ethernet HOWTO [Gor] verwiesen werden, daß sich üblicherweise unter /usr/doc/HOWTO findet.

Um den Bridging-Code zu aktivieren muß die Datei /etc/init.d/bridgex dahingehend angepaßt werden, daß alle für das Bridging vorgesehenen Netzschnittstellen (eth0, eth1, ...) dort eingetragen werden. Gestartet wird der Code entweder über /etc/init.d/bridge start oder durch die Managementsoftware.


next up previous contents
Next: Anpassung der Bridgesoftware Up: Erweiterung des Kernels Previous: Die Event-Schnittstelle
Root on HPHEGER0
3/3/1999