|
von Sebastian Bauer <sebastian.baua(at)t-online.de> Über den Autor: Ich bin am Anfang meines Studiums mehr unfreiwillig mit Linux "zusammengestoßen". Seitdem habe ich einiges dazugelernt und schätze die Freiheiten und Möglichkeiten, die man mit Linux und Open Source hat. Meine Homepage könnt ihr unter www.goblin.kicks-ass.org besuchen. |
Ein ISDN - Fax unter LinuxZusammenfassung:
In diesem Artikel soll beschrieben werden, wie man Linux dazu bringt,
das komfortable hylafax zum Faxen über eine ISDN-Karte von AVM zu
verwenden.
|
Um mit Linux über einen ISDN-Anschluss zu faxen, braucht man nicht allzu viel
Ich werde mich in diesem Artikel auf passive Karten von AVM beschränken, da es meines Wissens nach nur von AVM capi-Treiber für Linux gibt. Es sollten zwar auch beliebige aktive Karten zum Faxen geeignet sein, ich kann mich dazu aber nicht äußern, weil diese für mich leider unerschwinglich sind (für Hardwarespenden bin ich immer offen). Es werden alle verwendeten Programme in dieser Anleitung aus den Quelltexten kompiliert. So ist am ehesten sichergestellt, dass der gezeigte Weg auf möglichst vielen Distributionen zum Ziel führt. Ich habe das beschriebene Vorgehen mit einer FritzCard PCI und einem ISDN Adapter Classic (ISA) auf SuSE 8.1 und Redhat 8.0 getestet (da hat es funktioniert). Leider kann ich natürlich nicht garantieren, dass es überall und immer funktioniert.
Da für die nächsten Schritte unbedingt ein Kernel mit capi-Support nötig ist, sollte man zuerst einen neuen Kernel kompilieren. Informationen dazu findet man bei The Linux Documentation Project z.B. im Kernel-HowTo. Viele Distributionen enthalten keinen capi-Support im Kernel oder verwenden nicht den Standartkernel. Deshalb sollte man sich den Quelltext des aktuellen Kernels bei www.kernel.org herunterladen. Neben den Einstellungen, die man bei make xconfig für sein System braucht, müssen noch die folgenden Optionen aktiviert werden.
Danach kann der Kernel ganz normal mit
make dep make bzImage make modules make modules_install
kompiliert werden. Anschließend muss der neue Kernel gebootet werden und wenn alles geklappt hat, geht es mit der Installation von capi4linux weiter.
Die capi4linux-Treiber von AVM sind zwar offiziell nur für SuSE-Linux erhältlich, man kann sie aber für beliebige Distributionen (speziell beliebige Kernel) verwenden. Zuerst sollte man die Treiber bei www.avm.de herunterladen. Dabei muss man nur darauf achten, dass man den richtigen Kartentyp auswählt. Die Version von SuSE, für die der Treiber gedacht ist, ist im wesentlichen egal (es müssen lediglich die Major-Release-Versionen der verwendeten Compiler übereinstimmen). Die Treiber können dann z.B. mit
tar xfz fcpci-suseX.X-XX.XX.XX.tar.gz
bzw.
tar xfz fcclassic-suseX.X-XX.XX.XX.tar.gz
entpackt werden. Nun kann man im neuen Verzeichnis fritz mit
make
die Datei src.drv/fcpci.o bzw. src.drv/fcclassic.o erstellen. Diese muss dann nach /lib/modules/2.4.XX/kernel/drivers/isdn/avmb1/ kopiert werden. Anschließend müssen noch die Modulabhängigkeiten mit
depmod
neu definiert werden. Die Fehlermeldung Unresolved symbols in /lib/modules/2.4.XX/kernel/drivers/isdn/avmb1/fcpci.o, die fast mit Sicherheit kommt, kann dabei einfach ignoriert werden. Um die Konfiguration der ISDN-Karte abzuschließen, muss noch die Datei /etc/capi.conf erstellt werden. Das Beispiel von AVM sieht in etwa so aus:
# card file proto io irq mem cardnr options #b1isa b1.t4 DSS1 0x150 7 - - P2P #b1pci b1.t4 DSS1 - - - - #c4 c4.bin DSS1 - - - - #c4 - DSS1 - - - - #c4 - DSS1 - - - - P2P #c4 - DSS1 - - - - P2P #t1isa t1.t4 DSS1 0x340 9 - 0 #t1pci t1.t4 DSS1 - - - - #fcpci - - - - - - #fcclassic - - 0x300 5 - -
In dieser Datei kann man einfach den Eintrag für die entsprechende Karte entkommentieren (Die Zeile für die fcclassic muss man eventuell anpassen).
Die capi4k-utils stellen einige kleine aber wichtige Programme für die capi-Schnittstelle zur Verfügung. Um sie zu installieren, muss man die Datei capi4k-utils-XXXX-XX-XX.tar.gz hier herunterladen und dann wieder einmal mit
tar xfz capi4k-utils-XXXX-XX-XX.tar.gz
entpacken. Anschließend kompiliert und installiert man die capi4k-utils mit
cd capi4k-utils make menuconfig make make install
Die Optionen bei make menuconfig kann man im Zweifel so lassen wie sie sind. Es muss nur darauf geachtet werden, dass die eventuellen Änderungen auch nachher konsistent durchgezogen werden. Anschließend sollten in der Datei /etc/modules.conf noch die Einträge
alias char-major-43 capidrv alias char-major-44 capidrv alias char-major-45 capidrv
hinzugefügt bzw. geändert werden. Jetzt kann man dann endlich mit
capiinit start modprobe capidrv
die capi-Module laden. Wieder entfernt werden sie mit
rmmod capidrv capiinit stop
Beim Entfernen der Module können eventuelle Fehlermeldungen mit gutem Gewissen ignoriert werden. Um das Laden/Entfernen der Module zu automatisieren, habe ich ein einfaches Startscript geschrieben.
#!/bin/bash # # System startup script for the isdn-capi subsystem case "$1" in start) echo -n "Setting up capi-drivers for ISDN subsystem" capiinit start modprobe capidrv ;; stop) echo -n "Remove capi-drivers for ISDN subsystem" rmmod capidrv capiinit stop ;; restart) $0 stop $0 start ;; *) echo "Usage:$0{start|stop|restart}" ;; esac exit 0
Dieses Skript kann nach /etc/init.d/ bzw. /etc/rc.d kopiert und dazu verwendet werden, die capi-Module automatisch beim Systemstart zu laden.
Wenn man auf seinem System kein libtiff installiert hat oder bei den entsprechenden rpms irgendwelche Header-Dateien fehlen, muss man libtiff installieren, bevor man mit der Installation von hylafax fortfahren kann. Dieses Paket kann bei www.libtiff.org heruntergeladen werden. Die Installation von libtiff sollte mit
tar xfz tiff-vX.X.X.tar.gz cd tiff-vX.X.X ./configure make make install
getan sein. Und schon kann es mit der Installation von hylafax weitergehen.
Um hylafax zu installieren, braucht man zuerst den Quelltext, den man bei www.hylafax.org herunterladen kann. Nachdem man den Quelltext, wie üblich mit
tar xfz hylafax-X.X.X.tar.gz
entpackt hat, geht es mit
cd hylafax-X.X.X ./configure
weiter. Bei den nun folgenden Abfragen sollte man das Spool-Verzeichnis (Option 7) auf /var/spool/fax und das Papierformat (Option 13) auf A4 setzen. Alle anderen Einstellungen können beibehalten werden. Anschließenden kann man die Installation mit
make make install faxsetup
fortsetzen. Mit faxsetup werden dann die Einstellungen für die Orts- und Landesvorwahl (beide ohne die führenden Nullen - die werden bei Long Distance Prefix und Int. Distance Prefix) etc. eingetragen. Im Zweifel können die Default-Einstellungen beibehalten werden. WICHTIG: Die letzte Frage nach
faxaddmodem
muss auf jeden Fall mit NO beantwortet werden. Anschließend sollte man das Script /etc/init.d/hylafax bzw. /etc/rc.d/hylafax zu Automatisierungszwecken noch ein wenig verändern. Dazu fügt man unter start möglichst an letzter Stelle die beiden Zeilen
$ECHO "Starting capifax receive..." /usr/local/bin/c2faxrecv &
und bei stop möglichst am Anfang
$ECHO "Shutting down capifax receive..." killall -15 c2faxrecv
ein. Diese Änderungen sind nötig, dass gleichzeitig mit dem hylafax System auch der Faxempfang gestartet wird.
Da hylafax eigentlich nur mit "richtigen" Modems funktioniert, braucht man jetzt noch den capi4hylafax patch. Dieser gaukelt hylafax ein Modem vor, wo eigentlich "nur" eine ISDN-Karte ist. Um diesen Patch zu installieren, muss man das entsprechenden Tarball bei www.avm.de herunterladen und dann mit
tar xfz capi4hylafax-XX.XX.XX.tar.gz
entpacken. Anschließend muss nur noch
cd capi4hylafax-XX.XX.XX ./install
ausgeführt werden. Hier werden die benötigten Parameter angepasst:
Outgoinging MSN | Hier muss die Nummer (ohne Vorwahl) eingegeben werden, die capi4hylafax verwendet, um ein Fax zu versenden. Wenn man Supress MSN nicht auf 0 setzt, kann diese Nummer vom Empfänger gesehen werden. |
Incoming MSN | Hier wird die Nummer (wieder ohne Vorwahl) angegeben, an der capi4hylafax Faxe entgegennehmen soll. Wenn mehrere Nummern verwendet werden, können diese einfach durch Kommata getrennt werden. |
DDI Parameter |
Diese Parameter sind notwendig, um capi4hylafax an einem
ISDN-Anlagenanschluss mit Durchwahlmöglichkeit (DDI) zu
betreiben. DDIOffset gibt dabei die Stammnummer an,
DDILength die Länge der Durchwahlziffern. Bei
IncomingDDIs kann eine Liste von Durchwahlziffern angegeben
werden, auf die reagiert werden soll. Beispiel: Faxnummer 123456-78 DDIOffset = 123456 (Stammnummer), DDILength = 2 |
FaxNumber | Diese Nummer wird beim Empfänger angezeigt. Da hylafax keine Leerzeichen verarbeiten kann, sollte man die folgende Form 00XX.XX.XXXXXXXX wählen. Die Punkte werden dann automatisch in Leerzeichen umgewandelt. |
FaxIdentifier | Hier kann der eigene Name, der Firmenname oder ähnliches eingetragen werden. Dieser Eintrag erscheint ebenfalls auf dem Fax des Empfängers. |
NumberPrefix | Wenn zur Amtsholung eine Ziffer, beispielsweise 0 vorgewählt werden muss, wird diese hier eingetragen. |
Nachdem alle Parameter angepasst wurden, sollte es möglich sein, ein Fax zu versenden und zu empfangen. Um dies zu testen, verwendet man zum Senden
c2faxsend -f TIFF -d [TelNum] [TIFF-Datei]
und zum Empfangen
c2faxrecv -f TIFF
Hier wird noch kein hylafax benötigt, als Funktionstest sollte es aber ausreichen.
Jetzt da alles installiert ist und hoffentlich auch alles funktioniert, sollte man hylafax neu starten (/etc/init.d/hylafax restart o.ä.) und versuchen, jemandem ein Fax zu schicken. Dazu verwendet man
sendfax -n -d [TelNum] [Fax-Datei]
Für die Fax-Datei sind eine Menge Formate wie PostScript, PDF oder TIFF möglich. Wenn ein Fax empfangen wird, sollte c2faxrecv den Anruf automatisch annehmen und das Fax in /var/spool/fax/recvq ablegen.
Laut AVM können die capi-Treiber nur mit einem passiven ISDN-Controller verwendet werden, da z.B. das Versenden eines Faxes sehr viel Rechenzeit beansprucht. Bei mir funktionieren sowohl Empfang als auch Versand auch während eines Kernel-Compiles wunderbar (Pentium-MMX 166 MHz). Ausserdem gab es in der news-group de.comp.os.unix.linux.isdn einige Meldungen von ehrgeizigen Zeitgenossen, die auch mehrere passive ISDN-Karten gleichzeitig verwenden. All dies und auch die vielen Möglichkeiten, die hylafax über die Standartinstallation hinaus bietet, gehen aber weit über das Maß für diesen Artikel hinaus.
Ich weiß aus eigener Erfahrung, dass Faxen mit ISDN und Linux nicht unbedingt zu den einfachen Dingen gehört - wenn man nicht weiß, wie und wo man anfängt, kann es ziemlich lästig sein. Ich hoffe aber, einigen geholfen zu haben, sich durch den capi-Sumpf zu wühlen.
Allen, die es versuchen, viel Spaß beim Faxen machen...
Der LinuxFocus Redaktion schreiben
© Sebastian Bauer "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
Autoren und Übersetzer:
|
2005-01-14, generated by lfparser_pdf version 2.51