ISDN
AVM Fritz!PCI Module kompilieren
Ich habe das in der XEN-Development-VM kompiliert, welche zum Kernel Kompilieren installiert wurde und natürlich alle notwendigen Software Pakete installiert hat.
Ein fertiges Kernel Modul fcpci.ko gibt es hier zum Download.
Linux-Sourcen für Kernel 2.6 downloaden und unter /usr/src installieren:
cd /usr/src tar xzf sources/f/fcpci-suse93-3.11-07.tar.gz mv fritz fritz-2.6
Jetzt muss in den Kernel-Sourcen noch eine doppelte Definition auskommentiert werden, damit man die Fritz-Treiber kompilieren kann.
vi /usr/src/fritz-2.6/src/tools.h ### Zeile 74 ff ### /* static inline unsigned long atomic_xchg ( volatile atomic_t * v, unsigned value ) { return __xchg (value, &v->counter, sizeof (unsigned)); }*/ /* atomic_xchg */
Ausserdem muss noch ein XEN-Kernel-Symbol so exportiert werden, dass auch ein nicht-GPL-Modul wie das von AVM dieses verwenden kann.
vi /usr/src/xen/drivers/xen/core/evtchn.c ### Zeile 191 ff ### EXPORT_SYMBOL(force_evtchn_callback);
Jetzt zuerst XEN übersetzen, anschliessend die AVM Module kompilieren und installieren.
cd /usr/src/ devel:/usr/src# l insgesamt 6464 drwxr-xr-x 4 root root 4096 2006-03-04 13:50 fritz-2.6/ -rw-r--r-- 1 root src 1652361 2006-10-06 19:17 fritz-2.6.tgz lrwxrwxrwx 1 root src 3 2006-10-06 23:07 linux -> xen/ lrwxrwxrwx 1 root src 28 2006-10-06 19:29 xen -> xen-3.0.2-2/linux-2.6.16-xen/ drwxrwxr-x 14 94 141 4096 2006-10-06 22:26 xen-3.0.2-2/ -rwxr----- 1 root src 4937486 2006-09-30 22:10 xen-3.0.2-src.tgz* cd xen-3.0.2-2 make world make install cd ../fritz-2.6 make make install
Aus der Devel-VM müssen natürlich Kernel und Module in gewünschten XEN-VMs zu kopieren (XEN Host-System Dom0 und die XEN-VM, welche die FritzCard benutzen soll - per PCI-Delegation).
Dann noch /etc/modutils/aliases anpassen:
alias hisax off alias hisax_fcpcipnp off alias hdc ide-scsi alias char-major-43 capidrv alias char-major-44 capidrv alias char-major-45 capidrv
und updaten und ISDN/CAPI Pakete installieren:
update-modules.modutils apt-get install -u capi4hylafax
Jetzt noch die FritzCard PCI einstellen, in /etc/isdn/capi.conf:
vm01:~# cat /etc/isdn/capi.conf # 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 #c2 c2.bin DSS1 - - - - #c2 - DSS1 - - - - #t1isa t1.t4 DSS1 0x340 9 - 0 #t1pci t1.t4 DSS1 - - - - fcpci - - - - - - #fcclassic - - 0x150 10 - -
Und schon sollte ein Reboot der XEN-VM folgendes auflisten:
... INIT: Entering runlevel: 3 Starting system log daemon: syslogd. Starting kernel log daemon: klogd. * Starting ISDN CAPI Cards... CAPI Subsystem Rev 1.1.2.8 capifs: Rev 1.1.2.3 capi20: Rev 1.1.2.7: started up with major 68 (middleware+capifs) fcpci: module license 'Proprietary' taints kernel. fcpci: AVM FRITZ!Card PCI driver, revision 0.7.2 fcpci: (fcpci built on Oct 6 2006 at 23:12:57) fcpci: -- 32 bit CAPI driver -- PCI: Enabling device 0000:02:0d.0 (0000 -> 0003) fcpci: AVM FRITZ!Card PCI found: port 0x3800, irq 16 fcpci: Loading... fcpci: Driver 'fcpci' attached to fcpci-stack. (152) fcpci: Stack version 3.11-07 kcapi: Controller 1: fcpci-3800-16 attached kcapi: card 1 "fcpci-3800-16" ready. fcpci: Loaded. [ ok ] Starting MTA: exim4. ...
und noch ein abschliessender Test :-)
vm01:~# uname -r 2.6.16-xen vm01:~# capiinfo Number of Controllers : 1 Controller 1: Manufacturer: AVM GmbH CAPI Version: 2.0 Manufacturer Version: 3.101-07 (49.23) 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 ...
Ein fertiges Kernel Modul fcpci.ko gibt es hier zum Download.
Wenn es unter Kernel 2.6 mit udev zu Problemen kommt, hilft evtl. das ergänzen der folgenden Zeilen in /etc/udev/links.conf:
# ISDN 2 M isdn0 c 45 0 3 M isdn1 c 45 1 4 M isdn2 c 45 2 5 M isdn3 c 45 3 6 M isdn4 c 45 4 7 M isdn5 c 45 5 8 M isdn6 c 45 6 9 M isdn7 c 45 7 10 M isdnctrl0 c 45 64 11 M isdnctrl1 c 45 65 12 M isdnctrl2 c 45 66 13 M isdnctrl3 c 45 67 14 M isdnctrl4 c 45 68 15 M isdnctrl5 c 45 69 16 M isdnctrl6 c 45 70 17 M isdnctrl7 c 45 71 18 M isdninfo c 45 255 19 20 L isdnctrl /dev/isdnctrl0 21 22 M ippp0 c 45 128 23 M ippp1 c 45 129 24 M ippp2 c 45 130 25 M ippp3 c 45 131 26 M ippp4 c 45 132 27 M ippp5 c 45 133 28 M ippp6 c 45 134 29 M ippp7 c 45 135
Und dann noch evtl. /etc/udev/permissions.rules:
# ISDN SUBSYSTEM=="isdn", GROUP="dialout"