HOWTO: capi + fax + i4l - Tools
Hallo!
Nachdem mir Andreas Pakulat und Gerhard Brauer geholfen haben, dachte
ich mir, ich schreibe ein kleines Howto, wie man unter Debian eine
Fritz!Card mit Capi ans Laufen bekommt.
-bevor ich anfange: diese Konfiguration ist insofern getestet, als
das isdnlog arbeitet und faxstat mir Folgendes anzeigt:
stefan@debian:/$ faxstat
HylaFAX scheduler on debian.wg: Running
Modem faxCAPI (+49.VORWAHL.FAXNUMMER): Running and idle
stefan@debian:/$
wirklich testen werde ich den Faxversand / -empfang erst am
Wochenende. Schliesslich bin ich Student, da muss man aufs Geld
achten. Sollte sich deshalb noch eine Änderung ergeben, werde ich sie
natürlich als Nachtrag liefern.-
k, Los geht´s:
Voraussetzungen:
- kernel, hier V. 2.6.11
- Debian 3.0 sarge
- installiert sind:
- isdnactivecards
- pppdcapiplugin
- isdnlog
- ipppd
- hylafax
- capi4hylafax
- libc6-dev
- gcc
- debianutils
- make
- libncurses5-dev
- kernel-packages
(- kernel-source je nach dem, welche Version genutzt werden soll)
1) Kernel konfigurieren, kompilieren und starten
-> Konfiguration:
- cd /usr/src/linux-2.6.VERSION
- make config|menuconfig|xconfig
- in Device Drivers - ISDN subsystem Folgendes aktivieren:
- Capi2.0 support
- Capi2.0 Middleware support
- Capi2.0 /dev/capi support
- Capi2.0 filesystem support
- Capi2.0 capidrv interface support
HINT: um capidrv aktivieren zu können, muss auch Old
ISDN4Linux aktiv sein, ansonsten ist´s nicht auswählbar.
ich habe zusätzlich noch folgende Optionen in I4L aktiv:
- Support synchronous PPP
- Use VJ-compression with synchronous PPP
- Support generic MP (RFC 1717)
- Filtering for synchronous PPP
- Support BSD compression
- Support audio via ISDN
- Support AT-Fax Class 1 and 2 commands
Hinweis: ich habe das nur deswegen aktiviert, da ich
demnächst z.B. noch einen vbox aufsetzen möchte.
Normalerweise sollte es aber nicht nötig sein (ich habs
noch nie ohne die o.g. Einstellungen probiert)
in der .config sieht das dann wie folgt aus:
---------- Kernelkonfiguration ----------
#
# ISDN subsystem
#
CONFIG_ISDN=m
#
# Old ISDN4Linux
#
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_IPPP_FILTER=y
CONFIG_ISDN_PPP_BSDCOMP=m
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y
#
# ISDN feature submodules
#
# CONFIG_ISDN_DRV_LOOP is not set
# CONFIG_ISDN_DIVERSION is not set
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#
# CONFIG_ISDN_DRV_HISAX is not set
#
# Active cards
#
# CONFIG_ISDN_DRV_ICN is not set
# CONFIG_ISDN_DRV_PCBIT is not set
# CONFIG_ISDN_DRV_SC is not set
# CONFIG_ISDN_DRV_ACT2000 is not set
# CONFIG_ISDN_DRV_TPAM is not set
# CONFIG_HYSDN is not set
#
# CAPI subsystem
#
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#
#
# Active AVM cards
#
# CONFIG_CAPI_AVM is not set
# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
# CONFIG_ISDN_DRV_AVMB1_C4 is not set
#
# Active Eicon DIVA Server cards
#
# CONFIG_CAPI_EICON is not set
---------- /Kernelkonfiguration ----------
-> Kernel bauen (auf Linuxart):
- make-kpkg kernel_image --revision meinkernel.01
-> baut ein kernel-image-*.deb, dass sie dann normal installieren
läßt
-> Kernel installieren
- dpkg -i /usr/src/kernel-image-VERSION_meinkernel.01_i386.deb
-> Näheres hierzu findet sich auch noch in der FAQ[1]
-> ausserdem lohnt sich ein Blick auf top-sicret.de[2]
-> hiernach die grub / lilo Konfiguration nochmal anschauen, ob auch
wirklich alles passt, danach den Rechner mit dem neuen(!) Kernel
neustarten.
2) capi installieren:
- capi von [3], [4], [5], [6], [7] besorgen und nach /usr/local/src
kopieren:
cd /usr/local/src
wget [7] bzw. [6]
- capi entpacken und loslegen:
gunzip -cd TREIBERDATEI | tar xfv -
cd fritz
make
make install
- ich habe die entstandene Treiberdatei dann nochmals
-vorsichtshalber- per Hand nach /lib/modules/KERNELVERSION/extra
kopiert (sollte aber eigentlich nicht nötig sein):
cd src
mkdir /lib/modules/KERNELVERSION/extra
cp fcpci.ko /lib/modules/KERNELVERSION/extra/
depmod -a
wobei der letzte Befehl das Modul registriert.
3) capi starten
- bevor man die capi auch tatsächlich nutzen kann, müssen eventl.
noch geladene hisax Treiber entfernt werden. Wenn der neue Kernel
keine hisax Treiber hat ist das natürlich sinnlos, bei mir waren
sie ursprünglich noch dabei... (jaja, ich weiss, ich hätte einfach
nur meine Howto befolgen müssen ;) )
-> also:
- lsmod
- je nach Abhängigkeiten die eventl. geladenen hisax Treiber
mit:
modprobe -r MODULNAME
kicken.
- capiinit aufrufen:
capiinit
sollte das ohne Fehlermeldung vonstatten gegangen sein, einfach mal
schaun, obs geklappt hat:
capiinfo
dieser Befehl sollte eine Menge Infos rausscheissen, bei mir sieht
das dann so aus:
------- Ausgabe von capiinfo -------
debian:/usr/local/src/fritz/src# capiinfo
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.101-02 (49.18)
Serial Number: 1000001
BChannels: 2
Global Options: 0x00000039
internal controller supported
DTMF supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0x4000011f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
T.30 modem for fax group 3
Modem asyncronous operation with start/stop byte framing
B2 protocols support: 0x00000b1b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
T.30 for fax group 3
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0x800000bf
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)
X.25 DCE
T.30 for fax group 3
T.30 for fax group 3 with extensions
Modem
0100
0200
39000000
1f010040
1b0b0000
bf000080
00000000 00000000 00000000 00000000 00000000 00000000
01000001 00020000 00000000 00000000 00000000
Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS
debian:/usr/local/src/fritz/src#
------- /Ausgabe von capiinfo -------
wenn diese Ausgabe kommt, hat´s geklappt.
4) capifax einrichten
- dazu bitte in /etc/hylafax die Datei config.faxCAPI bearbeiten und
den eigenen Gegebenheiten anpassen.
5) capidrv aktivieren
bei meiner SuSE konnte man früher einfach für Capitreiberinstallation
ein vorgefertigtes Skript nutzen, hier ist etwas Handarbeit angesagt:
mit einem Editor der Wahl (z.B. nano) die Datei /etc/modutils/aliases so
anpassen, dass folgende Zeilen drinstehen:
debian:/usr/local/src/fritz/src# nano /etc/modutils/aliases
[...]
# Capi modules
alias char-major-43 capidrv
alias char-major-44 capidrv
alias char-major-45 capidrv
das dann speichern und:
update-modules
aufrufen. (Danke für Hinweis, Gerhard!).
HINT: bei mir hat das nicht ausgereicht, ich habe deswegen noch eine
kleine Anpassung vorgenommen; ich habe die Datei
/etc/init.d/isdnutils so angepasst, dass in dem Start-Block
folgendes noch steht:
----------- /etc/init.d/isdnutils ------------
[...]
. /etc/isdn/init.d.functions
# isdn_verbose=true # default is set by VERBOSE in /etc/default/rcS
case "$1" in
start)
modprobe capidrv
^^^^^^^^^^^^^^^^^^^^^^^
if [ ! -z "$2" ]; then
echo -n "Starting $2:"
[...]
----------- //etc/init.d/isdnutils ------------
ohne diesen Eintrag wurde das capidrv nicht geladen. Warum
weiss ich nicht, aber so funktioniert´s jedenfalls.
HINT2: für SuSE gibt es unter [8] noch ein weiteres
Installationsskript, dass die capi installiert. Dieses Skript
hat den o.s. /etc/modutils/aliases Eintrag wieder deaktiviert.
Ich habe es dann damals genauso gemacht wie hier, indem ich
dem aufrufenden Skript einfach einen modprobe Befehl
mitgegeben habe.
HINT3: Als ich das heute probiert habe (und ursprünglich gescheitert
war), hat u.a. Andreas Pakulat mir weitergeholfen. Dabei
brachte er auch noch Folgendes zur Sprache (also: Papier,
Mail...):
Eines noch: isdnutils vetragen sich nicht gut mit udev, wenn
man udev nutzt muss man die Devices per Hand anlegen (/dev/isdn*,
/dev/isdnctrl0, ...)
ich habe bei meiner Recherche entdeckt, dass es für das
Anlegen dieser Dateien anscheinend auch ein Skript gibt,
allerdings bin ich Moment überfragt, wie es heisst...
6) isdnlog, ipppd, vbox usw. starten
- folgendes Kommando startet jetzt die alten i4l - Dienste, die nun
aber tatsächlich über die Capi arbeiten:
/etc/init.d/isdnutils start
HINT: beim Start wird isdnlog wahrscheinlich in die Logbücher
schreiben, dass es die holiday-de.dat nicht gefunden hat. Dazu
einfach die aktuellen isdn4k-utils besorgen [11] und
entpacken (dafür ist auch das Programm bunzip2 nötig, es
steckt in bzip2). Darin befindet sich im Unterverzeichnis isdnlog die
gesuchte Datenbank. Diese dann einfach nach
/usr/share/isdn kopieren:
-> cd /usr/local/src
-> apt-get install bzip2
-> wget [12]
-> bunzip2 -cd isdn4k-utils.VERSION.tar.bz2 | tar xfv -
-> cd isdn4k-utils/isdnlog
-> cp holiday-de.dat /usr/share/isdn/
das war´s, jetzt sollte auch dieser Fehler weg sein.
7) Disclaimer: diese Art der Installation der Capi hat bei
mir funktioniert, es gibt absolut keine Garantie (schon
gar nicht von mir), dass es auch auf einem anderen
System funktioniert.
Sollten Fragen auftauchen, kann sich aber jeder gerne
bei mir melden, VIELLEICHT kann ich ja was tun.
Empfehlen möchte ich aber auf jeden Fall eine Recherche
z.B. via google (den Link spare ich mir), auch ist ein
Mitlesen bzw. fragen über die einschlägigen
Mailinglisten oftmals echt hilfreich.
Ich kenne in diesem Zusammenhang jedoch nur die
Debian- [13] und SuSE-Listen [15]
Na gut, ich hoffe, ich konnte vielleicht doch dem einen oder anderen
helfen.
Wünsche noch einen guten Tag / Nacht.
cu,
Stefan
[1] debian-FAQ: http://channel.debian.de/faq/index.html#contents
[2] top-sicret: http://www.topf-sicret.de/help/capi20.html
[3] avm.de: www.avm.de , siehe auch [4], [5], [6], [7]
[4] Downloadseite von avm: http://www.avm.de/de/Download/index.php3 ,
siehe auch [3], [5], [6], [7]
[5] avm FAQs:
http://www.avm.de/de/index.php3?Service/FAQs_/index.php3 ,
siehe auch [3], [4], [6], [7]
[6] avm ftp-Link: ftp://ftp.avm.de/cardware , siehe auch [3], [4], [5], [7]
[7] ich habe folgende Datei genutzt:
ftp://ftp.avm.de/cardware/fritzcrd.pci/linux/suse.91/fcpci-suse9.1-3.11-02.tar.gz ,
siehe auch [3], [5], [6], [7]
[8] thepenguin.de: www.thepenguin.de, siehe auch [9], [10]
[9] capi4linux.thepenguin.de: http://capi4linux.thepenguin.de/ ,
siehe auch [8], [10]
[10] die Downloadseite von thepenguin.de:
http://capi4linux.thepenguin.de/download.shtml ,
siehe auch [8], [9]
[11] Homepage der isdn4k-utils: http://www.isdn4linux.de/ ,
siehe auch [12]
[12] der Link ins isdn4k-utils Verzeichnis:
ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/ ,
siehe auch [11]
[13] Hauptseite der Debian Mailinglisten: http://lists.debian.org/ ,
siehe auch [14]
[14] der Mailingliste von Debian kann auf folgender Seite beigetreten
werden: http://lists.debian.org/debian-user-german/
Bitte aber beachten: es gibt i.A. Regel für die
Benutzung der Listen, diese bitte einhalten, sonst
gibt´s wieder riesen Flames darüber und das macht echt
keinen Spass. siehe auch [13]
[15] Hauptseite der Debian Mailinglisten: http://lists.debian.org/ ,
siehe auch [16], [17]
[16] den Mailinglisten von SuSE kann auf folgender Seite beigetreten
werden: http://lists.suse.de/archive/
Bitte aber beachten: es gibt i.A. Regel für die
Benutzung der Listen, diese bitte einhalten, sonst
gibt´s wieder riesen Flames darüber und das macht echt
keinen Spass. siehe auch [15], [17]
[17] besser als die normale SuSE-Liste ist aber eigentlich die
suse-isdn Liste, auf der auch Karsten Keil mitliest,
der maßgeblich an der Kernel-ISDN Entwicklung beteiligt
ist (Danke Karsten!) siehe auch [15], [16]
Reply to: