[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: