AppleTalk Kernel Modul für Red Hat Enterprise Linux 5


Red Hat liefert keine AppleTalk-Kernelmodule für Red Hat Enterprise Linux 5.1. 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 5.1 beschrieben, allerdings sollte diese 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.18-53.1.13.el5

Um die Prozessor-Architektur herauszufinden, geben Sie in einer Shell folgenden Befehl ein:
# uname -m
x86_64


2. Vorkompilierte Kernelmodule

Die meisten Benutzer sollten mit vorkompilierten Kernelmodulen gut zurecht kommen:

Red Hat Enterprise Linux 5.1 64-Bit SMP*
* Symmetric Multiprocessing

Hinweis: Wir haben die Module für die aktuelle Kernelversion 2.6.18-53.1.13.el5 auf einem x86_64-System kompiliert. Andere oder zukünftige Kernel-Patches, die Level 53 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 „RHEL5 AppleTalk modules“ und markieren Sie die Datei „RHEL5-x86_64-2.6.18-53.1.13.el5.tar“. 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 RHEL5-x86_64-2.6.18-53.1.13.el5.tar

  • 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

Wir haben das Modul für die aktuelle Kernelversion 2.6.18-53.1.13.el5 auf einem x86_64-System kompiliert. Ersetzen Sie bei Bedarf Version und Architektur-Strings. Wenn Sie zu einem späteren Zeitpunkt den Kernel aktualisieren möchten, müssen Sie das Modul eventuell noch einmal kompilieren um es an den neuen Kernel anzupassen.

Hinweis: Dieser Abschnitt richtet sich an Benutzer mit umfangreichen Kenntnissen.

  • Melden Sie sich an einer Shell als „root“ an (weder „sudo“ noch „su“!).
  • Vergewissern Sie sich, dass die benötigten Entwicklungspakete installiert sind:

    # yum install ncurses-devel
    # yum install kernel-devel
    # yum install make
    # yum install gcc
    # yum install unifdef
    # yum install rpm-build
    # yum install redhat-rpm-config


    Hinweis: Das Dienstprogramm „yum“ benötigt Zugang zum Internet sowie zum RHN (Red Hat Network). Haben Sie für den Host keinen Zugang zum RHN, können Sie die Pakete (falls diese fehlen) unter http://rhn.redhat.com herunterladen und mit rpm -ivh <package> installieren.
  • So bekommen Sie die Kernelquellen vom RHN (funktioniert nicht mit „yum“):
    • Melden Sie sich an http://rhn.redhat.com an
    • Gehen Sie auf „Channels“ und wählen Sie Ihr System sowie die Architektur aus
    • Gehen Sie zur Registerkarte „Packages“ und klicken Sie auf den entsprechenden Kernel-Link, z. B. kernel-2.6.18-53.1.13.el5.x86_64
    • Laden Sie das Quellpaket, z. B. „kernel-2.6.18-53.1.13.el5.src.rpm“ herunter
  • Vergewissern Sie sich, dass das „Red Hat“-Quellenverzeichnis vorhanden ist:
    # mkdir /usr/src/redhat

    Installieren Sie die Kernelquellen:
    # rpm -ivh /path/to/kernel-2.6.18-53.1.13.el5.src.rpm
  • Entpacken Sie den Quellcode um an die Konfigurationsdateien zu gelangen:
    # cd /usr/src/redhat/SPECS
    # rpmbuild -bp --target=x86_64 kernel-2.6.spec


    Dies kann einige Minuten dauern und erzeugt eine große Menge an Daten. Die letzte Zeile sollte mit exit 0 enden.
  • Wechseln Sie ins Build-Verzeichnis:
    # cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64
  • 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.18-53.1.13.el5 .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 „Networking“ > „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 die Kernelversion 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.18-53.1.13.el5


    Für das obige Beispiel würde Makefile so aussehen:
    VERSION = 2
    PATCHLEVEL = 6
    SUBLEVEL = 18
    EXTRAVERSION = -53.1.13.el5


    Sichern Sie das bearbeitete 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
     scripts/kconfig/conf -s arch/x86_64/Kconfig
     CHK     include/linux/version.h
     UPD     include/linux/version.h
     CHK     include/linux/utsrelease.h
     UPD     include/linux/utsrelease.h
     SYMLINK include/asm -> include/asm-x86_64
     CC      arch/x86_64/kernel/asm-offsets.s
     GEN     include/asm-x86_64/asm-offsets.h
     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      init/main.o
     CHK     include/linux/compile.h
     UPD     include/linux/compile.h
     CC      init/version.o
     CC      init/do_mounts.o
    make[1]: *** [init/do_mounts.o] Interrupt
    make:    *** [init] Interrupt
  • 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/dev.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 automatisch 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 „RHEL5 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!