AppleTalk Kernel Modul für Red Hat Enterprise Linux 4


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

64-bit


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:
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“ 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!