CAPI 2.0 für Linux (AVM)

Ergänzungen, Kommentare oder Berichtigungen bitte an den Autor richten

Distribution Debian 2.2 (aka Potato), Debian 2.1 (aka Slink)
Kernelversion Kernel 2.2.16 ( + CVS Snapshot ISDN Patch )
ISDN Karten AVM Fritzcard (PCI), AVM A1
Pakete / Sourcen

CVS Snapshot ISDN Patch ftp://ftp.suse.com/pub/isdn4linux/v2.2/isdn/isdn-*-tar.gz (hier verwendet: isdn-0009081100.tar.gz)

Der Snapshot wird nur bis zur Kernelversion 2.2.17 benötigt, ab dann sind aktuelle Versionen bereits im Kernel. D.h. der Kernel muss nicht mehr gepatcht werden!

Die Capiutils scheinen wieder auf dem AVM Server bereit zu liegen (ansonsten über ftp://ftp.in-berlin.de/pub/capi4linux/)

Karten spezifisches Treibermodul (von FTP Server AVM):
(die Versionsnummerierung hat sich anscheinend bei neueren Versionen geändert.
fcclassic-suse7.0-03.09.02.tar.gz (für A1)
fcpci-suse7.0-03.09.02.tar.gz (für Fritz PCI)

Kernel Sourcen des verwendeten Kernels entpackt unter /usr/src/linux

UNTESTED
Leonhard Gruener schrieb mir, das es vorgefertigte Debian
Pakete (Potato/Woody) gibt und diese unter http://www.ailis.de/~k/debian/
zu finden sind und apt fähig sind (siehe dort). Diese Pakete wurden von mir
nicht getestet!
UNTESTED

Autor Tim Weippert (weiti@topf-sicret.de)
Danksagungen und Fixes Waldemar Brodkorb (Info über die neuen FTP URL des CVS Snapshots)
Frank Jordan (ebenso die verbesserte FTP URL des Kernelpatchs)
Martin Kemp (Anregung für das Initscript)
Chistian Gut (Versionsnummerierung, Capi4kutils wieder bei AVM)
Aktualisiert am Sat Dec 22 12:02:22 2001

Als erstes sollten die Sourcen für isdn-*.tar.gz entpackt werden (z.b. tar -zxvf isdn-*.tar.gz). In das neue Verzeichnis isdn/ wechseln und den Befehl ./std2kern ausführen (hierzu muss der Kernelsource unter /usr/src/linux/ liegen). Danach sollte man sich einen neuen Kernel bauen. Unter ISDN Subsystem / Active ISDN cards finden sich nun neue Punkte (allerdings nur, wenn man unter

  Code maturity level options  --->
  	[*] Prompt for development and/or incomplete code/drivers
  

aktiviert hat):

  <M> Capi 2.0 support 
  [*] CAPI2.0 Middleware support
  [*] CAPI2.0 filesystem support

Diese sollten angewählt werden un der Kernel neu übersetzt werden (make dep clean (b)zImage modules modules_install). Danach sollte der Kernel aktiviert werden und der Rechner neu gestartet werden. Weitere Optionen benötigt man NICHT (bzw. nur, wenn man weitere ISDN Dienste benötigt.) Die Karten Treiber werden später kompiliert und seperat eingebunden.

Wenn der Rechner neu gebootet hat, und der neue Kernel läuft, sollte man noch nicht die Module laden. Als nächstes sollten die capi4k-utils übersetzt werden, dies läuft sehr schnell und einfach ab indem man das Paket entpackt und make menuconfig in dem neuen Verzeichnis aufruft. Man bekommt eine kleine Maske (ähnlich der beim Kernelconfigurieren mit make menuconfig), in der man die Installationspfade angibt, und welche Tools übersetzt werden sollen. (Achtung, auch wenn man dieses Menu mit Exit verlässt und nicht speichert, werden die configure-Scripte in den unteren Verzeichnissen ausgeführt, also nicht erschrecken).

Falls es hier zu Problemen mit dem lxdialog kommen sollte, unter scripts/lxdialog/ einfach make clean all ausführen und make menuconfig erneut aufrufen, damit die Datei lxdialog mit den auf dem System vorhanden ncurses neu übersetzt wird.

Danach einfach ein make und make install. Im Verzeichnis scripts/ sollte man noch das Script makedev.sh aufrufen, damit die Devices unter /dev/ angelegt werden. Auch hier erstmal die installierten Files ignorieren :), denn man muss noch den spezifischen Kartentreiber kompilieren (ausser die eine SuSE Distibution verwenden, hierfür hat AVM schon vorkompilierte Module zur Verfügung). Dieser findet sich auf dem AVM-FTP Server in dem entsprechenden Verzeichnis unter cardware. (/cardware/a1/linux/ für eine AVM A1 Karte). Da darf man sich nur nicht an der Bezeichnung -suse-Version stören, da dort auch die Sourcen mit enthalten sind. Nach dem entpacken wechselt man in das neue Verzeichnis fritz und ruft dort make und make install auf.

Ich musste unter src/ das makefile anpassen

CCFLAGS = -c -O2 -W -Wall -I/usr/src/linux/include (in den neueren Sourcen von AVM *-03.09.02.tar.gz ist diese Option schon enthalten.)

die -I Angabe anfügen, damit er die Kernelincludes findet. Das neue Kernelmodule unter src/fcpci.o (der Name ändert sich, je nach Karte.) einfach unter /lib/modules/<kernelversion>/misc/ kopieren. Ausserdem liegt unter dem fritz/ Verzeichnis noch eine conf Datei ( <Kartentyp>.conf) dies muss nach /etc/capi.conf kopiert werden (ACHTUNG: bei ISA Karten muss dort der IO Port und IRQ angepasst werden).

Danach kann man mit dem Befehl capiinit start die CAPI 2.0 hochfahren.
Auf Anregung von Martin Kemp habe ich mich hingesetzt und ein Initskript für die Verwendung von der Capi und des CapiFax Daemon (falls man nicht Hylafax benutzen will..) geschrieben. Das ganze findet sich hier. Man sollte es jedoch vor dem ersten Einsatz noch Anpassen (Pfade, etc...).

Nach dem Starten der Capi sollte so oder so eine ähnliche Meldung im syslog ausgegeben werden:

Beispiel Ausgabe bei einer Fritzcard PCI:

Aug  4 07:53:33 cxmysql kernel: CAPI-driver Rev 1.12 : loaded
Aug  4 07:53:33 cxmysql kernel: capi20: started up with major 68
Aug  4 07:53:33 cxmysql kernel: kcapi: capi20 attached
Aug  4 07:53:53 cxmysql kernel: fcpci: Base adress: 0xC802B060
Aug  4 07:53:53 cxmysql kernel: fcpci: AVM FRITZ!Card PCI driver, revision 0.0
Aug  4 07:53:53 cxmysql kernel: fcpci: Loading...
Aug  4 07:53:53 cxmysql kernel: fcpci: Driver 'fcpci' attached to stack
Aug  4 07:53:53 cxmysql kernel: kcapi: driver fcpci attached
Aug  4 07:53:53 cxmysql kernel: fcpci: Auto-attaching...
Aug  4 07:53:53 cxmysql kernel: fcpci: PCI: irq: 5, base: 0x9400
Aug  4 07:53:53 cxmysql kernel: fcpci: Library version:    3.09-02
Aug  4 07:53:53 cxmysql kernel: fcpci: Card type:          A1
Aug  4 07:53:53 cxmysql kernel: fcpci: Capabilities:       Add. Service: V.42bis, Fax G3 Polling, DTMF, GSM, CAPI 1.1
Aug  4 07:53:53 cxmysql kernel: fcpci: D-channel protocol: DSS1
Aug  4 07:53:53 cxmysql kernel: fcpci: I/O range 0x9400-0x941f assigned to fcpci driver.
Aug  4 07:53:53 cxmysql kernel: fcpci: IRQ #5 assigned to fcpci driver.
Aug  4 07:53:53 cxmysql kernel: kcapi: Controller 1: fritz-pci attached
Aug  4 07:53:53 cxmysql kernel: kcapi: card 1 "fritz-pci" ready.
Aug  4 07:53:53 cxmysql kernel: fcpci: Loaded.
Aug  4 07:53:53 cxmysql kernel: kcapi: notify up contr 1

Beispiel Ausgabe einer AVM A1:

Aug  9 08:14:27 weiti kernel: CAPI-driver Rev 1.18 : loaded
Aug  9 08:14:27 weiti kernel: capifs: Rev 1.8 : loaded
Aug  9 08:14:27 weiti kernel: capi20: started up with major 68
Aug  9 08:14:27 weiti kernel: kcapi: capi20 attached
Aug  9 08:14:27 weiti kernel: capi20: Rev1.39: started up with major 68
Aug  9 08:14:27 weiti kernel: fcclassic: Base adress: 0xC883A050
Aug  9 08:14:27 weiti kernel: fcclassic: AVM FRITZ!Card Classic driver, revision 0.0
Aug  9 08:14:27 weiti kernel: fcclassic: Loading...
Aug  9 08:14:27 weiti kernel: fcclassic: Driver 'fcclassic' attached to stack
Aug  9 08:14:27 weiti kernel: kcapi: driver fcclassic attached
Aug  9 08:14:27 weiti kernel: fcclassic: Loaded.
Aug  9 08:14:28 weiti kernel: fcclassic: Base address valid.
Aug  9 08:14:28 weiti kernel: fcclassic: Library version:    3.09-02
Aug  9 08:14:28 weiti kernel: fcclassic: Card type:          A1
Aug  9 08:14:28 weiti kernel: fcclassic: Capabilities:       Add. Service: V.42bis, Fax G3 Polling, DTMF, GSM, CAPI 1.1
Aug  9 08:14:28 weiti kernel: fcclassic: D-channel protocol: DSS1
Aug  9 08:14:28 weiti kernel: fcclassic: I/O range 0x0200-0x021f assigned to fcclassic driver.
Aug  9 08:14:28 weiti kernel: fcclassic: IRQ #12 assigned to fcclassic driver.
Aug  9 08:14:28 weiti kernel: kcapi: Controller 1: fritz-isa attached
Aug  9 08:14:28 weiti kernel: kcapi: card 1 "fritz-isa" ready.
Aug  9 08:14:28 weiti kernel: kcapi: notify up contr 1
Aug  9 08:14:28 weiti kernel: capi: controller 1 up

Und die entsprechende /etc/capi.conf zur AVM A1:

weiti:/stuff/capiAVM/fritz# more /etc/capi.conf
fcclassic       -       -       0x200   12      -       -

Hiermit wurde die Capi gestartet, und die Karte zugewiesen. Mit capiinfo bekommt man Informationen zu der Karte und den Status:

cxmysql:~/capi-src/fritz/src# capiinfo
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.09-02  (48.146)
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 fro 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
   reserved

  0100
  0200
  39000000
  1f010040
  1b0b0000
  bf000080
  00000000 00000000 00000000 00000000 00000000 00000000
  01000001 00020000 00000000 00000000 00000000

Supplementary services support: 0x000001ff
   Hold / Retrieve
   Terminal Portability
   ECT
   3PTY
   Call Forwarding
   Call Deflection
   MCID
   CCBS



Tim Weippert, Heilbronn, Deutschland.
GnuPG Key fingerprint = 63E3 AA72 B3BC D0AB 583E 0382 AEA0 A1F9 AFF9 DC52
Letzte Aktualiserung der Seite: Sat Dec 22 12:02:22 2001.