OpenAFS Kernelmodul

Um mit OpenAFS zu arbeiten muss das Kernelmodul openafs installiert sein. Das Modul muss nicht in /etc/modules eingetragen werden, es wird vom Init-Skrtipt für Openafs automatisch geladen.

Debian liefert dieses Modul leider nur im Quellcode. Wir haben einige vorkompilierte Debian-Pakete für gewisse Kernel und Debian Sarge erstellt.

http://debian.seismo.ethz.ch/dists/sarge/main/binary-i386/net/

Mit folgender Zeile in /etc/apt/sources.list können die Pakete per apt-get installiert werden.

deb http://debian.seismo.ethz.ch sarge ethz_sed main non-free contrib non-us

Bis jetzt verfügbare Pakete, per apt-get install paketname installierbar:

Wer einen anderen Kernel benutzt oder unseren Modulen nicht traut kann wie folgt vorgehen.

Wichtig: Der Kernel 2.6.x enthält ein Modul afs.ko. Dabei handelt es sich nicht um OpenAFS, damit lässt sich kein AFS-Server betreiben.

Der Quellcode für das OpenAFS Kernelmodul befindet sich im Debian-Paket openafs-modules-source. OpenAFS ab 1.3.81 funktioniert auch mit 2.6er Kerneln ab Version 2.6.8. OpenAFS bis Version 1.3.74 hat Probleme mit 2.6er Kerneln.

Der Quellcode wird mit ``apt-get install openafs-modules-source'' unter /usr/src/openafs.tar.gz abgelegt, aber nicht automatisch kompiliert. Dort muss er entpackt werden.

cd /usr/src
tar -zxvf openafs.tar.gz

Die Quelldateien werden ins Verzeichnis /usr/src/modules/openafs/ entpackt.

Gebraucht werden nun noch der Kernelsource des laufenden Kernels sowie die Konfiguration, welche in den kernel-headers-* Paketen enthalten ist. In unserer Beispielinstallation wird der Kernel 2.4.27-2-686 aus dem Debian-Paket kernel-image-2.4.27-2-686 verwendet. Bei anderen Kernelversionen müssen die Pfade und Versionsnummern angepasst werden.

apt-get install kernel-image-2.4.27-2-686 \
     kernel-source-2.4.27 \
     kernel-headers-2.4.27-2-686

Bei kernel-headers muss die Version genau dem Output von ``name -a'' entsprechen. Zur Zeit der Erstellung dieses Dokuments war Openafs Version 1.3.74 in Debian Sarge, und funktionierte nicht mit einem 2.6.8er Kernel. Mit zukünftigen OpenAFS- und 2.6er Kernelversionen sollte es wieder gehen.

cd /usr/src
tar -jxvf kernel-source-2.4.27.tar.bz2
cp /usr/src/kernel-headers-2.4.27-2-686/.config \
    /usr/src/kernel-source-2.4.27
cd /usr/src/kernel-source-2.4.27
make-kpkg clean
make prepare 
make prepare scripts 
make-kpkg --append_to_version -2-686 configure
make-kpkg --append_to_version -2-686 modules_image

Eine ausführlichere Beschreibung für die Erstellung dieses Modules liegt unter /usr/src/modules/openafs/debian/README.modules.

Der Befehl make-kpkg erzeugt ein Debian-Paket mit dem kompilierten OpenAFS-Kernelmodul. Dieses muss nun installiert werden:

cd /usr/src
dpkg -i openafs-modules-2.4.27-2-686_1.3.74-1+10.00.Custom_i386.deb

Das Modul sollte jetzt unter /lib/modules/2.4.27-2-686/fs/openafs.o liegen und sich laden lasen:

modprobe openafs

Das Modul muss sowohl auf dem Server als auch auf dem Client installiert und geladen werden.

Stefan Heimers 2011-02-25