chan_capi funktioniert nicht

symedia

Neuer User
Mitglied seit
9 Dez 2004
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
Hallo Forum,

obwohl in vielen Mailinglists über das Problem geschrieben wird, kann ich es nicht zum laufen bringen :-(

Ich habe Sarge 2.6.8.1-686 und eine Fritz PCI-Karte. Ich habe ziemlich alles was mit CAPI und ISDN gibt installiert. Ich habe nichts kompiliert sondern alles mit apt-get install installiert.

Ich habe unter anderem folgendes gemacht:

modprobe capi
modprobe capifs
modprobe capidrv
modprobe fcpci

depmod -ae

/dev/capi* existieren

usw.

Trotzdem bekomme ich beim Asterisk-Start (mit strace) folgende Fehlermeldung:

Code:
open("/etc/asterisk/capi.conf", O_RDONLY) = 7
write(1, "Found\n", 6Found
)                  = 6
time([1102985369])                      = 1102985369
fstat64(7, {st_mode=S_IFREG|0644, st_size=602, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40b29000
read(7, ";\n; CAPI config\n;\n;\n[general]\nna"..., 4096) = 602
read(7, "", 4096)                       = 0
close(7)                                = 0
munmap(0x40b29000, 4096)                = 0
open("/dev/capi20", O_RDWR)             = 7
ioctl(7, CAPI_INSTALLED, 0)             = -1 ENXIO (No such device or address)
time([1102985369])                      = 1102985369
getpid()                                = 3388
write(6, "Dec 14 01:49:29 NOTICE[3388]: CA"..., 50) = 50
getpid()                                = 3388
write(1, "Dec 14 01:49:29 \33[1;33;40mNOTICE"..., 140Dec 14 01:49:29 NOTICE[3388]: chan_capi.c:2635 load_module: ) = 140
write(1, "CAPI not installed!\n", 20CAPI not installed!
)   = 20
time([1102985369])                      = 1102985369
getpid()                                = 3388
write(6, "Dec 14 01:49:29 WARNING[3388]: c"..., 78) = 78
getpid()                                = 3388
write(1, "Dec 14 01:49:29 \33[1;31;40mWARNIN"..., 143Dec 14 01:49:29 WARNING[3388]: loader.c:345 ast_load_resource: ) = 143
write(1, "chan_capi.so: load_module failed"..., 47chan_capi.so: load_module failed, returning -1
)

pc24:/usr/src/asterisk-1.0.3# lsmod
Code:
Module                  Size  Used by
capidrv                32468  0 
capi                   18880  0 
capifs                  5864  2 capi
kernelcapi             48832  2 capidrv,capi
ipv6                  264612  16 
hisax_fcpcipnp         12000  1 
hisax_isac              9044  1 hisax_fcpcipnp
hisax                 573136  2 hisax_fcpcipnp,hisax_isac
crc_ccitt               2144  1 hisax
isdn                  147948  6 capidrv,hisax
slhc                    7488  1 isdn

pc24:/usr/src/asterisk-1.0.3# find / | grep capi20
Code:
/var/lib/dpkg/info/libcapi20-2.postinst
/var/lib/dpkg/info/libcapi20-2.list
/var/lib/dpkg/info/libcapi20-2.postrm
/var/lib/dpkg/info/libcapi20-2.shlibs
/var/lib/dpkg/info/libcapi20-2.md5sums
/var/lib/dpkg/info/libcapi20-dev.md5sums
/var/lib/dpkg/info/libcapi20-dev.list
/var/cache/apt/archives/libcapi20-2_1%3a3.3.0.20041024-3_i386.deb
/var/cache/apt/archives/libcapi20-dev_1%3a3.3.0.20041024-3_i386.deb
/usr/share/doc/libcapi20-2
/usr/share/doc/libcapi20-2/changelog.Debian.gz
/usr/share/doc/libcapi20-2/copyright
/usr/share/doc/libcapi20-dev
/usr/share/lintian/overrides/libcapi20-2
/usr/include/capi20.h
/usr/lib/libcapi20.so.2.0.9
/usr/lib/libcapi20.so.2
/usr/lib/libcapi20.a
/usr/lib/libcapi20dyn.a
/usr/lib/libcapi20.la
/usr/lib/libcapi20.so
/usr/src/kernel-headers-2.6.8-1-686/include/config/isdn/capi/capi20
/usr/src/kernel-headers-2.6.8-1-686/include/config/isdn/capi/capi20/module.h
/dev/capi20
/dev/capi20.00
/dev/capi20.01
/dev/capi20.02
/dev/capi20.03
/dev/capi20.04
/dev/capi20.05
/dev/capi20.06
/dev/capi20.07
/dev/capi20.08
/dev/capi20.09
/dev/capi20.10
/dev/capi20.11
/dev/capi20.12
/dev/capi20.13
/dev/capi20.14
/dev/capi20.15
/dev/capi20.16
/dev/capi20.17
/dev/capi20.18
/dev/capi20.19
/proc/capi/capi20ncci
/proc/capi/capi20
/sys/class/tty/capi20
/sys/class/tty/capi20/dev

Wie bringt man chan_capi zum Laufen ?


Danke


Symedia
 
Was sagt den capiinfo ?

normalweise (so kjenn ich es jedenfalls) wird die capi per capiinit start inittialisiert ... nicht per modprobe ... schau auch mal nach /etc/capi.conf ob die ISDN Karte da richtig drin steht.

Ronny
 
Hallo Ronny,

Danke für Deine Antwort !

# capiinfo
-bash: capiinfo: command not found
# capiinit start
-bash: capiinit: command not found

Mein Sarge kennt offensichtlich die Befehle nicht ... Ich habe isdnutils installiert ...

apt-cache search capiinit findet nichts ...

In welchem Paket sind die Befehle ?

# cat /etc/capi.conf
#card file proto io irq mem cardnr options
fcpci - - - - - -


mfg

Symedia
 
Hallo rajo,

Danke für die Antwort. Ich habe isdnactivecards installiert aber es funktioniert wieder nicht.

# capiinit start
# capiinfo
capi not installed - No such device or address (6)
# capiinit stop
FATAL: Module capifs is in use.

# lsmod
Module Size Used by
capifs 5864 1
ipv6 264612 16
hisax_fcpcipnp 12000 1
hisax_isac 9044 1 hisax_fcpcipnp
hisax 573136 2 hisax_fcpcipnp,hisax_isac
crc_ccitt 2144 1 hisax
isdn 147948 5 hisax
slhc 7488 1 isdn

capi.conf ist ziemlich klein ...

# cat /etc/capi.conf
#card file proto io irq mem cardnr options
fcpci - - - - - -


Ich habe keine aktive Karte sondern passive PCI Fritz.

Was soll ich noch probieren ?

Danke

Symedia
 
Hallo,

Vornweg ein kleiner Tip: es gibt ein code-Symbol (Icon mit der #) mit dem sich lange Ausgaben zusammenfassen lassen, so dass man nicht ewig rumscrollen muss. (hab das mal oben reingepackt)

symedia schrieb:
# lsmod
Module Size Used by
capifs 5864 1
ipv6 264612 16
hisax_fcpcipnp 12000 1
hisax_isac 9044 1 hisax_fcpcipnp
hisax 573136 2 hisax_fcpcipnp,hisax_isac
crc_ccitt 2144 1 hisax
isdn 147948 5 hisax
slhc 7488 1 isdn
Nun, da ist noch Hisax (Isdn4linux) am laufen, weswegen das mit dem capi nicht tut. Ich vermute mal, dass die von discover automatisch geladen werden, am einfachsten dürfte sein discover zu deinstallieren und die module "von hand" in der /etc/modules zu laden. Ansonsten wenn Du einen eigenen Kernel gebacken hast, einfach noch einen ohne ISDN4Linux machen.

Du bräuchtest:
Code:
fcpci                 530336   2 
capi                   16896   4 
kernelcapi             29696   3  [fcpci capi]
capiutil               14816   0  [kernelcapi]
capifs

capi.conf ist ziemlich klein ...

# cat /etc/capi.conf
#card file proto io irq mem cardnr options
fcpci - - - - - -
Passt schon, ist ja Plug&Pray, der findet das schon selber.

Ich habe keine aktive Karte sondern passive PCI Fritz.
Joo... auch kein Problem. Des passt scho :)
 
Hallo rajo,

wie bringe ich den Hisax weg ?

Danke

Symedia

Code:
pc24:/usr/src# rmmod hisax
ERROR: Module hisax is in use by hisax_fcpcipnp,hisax_isac
pc24:/usr/src# rmmod hisax_fcpcipnp
ERROR: Module hisax_fcpcipnp is in use
pc24:/usr/src# rmmod hisax_isac    
ERROR: Module hisax_isac is in use by hisax_fcpcipnp
pc24:/usr/src# rmmod hisax_fcpcipnp
ERROR: Module hisax_fcpcipnp is in use
pc24:/usr/src# rmmod isdn          
ERROR: Module isdn is in use by hisax
 
fang mit shldc an ;-)
dann hisax_fcpcipnp
dann den rest

und schau in den rc.scripten nach ISDN und ob das script beim start im rl 3 (2) aufgerufen wird, wenn ja, entferne den link in den betreffenden runlevels

noplan
 
Hallo neoplan,

mit rmmod geht gar nichts weg :-(

Code:
pc24:/usr/src# rmmod shldc         
ERROR: Module shldc does not exist in /proc/modules
pc24:/usr/src# rmmod slhc
ERROR: Module slhc is in use by isdn
pc24:/usr/src# rmmod isdn
ERROR: Module isdn is in use by hisax
pc24:/usr/src# rmmod hisax
ERROR: Module hisax is in use by hisax_fcpcipnp,hisax_isac
pc24:/usr/src# rmmod hisax_isac
ERROR: Module hisax_isac is in use by hisax_fcpcipnp
pc24:/usr/src# rmmod hisax_fcpcipnp
ERROR: Module hisax_fcpcipnp is in use

Und in rc2.d und rc3.d gibt es ein Paar isdn relevante Sachen aber kein hisax.

Was davon soll ich löschen ?

Und dann rebooten ?

Aber chan_capi braucht capi20 ...


Code:
pc24:/usr/src# ls -l /etc/rc2.d
total 0
lrwxrwxrwx  1 root root 18 Dec 12 16:46 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx  1 root root 15 Dec 12 16:46 S11klogd -> ../init.d/klogd
lrwxrwxrwx  1 root root 25 Dec 15 18:30 S13isdnactivecards -> ../init.d/isdnactivecards
lrwxrwxrwx  1 root root 13 Dec 12 16:45 S14ppp -> ../init.d/ppp
lrwxrwxrwx  1 root root 15 Dec 12 16:45 S20exim4 -> ../init.d/exim4
lrwxrwxrwx  1 root root 15 Dec 12 16:45 S20inetd -> ../init.d/inetd
lrwxrwxrwx  1 root root 19 Dec 12 17:50 S20isdnutils -> ../init.d/isdnutils
lrwxrwxrwx  1 root root 17 Dec 12 16:43 S20makedev -> ../init.d/makedev
lrwxrwxrwx  1 root root 13 Dec 12 16:43 S20ssh -> ../init.d/ssh
lrwxrwxrwx  1 root root 13 Dec 12 16:46 S89atd -> ../init.d/atd
lrwxrwxrwx  1 root root 14 Dec 12 16:45 S89cron -> ../init.d/cron
lrwxrwxrwx  1 root root 19 Dec 12 16:44 S99rmnologin -> ../init.d/rmnologin
lrwxrwxrwx  1 root root 23 Dec 12 16:44 S99stop-bootlogd -> ../init.d/stop-bootlogd

pc24:/usr/src# ls -l /etc/rc3.d
total 0
lrwxrwxrwx  1 root root 18 Dec 12 16:46 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx  1 root root 15 Dec 12 16:46 S11klogd -> ../init.d/klogd
lrwxrwxrwx  1 root root 25 Dec 15 18:30 S13isdnactivecards -> ../init.d/isdnactivecards
lrwxrwxrwx  1 root root 13 Dec 12 16:45 S14ppp -> ../init.d/ppp
lrwxrwxrwx  1 root root 15 Dec 12 16:45 S20exim4 -> ../init.d/exim4
lrwxrwxrwx  1 root root 15 Dec 12 16:45 S20inetd -> ../init.d/inetd
lrwxrwxrwx  1 root root 19 Dec 12 17:50 S20isdnutils -> ../init.d/isdnutils
lrwxrwxrwx  1 root root 17 Dec 12 16:43 S20makedev -> ../init.d/makedev
lrwxrwxrwx  1 root root 13 Dec 12 16:43 S20ssh -> ../init.d/ssh
lrwxrwxrwx  1 root root 13 Dec 12 16:46 S89atd -> ../init.d/atd
lrwxrwxrwx  1 root root 14 Dec 12 16:45 S89cron -> ../init.d/cron
lrwxrwxrwx  1 root root 19 Dec 12 16:44 S99rmnologin -> ../init.d/rmnologin
lrwxrwxrwx  1 root root 23 Dec 12 16:44 S99stop-bootlogd -> ../init.d/stop-bootlogd

Gibt es einen 'normalen' Weg um chan_capi unter Sarge zum Laufen zu bekommen ?

Danke

Symedia
 
Hallo rajo,

1. Die Eintragungen in /etc/dicover.conf
Code:
skip hisax
skip hisax_fcpcipnp 
skip hisax_isac
haben nichts gebracht, hisax wurde trotzdem geladen.

2. ich habe dann die Eintragungen isdnutils und isdnactive cards in
/etc/rc2.d und /etc/rc3.d gelöscht.
Es hat keine Änderung gebracht, hisax wurde geladen.

2. ich habe dann die Eintragungen isdnutils und isdnactive cards in
allen /etc/rc0.d bis /etc/rc6.d und /etc/rcS.d gelöscht.
Jetzt bleibt das System beim Booten auf folgender Position stehen:
Code:
uhci_hcd ...
hub ...
CSLIP ...
ISDN Sybsystem ...
Hisax ...
[...]
PCI: Found IRQ 10 for device 0000:00:0f.0
hisax_fcpcipnp: found adapter Fritz!Card PCI at 0000:00:0f.0

Frage 1: Wie starte ich jetzt das System da kein CD und kein Floppy angeschlossen sind ?

Frage 2: Was habe ich falsch gemacht und wie kommt man zu funktionierendem chan_capi unter Sarge mit 2.6.8-1-686 ?

Danke

Symedia
 
Im Single User mode starten, ich glaube es war:
boot <kernel-name> init 1
dann / remounten und mount -a eingeben.

-> ISDN: es scheint, das debian irgendwo die ISDn Einstellungen gespeuchert hat, mach mal ein "grep -r hisax *" unter /etc. Das listet alle relevanten Dateien auf, in denen hisax vorkommt.

Sollte der Thread nicht nach Linux verschoben werden?

noplan
 
noplan schrieb:
Im Single User mode starten, ich glaube es war:
boot <kernel-name> init 1
Kommt drauf an, ob lilo oder grub, bei sarge duerfte es eher grub sein.
Wenn der Boot-screen erscheint, 'e' druecken, die zweite Zeile von oben auswaehlen, nochmal 'e' druecken, den Parameter "single" (ohne ") am Ende anhaengen, Enter druecken, und b.

dann / remounten und mount -a eingeben.
Das ist bei SingleUser Mode idR aber nicht noetig. Es sei denn, Du machst als Append-Zeile "init=/bin/bash"

Ggf. noch verraten, wie man / remounted:
mount -o remount,rw /

-> ISDN: es scheint, das debian irgendwo die ISDn Einstellungen gespeuchert hat, mach mal ein "grep -r hisax *" unter /etc. Das listet alle relevanten Dateien auf, in denen hisax vorkommt.

Hmm... kann sein. Auf alle Faelle haette er isdnactivecards nicht aus den runlevels rausloeschen sollen, denn das ist das fuer capi und das will man.

Sollte der Thread nicht nach Linux verschoben werden?
Jou. Besser iss das :)
 
Hallo neoplan,

ich habe jetzt gestartet in recovery mode und es werden folgende hisax Eintragungen gefunden (meistens nur skip und echo):

Code:
pc24:~# grep hisax -r /etc
/etc/discover.conf:skip hisax 
/etc/discover.conf:skip hisax_fcpcipnp 
/etc/discover.conf:skip hisax_isac
/etc/isdn/init.d.functions:            echo "    modules loaded. These will probably be 'isdn' and 'hisax'."
/etc/isdn/init.d.functions:            echo " no ISDN cards configured! Please configure 'hisax' module with modconf"
/etc/isdn/init.d.functions:        # clearly not a hisax card...
/etc/isdn/init.d.functions:            ?*)              hisaxctrl $cardid 1 4
/etc/isdn/init.d.functions:                ?*)         hisaxctrl $cardid 1 4
/etc/discover-autoskip.conf:skip hisax_fcpcipnp

Und hier noch Start-Teil aus /etc/isdn/init.d.functions
Code:
start_isdnlog() {
    check_isdncards # side-effect: sets $isdncards
    what=' isdnlog'
    cardnum=0   # counts in channels, just like /dev/isdnctrlX
    for optionfile in /etc/isdn/isdnlog.isdnctrl[02468]; do
        test -e $optionfile || continue;
        if grep -s "$NOT_CONFIGED" $optionfile > /dev/null; then
            not_configured="$not_configured$optionfile "
            continue    # next patient please...
        fi
        device=${optionfile#*.}
        device=${device%.*}
        if   [ -e /dev/$device ];      then DEVISDNCTRL=/dev/$device;
        elif [ -e /dev/isdn/$device ]; then DEVISDNCTRL=/dev/isdn/$device;
        else
            echo " error:"
            echo "    Neither /dev/$device nor /dev/isdn/$device exist!"
            continue
        fi
        devicenum=${device#isdnctrl}
        devicenum=$(($devicenum / 2))
        set -- $isdncards
        if [ $devicenum -gt 0 ]; then
            shift $devicenum
        fi
        cardid=$1; shift
        if [ -z "$cardid" ]; then
            echo " error:"
            echo "    There doesn't appear to be a $device device!"
            continue
        fi
        if $isdn_verbose; then /bin/echo -e "$what\c"; what=''; fi
        # Enable debugging for this card (isdnlog requires "1 4",
        # for D-Channel Q.931, call control messages) unless it's
        # clearly not a hisax card...
        case "$cardid" in
            capidrv-*)  ;;
            ?*)         hisaxctrl $cardid 1 4
                        # the ?* doesn't match an empty string
                        ;;
        esac
        # test for isdnctrl dualmode. With dualmode, one isdnlog listens to
        # two cards, and both cards must have the D-channel tracing enabled.
        if grep '^[     ]*dual=' $optionfile >/dev/null 2>&1; then
            cardid=$1; shift
            case "$cardid" in
                capidrv-*)  ;;
                ?*)         hisaxctrl $cardid 1 4
                            ;;
            esac
        fi
        start-stop-daemon --start --pidfile=/var/run/isdnlog.$device.pid \
            --quiet --exec /usr/sbin/isdnlog -- -D -f$optionfile $DEVISDNCTRL &
    done
    daemon=false
    socket=/var/run/isdnrate/socket
    if [ -s /etc/isdn/isdnrate.conf ]; then
        set +e
        . /etc/isdn/isdnrate.conf
        set -e
        if $daemon; then
            /usr/bin/isdnrate -D2 -O$socket
        fi
    fi
}

Was sollte noch gelöscht werden um hisax wegzubekommen und doch genug von ISDN zu starten für chan_capi ?

Wie starte ich das System im normalen Mode ?

Danke

Symedia
 
Ich habe jetzt folgende Schritte gemacht:
- isdnactivecards und isdnutils deinstalliert
- nur isdnactivecards wieder installiert
- isdnactivecards von /etc/rc2.d und /etc/rc3.d entfernt
- hisax, hisax_fcpcipnp und hisax_isac entfernt (jetzt is es gegangen)

Jetzt bootet das System normal :)

lsmod
Code:
# lsmod
Module                  Size  Used by
ipv6                  264612  10 
crc_ccitt               2144  0 
isdn                  147948  0 
slhc                    7488  1 isdn
uhci_hcd               33136  0 
usbcore               119012  3 uhci_hcd
pci_hotplug            34640  0 
intel_agp              22816  1 
parport_pc             35392  0 
parport                41832  1 parport_pc
floppy                 61200  0 
pcspkr                  3592  0 
evdev                   9600  0 
via_rhine              21576  0 
mii                     5120  1 via_rhine
crc32                   4320  1 via_rhine
agpgart                34696  1 intel_agp
capability              4520  0 
commoncap               7232  1 capability
ide_cd                 42656  0 
cdrom                  40732  1 ide_cd
rtc                    12760  0 
ext2                   71848  1 
mbcache                 9348  1 ext2
ide_generic             1408  0 
piix                   13440  1 
ide_disk               19296  3 
ide_core              139940  4 ide_cd,ide_generic,piix,ide_disk
unix                   28692  4 
font                    8320  0 
vesafb                  6656  0 
cfbcopyarea             3840  1 vesafb
cfbimgblt               3040  1 vesafb
cfbfillrect             3776  1 vesafb

Wenn ich Asterisk starte kommt wieder die Fehlermeldung:

Code:
write(1, "Dec 20 23:13:08 \33[1;33;40mNOTICE"..., 140Dec 20 23:13:08 NOTICE[1659]: chan_capi.c:2635 load_module: ) = 140
write(1, "CAPI not installed!\n", 20CAPI not installed!
)   = 20
time([1103580788])                      = 1103580788
getpid()                                = 1659
write(6, "Dec 20 23:13:08 WARNING[1659]: c"..., 78) = 78
getpid()                                = 1659
write(1, "Dec 20 23:13:08 \33[1;31;40mWARNIN"..., 143Dec 20 23:13:08 WARNING[1659]: loader.c:345 ast_load_resource: ) = 143
write(1, "chan_capi.so: load_module failed"..., 47chan_capi.so: load_module failed, returning -1
) = 47
open("/dev/capi20", O_RDWR)             = -1 ENXIO (No such device or address)
time([1103580788])                      = 1103580788
getpid()                                = 1659
write(6, "Dec 20 23:13:08 WARNING[1659]: U"..., 63) = 63
getpid()                                = 1659
write(1, "Dec 20 23:13:08 \33[1;31;40mWARNIN"..., 143Dec 20 23:13:08 WARNING[1659]: chan_capi.c:2811 unload_module: ) = 143
write(1, "Unable to unregister from CAPI!\n", 32Unable to unregister from CAPI!
) = 32
  == Unregistered channel type 'CAPI';40mUnregi"..., 59
) = 59

Was fehlt hier noch ?

Danke

Symedia
 
Hallo Forum,

es ist mir gelungen nach dem Hinweis von rajo chan_capi zu installlieren. Wichtig war das Paket von AVM.
> 1. capi im Debian: http://www.topf-sicret.de/help/capi20.html

Allerdings helfen die folgende Eintragungen in /etc/discover.conf und in /etc/discover-autoskip.conf nicht, Hisax wird immer geladen !

Code:
skip hisax 
skip hisax_fcpcipnp 
skip hisax_isac

ich habe dann den Kernel ohne isdn4linux kompiliert und jetzt is es ok.

Vielen Dank für alle Beiträge.

mfg

Symedia
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,696
Mitglieder
371,315
Neuestes Mitglied
jack-mack
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.