ISDN

Aus Neobikers Wiki
Zur Navigation springen Zur Suche springen

Zurück zum Portal

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 zu Problemen kommt, helfen evtl. folgende Punkte:

- udev: das ergänzen der folgenden Zeilen in /etc/udev/links.conf:

# ISDN
M isdn0 c 45 0
M isdn1 c 45 1
M isdn2 c 45 2
M isdn3 c 45 3
M isdn4 c 45 4
M isdn5 c 45 5
M isdn6 c 45 6
M isdn7 c 45 7
M isdnctrl0 c 45 64
M isdnctrl1 c 45 65
M isdnctrl2 c 45 66
M isdnctrl3 c 45 67
M isdnctrl4 c 45 68
M isdnctrl5 c 45 69
M isdnctrl6 c 45 70
M isdnctrl7 c 45 71
M isdninfo c 45 255

L isdnctrl /dev/isdnctrl0

M ippp0 c 45 128
M ippp1 c 45 129
M ippp2 c 45 130
M ippp3 c 45 131
M ippp4 c 45 132
M ippp5 c 45 133
M ippp6 c 45 134
M ippp7 c 45 135

- und noch noch evtl. /etc/udev/permissions.rules:

# ISDN 
SUBSYSTEM=="isdn",                              GROUP="dialout"

- Fehler im Syslog bei PCI-Karten unter XEN:

/etc/xen/xend-pci-quirks.sxp entsprechend der Fehlermeldung (Werte von space fields) anpassen:

(fcpci
   (pci_ids
      ('1244:0e00') # FritzPCI
   )

   (pci_config_space_fields
      ('00000044:2:00000000')
   )
)

Zurück zum Portal