Der steinige Weg nach zaphfc
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
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 ;-))
Kommentare
<comments />