Update 08.08.2006: Nutzer von Fedora Core 5 lesen bitte diesen Artikel.
Nachdem mit dem heutigen Update der selinux-policy-targeted Unterstützung für das capifs bereitsteht, nehme ich mir die Zeit, ein kurzes HowTo zur Verwendung der AVM FritzCards unter Fedora Core 4 zu schreiben.
Zumindest die internen ISDN-FritzCards arbeiten mit den bewährten Hisax-Treibern unter Fedora auf Anhieb problemlos, wer aber für Anwendungen wie Fax-over-ISDN die proprietären CAPI-Treiber von AVM nutzen will, muß aufgrund der Probleme mit udev ein wenig Handarbeit anlegen. Dazu später, ersteinmal gilt es, das AVM Kernelmodul fcpci zu installieren. Für die Fritzcard PCI gibt es fertige Pakete bei Axel Thimm, für andere Karten wie die FritzCard DSL muß man sich das Kernelmodul selbst bauen.
ISDN deaktivieren:
service isdn stop
chkconfig isdn off
Falls die Fritzcard in der Netzwerkkonfiguration system-config-network als Ethernet-Gerät auftaucht, diesen Eintrag löschen. Von der Konsole kann man das erledigen, indem man die Datei /etc/sysconfig/idsncard löscht/verschiebt und außerdem den entprechenden “alias ethX hisax” aus der Datei /etc/modprobe.conf löscht. Jetzt sollten bei Booten keine ISDN Module mehr geladen werden.
Installation mittel yum:
yum --enablerepo=at-stable install fcpci
Sollte yum dabei durcheinander kommen und Euren Kernel up- oder downgraden sollte, versucht es mit:
yum --enablerepo=at-stable install fcpci-kmdl-`uname -r`
Eigenbau des Moduls:
Wer dennoch das Kernelmodul selbst bauen möchte oder muß, läd es sich vom AVM-FTP-Server herunter, für die Fritzcard DSL und einen aktuellen 2.6.12er Kernel zum Beispiel das Archiv fcdsl-suse93-3.11-07.tar.gz.
Zum Übersetzen muß das Paket kernel-devel (des aktuellen Kernels) installiert sein.
yum install kernel-devel
wget ftp://ftp.avm.de/cardware/fritzcrd.dsl/linux/suse.93/fcdsl-suse93-3.11-07.tar.gz
tar xzf fcdsl-suse93-3.11-07.tar.gz
cd fritz
make
make install
depmod -ae
Die letzen beiden Befehle müssen als root ausgeführt werden, bei der DSL Karte muß root zusätzlich noch die Firmware fdslbase.bin nach /usr/lib/isdn kopieren:
cp fdslbase.bin /usr/lib/isdn.
Wenn depmod keine Fehler gebracht hat, geht es weiter mit der Anpassung der /etc/capi.conf. Da diese nicht im Paket von Axel Thimm enthalten ist, poste ich meine mal in voller Länge. Bis auf die eingebaute Karte müssen alle anderen Einträge auskommentiert sein.
# card file proto io irq mem cardnr options
#b1isa b1.t4 DSS1 0x150 7 – – P2P
#b1pci b1.t4 DSS1 – – – –
#b1pci – – – – – –
#b1pci – – – – – – P2P
#b1pciv4 b1.t4 – – – – –
#c2 c2.bin DSS1 – – – –
#c2 – DSS1 – – – –
#c4 c4.bin DSS1 – – – –
#c4 – DSS1 – – – –
#c4 – DSS1 – – – – P2P
#c4 c4.bin DSS1 – – – – P2P
#t1isa t1.t4 DSS1 0x340 9 – 0
#t1pci t1.t4 DSS1 – – – –
#fcclassic – – 0x300 5 – –
fcpci – – – – – –
#fcpcmcia – – – – – –
#fcpnp – – 0x150 10 – –
#fcdsl fdslbase.bin – – – – –
#fcdsl2 fds2base.bin – – – – –
#fcusb – – – – – –
#fcusb20 fus2base.frm – – – – –
#fcusb21 fus3base.frm – – – – –
#fxusb – – – – – –
#fcdslusb fdsubase.frm – – – – –
#fcdslsl fdssbase.bin – – – – –
#fcdslslusb fdlubase.frm – – – – –
Wer denkt, jetzt die capi mittels capiinit starten zu können, irrt sich. Zuerst gilt es noch, zwei udev-Rules anzulegen. Ich habe das in der Datei /etc/udev/rules.d/10-capi.rules getan:
SYSFS{dev}=”68:0″, NAME=”capi20″
SYSFS{dev}=”191:[0-9]*”,NAME=”capi/%n”
(Hintergründe dieses dirty Hacks in diesem Bugzilla Eintrag)
Immer noch meldet capiinit beim ersten Start, daß kein /dev/capi20 vorhanden ist, udev erstellt es leider erst, nachdem capiinit scheitert. Deshalb ein weiterer kleiner Hack:
cd /etc/udev/devices
mknod -m 666 capi20 c 68 0
Auch nicht schön, aber der Aufruf von capiinit sollte jetzt keine Fehler mehr produzieren und alle Module laden. Wir überprüfen das:
# lsmod
Module Size Used by
fcpci 589592 0
capi 17537 0
kernelcapi 46561 2 fcpci,capi
capifs 5961 2 capi
...
Sieht gut aus, jetzt ist es an der Zeit, ein init-Skript zu erstellen, um die Capi automatisch beim Systemstart zu laden. Mein /etc/init.d/capi sieht so aus:
#!/bin/sh
#
# capi Script to start and stop capi for passive ISDN Cards
#
# chkconfig: – 55 45
# description: capi4linux is a CAPI 2.0 Implementation by AVM # for passive ISDN-Cards like the die Fritz!Cards
# probe: true# Source function library.
. /etc/rc.d/init.d/functions
[ -f /sbin/capiinit ] || exit 0
[ -f /etc/capi.conf ] || exit 0
RETVAL=0# Starten oder stoppen?
case “$1” in
start)
# Start
echo -n “Starting capi4linux: ”
## If you have trouble with capiinit load the modules
## with modprobe. Should not be necessary at the moment!
# modprobe capifs
# modprobe kernelcapi && modprobe capi && modprobe fcpci
/sbin/capiinit
RETVAL=$?
echo
;;
stop)
# Stop.
echo -n “Stopping capi4linux: ”
/sbin/capiinit stop
## removing capifs DOES NOT work (Module in use)
# rmmod capifs
RETVAL=$?
echo
;;
status)
capiinfo
exit $?
;;
restart)
$0 stop
$0 start
;;
*)
echo “Usage: capi {start|stop|status|restart}”
exit 1
esacexit $RETVAL
Drei Handgriffe, damit unser neues Script bei jedem Boot ausgeführt wird:
chmod +x /etc/init.d/capi
chkconfig --add capi
chkconfig capi on
Bevor ihr neu bootet stellt sicher, daß ihr mindestens selinux-policy-targeted-1.25.4-10 installiert habt oder SELinux deaktiviert/im permissive Mode läuft, anderenfalls werdet ihr eine Menge Kernel-Oopses sehen, bei mir waren es 118 nur während des Bootens (mehr dazu hier).
Auf die Konfiguration der des ppp gehe ich an dieser Stelle nicht mehr ein, die Dokumentation von AVM sollte ausreichen. Für alle, die es gerne ausführlich mögen:
- Howto: ISDN Fritz PCI 2.0 unter Debian von Gert Brinkmann
- Fritz!Card DSL-HOWTO von Uwe Zeisberger
Hallo Herr Wickert,
vielen dank für das HOWTO!
Sobalb ich capiinit ausführe, bekomme ich die Fehlermeldung “ERROR: failed to load driver fcpci” komm da nicht weiter!
mfg
Lubo
Hallo Lubo!
Für Dich, wie für alle Besucher meines Blogs gilt, daß Ihr mich natürlich duzen könnt.
Die Unklarheiten haben wir mittlerweile per Mail geklärt, ich habe den Artikel nochmal leicht überarbeitet und hoffe doch, daß es jetzt bei Dir läuft.
Für die Interessierten: Bei Lubo gab’s schöne Oopses beim Laden des Moduls, warum, versuchen wir grade zu klären.
Hi Christoph,
das HOWTO ist echt der Hammer! Hab drei volle Tage mit dem Sch…. verbracht, bis ich dann endlich auf Dein Howto gestoßen bin und jetzt läuft alles wunderbar!
Eine kleine Anmerkung hab ich noch: Man sollte mittels modprobe -r die hisax-Treiber weghauen, sonst lädt er zumindest bei mir nicht den fcpci-Treiber (error -17 im log).
Das könnte auch Lubo helfen ;)))
(ich mußte zuerst den hisax_fcpcipnp rausladen, damit ich den hisax_isac (der die Probleme macht) entfernen konnte)
Liebe Grüße,
Beppe
Hallo,
hat das auch schon mal jemand mit ner Fritz Classic ISA Karte hinbekommen (Fedora Core 4 mit 2.6 Kernel)?
Bisher noch nicht, da ich es noch nicht ernsthaft versucht habe. Ich habe hier eine ISA Karte, allerdings ist Debian Sarge auf dem Rechner. Vielleicht finde ich die Zeit, mich mal mit der Karte unter Fedora zu beschäftigen und das HowTo entsprechend zu aktualsieren. Schau also wieder rein oder hinterlasse mir eine Nachricht (-> Kontakt), am besten mit Fehlerbeschreibung, dann schauen wir weiter.
Die Fritz Classic läuft jetzt unter FC4! Ich habe es jetzt selber hinbekommen.
Es gibt aber dirkt bei AVM keine Treiber mehr für SuSe9 (bzw 2.6 Kernel), da diese jetzt bestandteil von SuSE9 sind).
Ich habe mir jetzt von einem SuSE ftp das Archiv km_fritzcapi-2.6-35.i586.rpm besorgt, was die Quellen für die Kernelmodule beinhaltet.
Nur das Anlegen von /dev/capi20 ,/dev/isdnctrl0 und /dev/isdninfo ist noch etwas unschön, ebenso brauche ich noch den link für /dev/faxCAPI für Hylafax.
Es gibt ein update zu udev wo Deine obige Ergänzung auch in 50-udev.rules integriert ist.
Ihrgentwie verstehe ich den Vorteil von udev nicht, früher bei RH9 legte man die Devices und Links einmal an und gut wars.
Servus!
Bin auf deine Anleitung gestoßen, die unter FC4 auch gut funktioniert. Jetzt hab ich hier einen Rechner unter Red Hat Enterprise Linux 4 und dachte es würde dort genauso funktionieren. Dem ist aber leider nicht so.
Das Anlegen der “10-capi.rules” und des “capi20” bewirkt irgendwie nichts.
Ob die Daten da sind oder nicht ändern an der Fehlemeldung nichts. immer noch:
“cannot open /dev/capi20 nor /dev/isdn/capi20 – No such device or adress (6)”
Unter /dev/ steht aber die capi20!
Vielleicht ne Idee wo das Problem liegen könnte ?
Hallo Markus!
So auf die Schnelle kann ich Dein Problem nicht lösen. Die SELinux Konfiguration ist IIRC unter Core 3 und 4 verschieden, ich denke, das bei RH EL 4 noch die ältere Konfig analog zu Core 3 verwendet wird.
Bitte kontaktiere mich über das Kontakformular und hinterlass Deine Email, dann können wir das Problem auf diesem Wege lösen.
hey markus … beschäftige mich gerade auch mit dem problem mit der firzcard auf redhat el 4 … ich würde eher sagen, dass das problem wo anders wäre …
probier mal ein:
modprobe -v fcpci
bei mir gabs eine kernel panic … der fehler war immer reproduzierbar, ich habe jetzt den smp kernel installiert, nun funktionert es. capiinit lässt sich auch ausführen, mit den oben genannten einschränkungen 😉 im schlimmsten fall capiinit zwei mal ausführen …
für alle mit fc3/centos4/whitebox/redhat4
http://friendglow.net/en/faq/faq_kernel26_udev_en.shtml
es kann sein, dass es dennoch nicht klappt, weil im kernel der capidrv fehlt, der das ganze regelt … eine möglichkeit wäre den kernel selbst zu kompilieren und in der config
CONFIG_ISDN_CAPI_CAPIDRV=m
per hand einfügen (geht nicht über das make menuconfig) … es handelt sich hier um die sprms von redhat .. kernel 2.6.9-22.0.1.EL …
oder sich einen neueren kernel besorgen 😉
Habe den Rechner nun unter FC4 am laufen.
Sollte ich die Zeit noch finden,
werde ich es mal wieder mit REL4 versuchen.
Hi Christoph,
Erstmal herzlichen Dank für dein ausführliches HowTo.
Habe dein HowTo von oben nach unten abgearbeite.
Leider komme ich beim ausführen von “capiinit” eine Fehlermeldung
OS: FC4
kernel:2.6.14-1.1656_FC4
gcc: 4.0.2 20051125
FritzCard PCI 2.1
Der fcpci Treiber ist das rpm von Axel Thimm.
SELinux ist deaktiviert
Ausgabe von “capiinit”:
FATAL: Error inserting fcpci (/lib/modules/2.6.14-1.1656_FC4/updates/drivers/isdn/fritz/fcpci.ko): Invalid module format
ERROR: failed to load driver fcpci
Ausgabe von “modprobe fcpci”
FATAL: Error inserting fcpci (/lib/modules/2.6.14-1.1656_FC4/updates/drivers/isdn/fritz/fcpci.ko): Invalid module format
An dieser Stelle komme ich irgendwie nicht weiter.
Falls jemand von euch eine Idee hat wäre ich für einen Hinweis dankbar.
Vielen Dank für eure Hilfe.
MfG
Christian
Hi Christoph,
Noch ein Nachtrag zum vorhergehenden post.
habe den isdn daemon deaktiviert.
Laut “lsmod” sind auch keine hisax Module mit geladen.
capi 18305 0
kernelcapi 47681 1 capi
capifs 6089 2 capi
sind die einzigen ISDN relevanten Module.
(Sorry fürs spammen habs versucht aufs notwendigste zu beschränken :/ )
Jedoch unter /var/log/messages
wird hisax geladen oder irre ich mich da?
Nein, Edwin, man muß sich keinen neuen Kernel besorgen, auch wenn der capidrv im Kernel fehlt, denn den capidrv braucht man nur für alte Anwendungen, die nicht mit der capi umgehen können (z. B. isdnlog). Der pppd hat sein capiplugin, Hylafax capi4hylafax usw.. Meist kommt man also gut ohne capidrv klar. Im FC3 Kernel ist er übrigens enthalten, was mit Whitbox/CentOS/RHEL4 ist, weiß ich nicht.
Was Herbert da auf seiner Seite schreibt, kann ich nicht nachvollziehen. Ja, es gibt Probleme, aber die lassen sich wie ich hier gezeigt habe relativ einfach lösen, wenn man sich mal die Dikumentation von udev durchliest. Das hier ist meiner Meinung nach alles andere als konstruktiv:
Hallo, leider gibt es für die Fritzcard seit April 2006 keine fertigen Pakete mehr bei Axel Thimm. Kann mir jemand eine andere passive Karte empfehlen, die in Fedora FC4 oder FC5 unterstützt wird, ohne dass ich mir Kernel-Module selbst kompileren muss?
Zur Zeit nicht. Unterstützt werden die Karten ja, aber halt nur mit Hisax. 😉
Schade. Habe hier hylafax mit FC4 und Fritzcard im Einsatz. Fax und hisax vertragen sich ja nicht. Kann nun nicht mehr einfach auf neue Kernel updaten, muss wohl eine andere Lösung suchen. ISDN wird wohl bei Fedora immer ein Stiefkind bleiben?
Es ist sehr hilfreich, dass es diese Seite gibt – ein grosses Dankeschoen an Christoph dafuer.
Wir benutzen die AVM Fritz!PCI v2.0 ISDN (rev 02) unter RHEL4 zusammen mit Hylafax.
Es grenzte schlichtweg an ein Wunder, dass wir nach dieser Anleitung hier im
September 2005 die Unzulaenglichkeiten der CAPI-Implementation im RHEL4 umgehen
konnten.
Was noch groesserer Zufall war, wir hatten den Kernel Crash nicht, der ereilte uns erst
spaeter. Zweifelsfrei und nachvollziehbar tritt dieser nur beim UP-Kernel auf. Das fcpci
Kernelmodule aus der Source fcdsl-suse93-3.11-07.tar.gz hat seither bei jedem
Kernelupdate fuer den SMP-Kernel unter RHEL4 funktioniert. Warum dem so ist? Da
AVM einen Closed Source Teil verwendet, hat auch Red Hat keine Moeglichkeit
herauszufinden, was schief geht. Fest steht nur, der Crash kommt beim Up-Kernel vom
fcpci Module.
Mir ist bekannt, dass AVM lieber auf den Herrn Huebner hoert. Daraus folgte auch, dass
selbst die Anfrage von Red Hat zum RHEL4 UP-Kernel Crash Problem abgewuergt
wurde. “Eine solche Karte ist nicht fuer diesen Einsatz gedacht, man solle aktive Karten
benutzen. Aussendem hat fuer alles AVM schliesslich auch die passende Software im
Angebot.”
Eine Garantie, dass es mit aktiven Karten keine Probleme unter Linux geben soll?
Fehlanzeige – alles nur Marketing.
SuSE wird unterstuetzt, man kann nicht die ganze Breite der Distros abdecken.
In Summe: Dank dem Herrn Huebner und seinen an manchen Stellen voellig
unqualifizieren Meinungen bezogen auf ISDN und CAPI unter Red Hat gibt es wohl
keine weiterbringende Linux Unterstuetzung von AVM, falls das Ding nicht SuSE heisst.
Fuer RHEL5 ist angekuendigt, dass die CAPI-Probleme in Ordnung gebracht werden.
Zu RHEL4 ist gerade was im Gange, ob das als Berichtigung kommt und wann, ist offen.
Werde es morgen genauer testen, habe aber gesehen, dass bis auf das dieser Hack
cd /etc/udev/devices
mknod -m 666 capi20 c 68 0
alles enthalten ist. Fuer capiinit gibt es ein neues Binary.
Axel Thimm ist wohl auf Grund des Kernel Crashes auch eher etwas zurueckhaltend
mit RPMs fuer neuere Kernel.
Weil es in einem Kommentar angesprochen wurde, was spricht denn dagegen, beim
Booten vor dem Laden des fcpci Modules nachzusehen, ob dieses Module zum gerade
bootenden Kernel bereits vorhanden ist und es sonst waehrend der Bootzeit passend zu
uebersetzen? Es gibt schliesslich noch mehr Kernelmodule, die nicht Bestandteil des
Kernels sind. Funktioniert so bei mir sehr gut, da ich es leid war, jedesmal eine Hand
voll Module erst neu zu uebersetzen.
Gruss,
Uwe
IBM R52 internal Bluetooth
FEDORA CORE 5
BlueFRITZ! AP-ISDN
rpm -Uhv isdn4k-utils-3.2-43.i386.rpm # rawhide
chkconfig –add capi
echo “capi20” > /etc/udev/makedev.d/10-capi.nodes
echo “SYSFS{dev}=\”68:0\”, NAME=\”capi20\””
> /etc/udev/rules.d/10-capi.rules
echo “SYSFS{dev}=\”191:[0-9]*\”, NAME=\”capi/%n\”” >> /etc/udev/rules.d/10-capi.rules
unter KDE im terminal
bluez-pin –dbus # nur einmal für Pineingabe zum Pairing notwendig
ciptool search # um Bluetooth-Verbindung aufzubauen
# am besten vorher cut “PIN” und nach Pinabfrage paste “PIN”
# sonst zeitlich nicht zu schaffen (timeout chiptool)
capiinfo
> number of Controllers : 1
> Controller 1:
> Manufacturer: AVM Berlin
> CAPI Version: 2.0
> Manufacturer Version: 3.11-04 (49.20)
> Serial Number: 123456
> BChannels: 2
> Global Options: 0x00000031
> internal controller supported
> Supplementary Services supported
> channel allocation supported (leased lines)
> B1 protocols support: 0xc000000f
> 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
> B2 protocols support: 0x00000b0b
> ISO 7776 (X.75 SLP)
> Transparent
> LAPD with Q.921 for D channel X.25 (SAPI 16)
> ISO 7776 (X.75 SLP) with V.42bis compression
> V.120 asyncronous mode
> V.120 bit-transparent mode
> B3 protocols support: 0x8000000f
> Transparent
> T.90NL, T.70NL, T.90
> ISO 8208 (X.25 DTE-DTE)
> X.25 DCE
>
> 0100
> 0200
> 31000000
> 0f0000c0
> 0b0b0000
> 0f000080
> 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
BlueFRITZ! AP-ISDN funktioniert und alles GPL!
Danke fuer das HOW TO, ohne es haette ich nicht gewust wie.
Hat jemand einen blassen schimmer wie das mit der Fedora Core 5 tut … 2.6.16er kernel … habe die halbe Nacht gefummelt 🙁
Schau Dir mal bitte diesen Beitrag im Fedoraforum an, am besten den ganzen Thread lesen. Hintergründe dazu auch auf der ISDN4Linux Mailingliste. Bei mir geht’s damit, werde das HowTo updaten.
Hi,
also ich hab jetzt 3 Tage gekämpft und hab es erstmal weggelegt – heißt nicht zum Laufen gebracht.
BS ist CentOS 4
Fritzkarte PCI
Fehler meldung ist das ISDN-Module nicht gekaden werden.
Gruss Kersten
ISDN module sollen ja auch nicht geladen werden!
service isdn stop
chkconfig isdn off
Wenn Du in /etc/modprobe.conf einen Eintrag für hisax als Ethernetkarte hast, solltest Du diesen löschen/auskommentieren bzw. ändern auf fcpci.
Habe seit einiger zeit meine Fritz! Card PCI unter FC4 laufen.
Hylafax funktioniert auch wunderbar. Jedoch würd ich gern wissen ob ich mir irgendwie eingehende Anrufe anzeigen lassen kann. Also auch die, die nicht von Hylafax angenommen werden. Irgendwie steht in keinem logfile was drin und c2faxrcvd loggt nur die Anrufe die auch angenommen werden. Am schönsten wär natürlich wenn man bei eingehenden Anrufen einen Befehl ausführen kann, dann könnt ich mir das auf meinen Windowsrechnern anzeigen lassen.
Ja, Phadric, das geht, ich hatte mir sowas mal gebastelt. Das sah in etwa so aus:
capidrv laden und dann den isdnlogd nehmen, um Anrufe zu loggen. Ich hatte den isdnlogd so konfiguriert, daß er eingehende Anrufe zusätzlich zum Log an eine Pipe weiterleitet. Dort wurden sie von einem einfachen Skript abgegriffen, daß dann je nach Ziel-MSN mit smbclient eine Winpopup-Nachricht an den entsprechenden Rechner im Netz geschickt hat.
Hört sich jetzt ziemlich verwirrend an, vielleicht finde ich mal Zeit, das ganze niederzuschreiben.
hallo,
bin nach anleitung vorgegangen, aber bei ausführen von capiinit bekomme ich nicht mehr als “ERROR: cannot load module kernelcapi”. Weiss jemand wo der fehler liegen könnte?
Welcher Kernel? Existiert das Modul kernelcapi.ko unter /lib/modules//kernel/drivers/isdn/capi/? Irgendwelche Fehler in /var/log/messages?
hallo,
sorry das es eine ewigkeit gedauert hat bis ich mich wieder melde. An dem Problem hat sich bisher nichts geändert.
Kernel:
kernel-2.6.9-42.0.2.EL
Das Kernel Modul liegt in:
/lib/modules/2.6.9-42.0.2.EL/kernel/drivers/isdn/capi/kernelcapi.ko
Das system ist Centos 4.4 (1:1 REHL 4 clone – basiert auf FC3). Die passenden module wurde vom ATrpms repository instaliert. Irgendwelche meldungen im syslog gibt es nicht. Das system ist ziehmlich schweigsam wenn es um diesen fehler geht.
Hallo Fassybär,
zu CentOS kann ich Dir leider im Moment nichts sagen, aber ich werde wohl mal ein CentOS System aufsetzen, um das zu testen.
hallo christoph,
gibs es schon etwas neues von der centos front?
Leider nicht. Aufgrund meines Umzuges habe ich zur Zeit nichteinmal ISDN 🙁