Der steinige Weg nach zaphfc

Aus NOBAQ
Zur Navigation springenZur Suche springen

Manchmal wünsche einfach eine exe zu starten und es läuft. Aber das geht weder in Windows noch in Linux ;-) Diesen Abend hat mich die Installation des zaphfc Treibers in Debian sarge mit Kernel 2.4 für eine HFC-C Karte von Conrad gekostet. Diverse Anleitungen im Internet beschreiben es einfach: BRIstuff herunterladen, ein "./install" und fertig. Den meisten scheint egal zu sein, ein komplettes Asterisk zu installieren, das sich übers Paketmanagement hinwegsetzt und im gesamten Filesystem seine Dateien hinterlässt. Mir ist das nicht egal, ich will die Asterisk Version von Debian sarge haben (wo zum Glück der BRIstuff Patch gleich dabei ist) und nur das zaphfc-Modul. Aber das ist gar nicht so einfach. Zumal die kompletten zaptel Treiber benötigt werden...


Mehrere Versuche, zaphfc direkt im Unterverzeichnis “zaphfc” des BRIstuff Sources zu installieren schlugen fehl. zaphfc.h konnte nicht gefunden werden, trotz Anpassungen des Makefiles, dann gab ich es auf.

Zum Glück habe ich

http://verfaction.de/zaphfc

gefunden. Eigentlich genau das, was ich will. Nur mit einem kleinen Schönheitsfehler: Der Herr scheint Kernel 2.6 zu verwenden.

Die einzelnen Schritte mag ich jetzt nicht erklären, kurz gesagt gibt es in den zaptel-sources einen Bug im Makefile, der zaphfc einfach nicht mitcompiliert. Siehe auch http://bugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=302836. Auf http://lists.alioth.debian.org/pipermail/pkg-voip-maintainers/2005-June/002046.html gibt es einen hübschen Patch dazu, nur: module-assistant will immer das ganze Paket auspacken!

Also der Weg ohne viel zu erklären:


Asterisk* installieren:

aptitude install asterisk [...]

BRIstuff ist bereits dabei. Fehlen aber leider die zaptel-Treiber.


zaptel installieren

aptitude install libzap libzap-dev zaptel zaptel-source

Zum Glück hat Debian dieses wunderbare module-assistant System an Board, mit dem einfach Kernelmodule für den aktuellen Kernel als .deb Modul erstellt werden können.

Für Kernel 2.6. (da ohne den o.g. Bug) reicht ein einfaches

module-assistant auto-install zaptel

Für 2.4. muss aber zuerst noch der folgende Patch applied werden:

— modules/zaptel.orig/Makefile 2005-05-22 11:58:15.000000000 +0200
+++ modules/zaptel/Makefile 2005-06-12 20:07:02.000000000 +0200
@@ -66,6 +66,7 @@
LIBTONEZONESHORT=$(shell echo $(LIBTONEZONE) | sed -e ’s/.[0-9]+$$//’ )
MODULES=zaptel tor2 torisa wcusb wcfxo wcfxs
ztdynamic ztd-eth wct1xxp wct4xxp wcte11xp # ztdummy
+MODULES+=zaphfc/zaphfc
#MODULES+=wcfxsusb

MODULESO=$(shell for x in $(MODULES); do echo “$$x.o “; done )
@@ -120,6 +121,9 @@
zaptel.o: zaptel.c zaptel.h digits.h arith.h sec.h mec.h sec-2.h mec2.h mec3.h zconfig.h
$(HOSTCC) $(KFLAGS) -c zaptel.c

+zaphfc/zaphfc.o: zaphfc/zaphfc.c zaphfc/zaphfc.h
+ make -C $(KSRC) SUBDIRS=”$(PWD)/zaphfc”
+
torisa.o: torisa.c zaptel.h torisa.h
$(HOSTCC) $(KFLAGS) -c torisa.c

Diesen Patch als /usr/src/zaptel.diff abspeichern.

Die Liste der Module aktualisieren und zaptel entpacken:

module-assistant -o -v update
module-assistant -o -v unpack zaptel

Hier ist der "-o"-Switch ganz wichtig, denn er sorgt dafür, dass die Quellen nicht erneut ausgepackt werden.

Nun den Patch applien:

cd /usr/src
patch -p0 < zaptel.diff

Nun kann das Modul gebaut werden:

module-assistant -o -v build zaptel

Man beachte wieder das "-o".

Nun sollte die deb-Datei in /usr/src/zaptel-modules*.deb liegen. Diese braucht nur mehr mit

dpkg -i /usr/src/zaptel-modules*.deb

installiert werden.

Danach noch die Abhängigkeiten in die Dateien schreiben:

depmod -a

und nun sollte das Modul auch auf einem 2.4er Kernel in Debian sarge geladen werden können:

modprobe zaphfc

Die Konfiguration von zaptel und Asterisk finden sich in genügend Tutorials im Internet (ausserdem bin ich da noch nicht, ich hab noch nichtmal meine HFC Karte eingebaut ;-))