-
Die Kernelversion bestimmen
-
Vorkompilierte Kernelmodule
-
Das Kernelmodul selbst kompilieren
Red Hat liefert keine AppleTalk-Kernelmodule für Red Hat Enterprise Linux 4. Für die gängigsten Systeme bietet HELIOS vorkompilierte Kernelmodule an. Alternativ können Sie die Kernelmodule auch selbst kompilieren.
Hinweis: Zwar wird in dieser Anleitung das Kompilieren des Kernels für Red Hat Enterprise Linux 4 beschrieben, allerdings sollte dies für andere Distributionen ähnlich sein.
1. Die Kernelversion bestimmen
Um Ihre genaue Kernelversion sowie Details zu den Patches herauszufinden, geben Sie in einer Shell den folgenden Befehl ein:
# uname -r
2.6.9-55.ELsmp
Um die Prozessor-Architektur herauszufinden, geben Sie in einer Shell folgenden Befehl ein:
# uname -m
i386
|
i386 oder i686
x86_64
|
32-bit-Architektur
64-bit-Architektur
|
2. Vorkompilierte Kernelmodule
Die meisten Benutzer sollten mit vorkompilierten Kernelmodulen gut zurecht kommen. Die Installation ansich ist sehr einfach.
Es stehen drei Module zum Download bereit:
Red Hat Enterprise Linux 4 32-Bit (Single-CPU)
Red Hat Enterprise Linux 4 32-Bit SMP*
Red Hat Enterprise Linux 4 64-Bit SMP*
* Symmetric Multiprocessing
Hinweis: Wir haben die Module für die aktuelle Kernelversion 2.6.9-55 kompiliert. Andere oder zukünftige Kernel-Patches, die Level 55 ersetzen, sind von uns noch nicht getestet worden und müssen gegebenenfalls von Hand kompiliert werden.
Die vorkompilierten Kernelmodule können hier heruntergeladen werden:
Benutzername: tools
Kennwort: tools
-
Melden Sie sich an WebShare an und gehen Sie zum Sharepoint HELIOS Tools. Öffnen Sie den Ordner „RHEL4 AppleTalk modules“ und markieren Sie das „.tar“-Archiv, welches das für Ihr System geeignete Kernelmodul enthält. Wählen Sie dann aus der Menüleiste „Transfer“ > „Download“ zum Herunterladen der Daten.
-
Geben Sie dann folgenden Befehl ein, um das Archiv zu entpacken:
# cd /usr/local/helios
# tar xf <archive_name>
-
Das Archiv enthält 2 Dateien:
-
Das Kernelmodul („HELIOSDIR/etc/kernel/appletalk.ko“)
-
Das Vorbereitungsskript, welches das Kernelmodul beim Start der HELIOS Dienste lädt („HELIOSDIR/etc/startstop/31helatalk“)
3. Das Kernelmodul selbst kompilieren
Hinweis: Dieser Abschnitt richtet sich an Benutzer mit umfangreichen Kenntnissen.
-
Melden Sie sich an einer Shell als „root“ an (weder „sudo“ noch „su“!).
-
Da Red Hat nicht alle Kernelsourcen zur Verfügung stellt, müssen Sie die Sourcen von www.kernel.org herunterladen.
-
Prüfen Sie die Details Ihrer Kernelversion (siehe 1. Die Kernelversion bestimmen).
-
Besorgen Sie sich auf www.kernel.org die Kernelsource für Kernel 2.6.9
Direkter Downloadlink: www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz
-
Legen Sie ein neues Verzeichnis für die Kernelsource an, in welches Sie anschließend wechseln:
# mkdir /usr/src/kernel.org
# cd /usr/src/kernel.org
-
Kopieren Sie den heruntergeladenen Kernel in das neu angelegte Verzeichnis und entpacken Sie diesen mit folgendem Befehl:
# tar xzf linux-2.6.9.tar.gz
-
Wichtig: Das Verzeichnis der Kernelsource muss im Pfad „/usr/src/linux“ verfügbar sein. Legen Sie also einen symbolischen Link dorthin an und wechseln Sie in das Verzeichnis:
# cd /usr/src
# ln -s kernel.org/linux-2.6.9 linux
# cd linux
-
Kopieren Sie die Konfigurationsdatei des laufenden „Red Hat“-Kernels (uname -r prüfen!) aus dem Verzeichnis „/boot“ in das aktuelle Verzeichnis:
# cp /boot/config-2.6.9-55.ELsmp .config
Hinweis: In den meisten Installationen gibt es mehrere Konfigurationsdateien. Vergewissern Sie sich, dass Sie die Konfigurationsdatei mit der korrekten Version kopieren.
-
Aktivieren Sie das AppleTalk-Modul in der Konfiguration des Kernels mittels der Option „menuconfig“:
# make menuconfig
Öffnen Sie „Device Drivers“ > „Networking support“ > „Networking options“ und suchen Sie nach dem Eintrag „Appletalk protocol support“. Drücken Sie die Leertaste bis „M“ (für „module“) erscheint. Wählen Sie dann solange „Exit“, bis Sie gefragt werden, ob die Konfiguration gespeichert werden soll. Speichern Sie die Konfiguration.
-
Das „Makefile“ muss nun noch an Kernelversion und Funktionsmapping angepasst werden.
Legen Sie zuerst ein Backup Ihrer „Makefile“-Datei an:
# cp Makefile Makefile.sav
Öffnen Sie „Makefile“ und geben Sie den Patchlevel des Kernels (Red Hat Enterprise Linux Patchlevel), wie in folgendem Beispiel gezeigt, als Parameter EXTRAVERSION ein. Vergewissern Sie sich, dass die angegebene Versionsinformation mit der in Ihrem Kernel verwendeten exakt übereinstimmt (uname -r prüfen):
# uname -r
2.6.9-55.ELsmp
Für das obige Beispiel würde „Makefile“ so aussehen:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 9
EXTRAVERSION = -55.ELsmp
Wenn Sie ein 64-Bit-System verwenden, sichern Sie die Datei „Makefile“ und fahren Sie mit Schritt 11 fort.
Wenn Sie 32-Bit-System verwenden, müssen Sie aufgrund optimierter Routinen einige Funktionen „mappen“, andernfalls können Sie die Kernelmodule später nicht in den Kernel laden:
Suchen Sie die Zeile:
MODFLAGS = -DMODULE
Ändern Sie sie in:
MODFLAGS = -DMODULE -Dcopy_from_user=__copy_from_user -Dcopy_to_user=__copy_to_user
Sichern Sie das geänderte „Makefile“.
-
Starten Sie „make“, um die für die Kompilierung des Moduls erforderlichen Dateien zu erzeugen.
Brechen Sie den Prozess nach ca. 25 Zeilen ab (CTRL-C). Stellen Sie aber sicher, dass das Verzeichnis „scripts“ verarbeitet wurde, denn bereits jetzt sind die benötigten Dateien fertig.
# make
CHK include/linux/version.h
UPD include/linux/version.h
SYMLINK include/asm -> include/asm-i386
SPLIT include/linux/autoconf.h -> include/config/*
HOSTCC scripts/genksyms/genksyms.o
SHIPPED scripts/genksyms/lex.c
SHIPPED scripts/genksyms/parse.h
SHIPPED scripts/genksyms/keywords.c
HOSTCC scripts/genksyms/lex.o
SHIPPED scripts/genksyms/parse.c
HOSTCC scripts/genksyms/parse.o
HOSTLD scripts/genksyms/genksyms
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/kallsyms
HOSTCC scripts/pnmtologo
HOSTCC scripts/conmakehash
CC arch/i386/kernel/asm-offsets.s
CHK include/asm-i386/asm_offsets.h
UPD include/asm-i386/asm_offsets.h
CC init/main.o
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
CC init/do_mounts.o
CC init/do_mounts_rd.o
make[1]: *** [init/do_mounts_rd.o] Interrupt
make: *** wait: No child processes. Stop.
make: *** Waiting for unfinished jobs….
make: *** wait: No child processes. Stop.
-
Kompilieren Sie das AppleTalk-Modul:
# make M=net/appletalk
LD net/appletalk/built-in.o
CC [M] net/appletalk/aarp.o
CC [M] net/appletalk/ddp.o
CC [M] net/appletalk/atalk_proc.o
CC [M] net/appletalk/sysctl_net_atalk.o
LD [M] net/appletalk/appletalk.o
Building modules, stage 2
MODPOST
CC net/appletalk/appletalk.mod.o
LD [M] net/appletalk/appletalk.ko
Das AppleTalk-Modul ist als „net/appletalk/appletalk.ko“ angelegt worden.
-
Um das neue AppleTalk-Kernelmodul zu testen, geben Sie in einer Shell Folgendes ein:
# insmod net/appletalk/appletalk.ko
Diese Zeile sollte in den Systemmeldungen auftauchen:
kernel: NET: Registered protocol family 5
-
Um das Kernelmodul zu entladen, geben Sie rmmod appletalk ein. Vergewissern Sie sich, dass währenddessen kein HELIOS Dienst läuft.
-
Soll das Kernelmodul beim Start der HELIOS Dienste automtisch geladen werden, kopieren Sie das Modul nach „HELIOSDIR/etc/kernel“ und verwenden Sie das Skript „31helatalk“.
Das Skript finden Sie hier:
http://webshare.helios.de
Benutzername: tools
Kennwort: tools
Melden Sie sich an WebShare an und gehen Sie zum Sharepoint HELIOS Tools. Öffnen Sie den Ordner „RHEL4 AppleTalk modules“, markieren Sie „script-only.tar“ und wählen Sie aus der Menüleiste „Transfer“ > „Download“. Zum Entpacken des Archivs geben Sie folgende Befehle ein:
# cd /usr/local/helios
# tar xf script-only.tar
Das Modul wird nun bei jedem Start der HELIOS Dienste geladen.
Hinweis: Wenn Sie Feedback haben, schicken Sie es uns bitte!