Das ist ein Speicherproblem. Es bedeutet, da{[szlig ]} Du zuwenig unfragmentierten Speicher hast. W{[auml ]}hrend 2.0.x Kernel mit kleiner Speicherausstattung/langsamer Hardware funktionieren m{[ouml ]}gen (das Anrufbeantworter-System des Autors ist ein 386er und l{[auml ]}uft mit 4MB RAM), kannst Du auch mit 32M RAM mit dem Problem der Speicher-Fragmentierung konfrontiert werden. Das Problem wurde seit der Kernelversion 2.2.14 verringert indem ISDN4LINUX's Speicherbelegung auf den Gebrauch von vmalloc umgestellt wurde.
Du kannst versuchen, den Speicherbedarf zu senken (siehe trouble_littlememory), ISDN4LINUX in den Kernel fest einzubinden oder ein umfangreiches Programm zu starten und gleich wieder zu beenden um diese Probleme zu mindern.
Versuche die folgenden Ans{[auml ]}tze:
/usr/src/linux/include/linux/isdn.h
die Zeile
#ifdef CONFIG_COBALT_MICRO_SERVER
#if 1
include/linux/isdn.h
und {[uuml ]}bersetze den Kernel neu.Dazu gib folgende Befehle ein:
hisaxctrl {[lt ]}id{[gt ]} 1 0x33ff hisaxctrl {[lt ]}id{[gt ]} 11 0xf4f killall isdnlog cat /dev/isdnctrl > /tmp/ilog
Empfohlen werden die folgenden Schritte:
Call from 0,1,2345 -> 6789
ATS18=1
auf Audio setzen. Nun sollte das Telefon bei der
Eingabe von ATDxxxxxx
klingeln, wobei xxxxxx Deine eigene MSN
ist./dev/ttyI0
und im zweiten auf
/dev/ttyI1
. Anschlie{[szlig ]}end w{[auml ]}hle 'Exit' und starte
die Modem-Emulation mit 'ATZ' und 'AT{[amp ]}Exxxxxx' (wobei xxxxxx Deine
eigene MSN ohne Vorwahl ist). Fertig. Im ersten Fenster w{[auml ]}hlst Du
Deine eigene Nummer mit ATDxxxxxx. Im zweiten Fenster solltest Du nun
"CALLER NUMBER: xxxxxxx" und "RING" sehen. Nimm den Ruf im zweiten
Fenster mit 'ATA' an und es erscheint die Meldung 'CONNECT 64000/X.75'
in beiden Fenstern. Du kannst jetzt Zeichen von einem zum anderen
Fenster senden (schalte LOCAL ECHO ein um die Zeichen im sendenden
Fenster zu sehen).Anderenfalls ist ein Beispielscript aus dem HowTo sehr zu empfehlen
(siehe Frage 'Wo finde ich Scripts und andere Informationen zum
Einrichten von I4L?'). Zum Testen kannst Du Deinen eigenen Provider
benutzen oder einen der Gast-Zug{[auml ]}nge (siehe
Gibt es Sites, die einen Gastzugang anbieten, wo ich meine ISDN4LINUX-Einstellungen testen kann?). Die
letzteren bieten den Vorteil, da{[szlig ]} sie die Log-Dateien sehen und
auch eine funktionierende Konfiguration feststellen k{[ouml ]}nnen. Wenn
z.B. eine Verbindung {[uuml ]}ber ipppd nicht zustande kommt, kannst Du
Dich dort via Modem oder Modem-Emulation einloggen und herausfinden,
woran es lag. Nicht alle Provider sind so kooperativ.... :-)
dmesg
einsehen kannst.kernel: HSCX version A:5 B:5
und kernel: channels
2
erscheinen. A:4 B:4
ist ebenfalls in Ordnung. Andere
Werte (insbesondere A:??? B:???
) bedeuten, da{[szlig ]} die
Karte nicht richtig erkannt wurde. HiSax wird nur geladen wenn die
Hardware gefunden wird und die passenden Interrupts ausgel{[ouml ]}st
werden k{[ouml ]}nnen. Das bedeutet, die Karte ist richtig im Computer
installiert und es bestehen keine Hardware-Konflikte. Es bedeutet
nicht, da{[szlig ]} alles funktionieren wird (z.B., verdrehte oder
gebrochene Kabel, falsch gesetzte Terminatoren).lspci -v
cat /proc/interrupts
11: 3 + hisaxBei einem Anruf an Dich selbst sollte sich die Anzahl der ausgel{[ouml ]}sten Interrupts erh{[ouml ]}hen.
cat /proc/ioports
Eine Erkl{[auml ]}rung dieser Meldung bekommst Du mit dem Befehl man
isdn{[lowbar]}cause
.
Bei dem sehr verbreiteten Fehler "cause: E001B" sieh Dir die folgende
Frage
trouble_e001b an.
Dies ist ein sehr verbreiteter Fehler und bedeutet (siehe man
isdn{[lowbar]}cause
): EuroISDN (E), User-Seite (00), au{[szlig ]}er Funktion
(1b).
Zusammen genommen bedeutet das entweder, da{[szlig ]} der Treiber keine
Layer 1 Verbindung herstellen kann (Kabelproblem, Hardwarefehler,
verborgene Hardwarekonflikte - siehe Bereich
hardware) oder er kann keine Layer 2 Verbindung bekommen
(falsche Konfiguration: kein EuroISDN, kein automatisches TEI
unterst{[uuml ]}tzt, Point-to-Point BRI anstelle von Multi-Device - siehe
Bereich
config).
Das bedeutet, da{[szlig ]} Du das D-Kanal-Protokoll, das Du mit HiSax benutzen willst, nicht spezifiziert hast. Meistens ist die Voreinstellung falsch und Du musst angeben, da{[szlig ]} Du das EURO-Protokoll ISDN DSS1 benutzen willst. Nur wenn Du eine Standleitung hast brauchst Du kein D-Kanal-Protokoll angeben.
Das bedeutet, da{[szlig ]} Du die Option Euro Protocol ISDN DSS1 bei der Kernelkonfiguration nicht gesetzt hast. Aktiviere diese Option und kompiliere den Kernel neu.
Das bedeutet, da{[szlig ]} die link level Protokolle nicht zueinander passen (z.B., Du willst mit X.75 verbinden und Dein Provider antwortet mit HDLC). Pr{[uuml ]}fe und berichtige Deine Einstellungen:
isdnctrl l2_prot {[lt ]}interface{[gt ]} {[lt ]}protocol{[gt ]}
ISDN4LINUX setzt beim W{[auml ]}hlen den Serviceindikator auf 'digital data'. Die Vermittlungsstelle stellt solche Anrufe tats{[auml ]}chlich an analoge Ger{[auml ]}te wie Telefon oder Fax durch. Diese analogen Ger{[auml ]}te antworten jedoch nur auf analoge Anrufe und ignorieren daher den digitalen Anruf.
Die folgenden Informationen sind ziemlich alt. Gib mir bitte Bescheid, wenn Du feststellst, da{[szlig ]} die Gastzug{[auml ]}nge nicht mehr erreichbar sind:
Folgende Server bieten Gastzug{[auml ]}nge f{[uuml ]}r Modem-Emulation oder IP:
emoenke@gwdg.de
:
{urlnam}
zu findenden Netz-Setup kannst Du NetCall unter 0551-7704103 erreichen
(funktioniert innerhalb Deutschlands so wie es dasteht, von ausserhalb
Deutschlands muss die Telefonnummer ge{[auml ]}ndert werden).
hifi@scorpio.in-berlin.de
:
Es gibt einen 'Gast'-Zugang unter +49 30 67 19 81 01 (X.75, mgetty). Dort liegt die Stones-HTML-Seite mit Bildern in Postscript-Format bereit zum Testen eines Downloads. Jeder, der ein Ziel zum Anw{[auml ]}hlen braucht, kann es benutzen. Auf ...81 03 lauscht ein getty mit HDLC. Als Gast betrittst Du dort eine Art Mailbox und kannst einige News lesen.
In diesem Fall zeigt der Aufruf 'fuser -v /dev/isdn* /dev/ippp* /dev/cui* /dev/ttyI*' welche Prozesse diese Ger{[auml ]}te belegen.
telesctrl id 3 1 --- dec module_count telesctrl id 4 1 --- inc module_count
tcpdump kommt nicht immer mit den besonderen encapsulations zurecht, die mit ISDN4LINUX m{[ouml ]}glich sind, speziell nicht mit syncPPP. Zur Abhilfe muss tcpdump gepatcht werden.
Michael Stiller
michael@toyland.ping.de
schrieb am 23. Okt. 1996:
Tip f{[uuml ]}r ftp:
Dort gibt es den Patch: 'tcpdump-3.0.4-1-isdn.dif.gz'
und der Rest liegt auf:
/pub/linux/mirrors/funet/PEOPLE/Linus/net-source/tools/tcpdump-3.0.4-1.tar.gz
Du musst eventuell etwas {[auml ]}ndern, abh{[auml ]}ngig von dem Namen Deines ISDN Interfaces (bei mir ist das bri0). Von sich aus erkennt der Patch nur Interfacenamen wie isdn* und isdnY*.
Des weiteren schrieb Henning Schmiedehausen
henning@pong.iconsult.com
am 30. Okt. 1996:
Nachdem ich feststellte, da{[szlig ]} der Patch von Eberhard Moenkeberg auf ftp.gwdg.de mit CISCO-HDLC nicht zurechtkommt, schrieb ich meinen eigenen Patch f{[uuml ]}r tcpdump-3.0.4, der das Interface fragt, welche encapsulation es benutzt und dann die entsprechende Einstellung vornimmt. Der Patch ist f{[uuml ]}r die tcpdump-3.0.4-1.tar.gz Distribution, erh{[auml ]}ltlich z.B. bei
{urlnam}
Dieser Patch erkennt rawIP, ISDN-IP und CISCO-HDLC und kann Dumps dieser Pakete durchf{[uuml ]}hren.(Der Patch war der Message beigef{[uuml ]}gt - man sollte ihn leicht im Archiv der Mailingliste finden k{[ouml ]}nnen - Editor.)
Sascha Ottolski
sascha@alzhimer.isdn.cs.tu-berlin.de
gab am 05. Nov. 1996
den folgenden Tip:
Dies ist ein isdn4k-utils-2.0/tcpdump-3.0.3-isdn.diff ! Es funktioniert mit folgenden {[Auml ]}nderungen: In der Datei tcpdump-3.0.3-isdn/libpcap-0.0/pcap-linux.c findest Du nach dem Patchen die folgende Zeile: else if (strncmp('ppp', device, 3) == 0) Entweder benennst Du Deine PPP-Devices pppX anstatt ipppX, oder Du {[auml ]}nderst diese Zeile entsprechend, z.B.: else if (strncmp('ippp', device, 4) == 0) Dann erkennt tcpdump auch syncPPP. Es macht es zumindest bei mir.
Der Treiber sollte mit dem Befehl 'insmod -m' geladen werden. Die Ausgabe des Befehls muss in eine Form {[auml ]}hnlich der System.map gebracht werden, z.B. so:
insmod -m isdn.o | sort | sed -e 's/ / T /g' | egrep '.* T (a-z,A-Z,_)+' {[gt ]} /etc/isdn/isdn.map cat /System.map /etc/isdn/isdn.map {[gt ]} /iSystem.map
Pr{[uuml ]}fe ob die erh{[ouml ]}hte Festplattenaktivit{[auml ]}t an der Menge der Meldungen liegt, die in das Logfile geschrieben werden. Wenn ja, kannst Du die Ausgabe durch:
isdnctrl verbose 0
Eigentlich l{[auml ]}uft ISDN4LINUX, wenn es sauber konfiguriert ist, auf viel schw{[auml ]}cheren Maschinen als Du erwarten wirst (bei mir l{[auml ]}uft immer noch eine {[auml ]}ltere Version auf einem 386-25, der nur 4MB RAM besitzt). Neuere Versionen von ISDN4LINUX und des Kernels ben{[ouml ]}tigen jedoch mehr Speicher. M{[ouml ]}glicherweise ist etwas Bearbeitung n{[ouml ]}tig um sie auf sehr alter Hardware laufen zu lassen. Schau Dir die Frage trouble_outofbuffers an, wenn Du knapp an Buffern wirst. Siehe Frage trouble_littlememory zur Reduzierung des ben{[ouml ]}tigten Speichers.
Diese Fehler tauchen auf, wenn I4L seine Buffer nicht schnell genug
verarbeiten kann, was oft durch schlechte Soundkarten oder deren
Treiber verursacht wird, die die Interrupts zu lange deaktivieren! Es
kann auch durch alte Hardware ausgel{[ouml ]}st werden (passierte dem
Autor der FAQ, der vbox
auf einem alten 386-25 mit nur 4MB RAM
benutzen wollte). Du kannst das mit einer Erh{[ouml ]}hung der Anzahl und
Gr{[ouml ]}{[szlig ]}e der Buffer umgehen. Suche in den Header-Dateien des
Sourcecodes nach Definitionen wie:
{[num ]}define HSCX_RBUF_ORDER 1 {[num ]}define HSCX_RBUF_BPPS 2 {[num ]}define HSCX_RBUF_MAXPAGES 3
Nach einem Anhalten des Systems mit dem Befehl reboot
oder
Ctrl-Alt-Del
solltest Du den Reset-Knopf dr{[uuml ]}cken (=
Kaltstart). Manchmal braucht die Karte ein Hardware-Signal um richtig
initialisiert zu werden.
Pr{[uuml ]}fe zuerst, ob ein device /dev/isdnctrl0 existiert. Wenn ja, erstelle einen sybolischen Link mit dem Befehl:
ln -s /dev/isdnctrl0 /dev/isdnctrl
scripts/makedev.sh
laufen lassen. Es ist in den isdn4k-utils
enthalten.
Im Gegensatz zu der Meldung "/dev/isdnctrl: No such file or directory" besagt die Meldung "/dev/isdnctrl: No such device", da{[szlig ]} das Device /dev/isdnctrl zwar existiert aber kein ISDN-Treiber gefunden wird. L{[ouml ]}sung: Lade die ISDN-Module (pr{[uuml ]}fe dann mit "cat /proc/modules" ob sie geladen wurden) oder binde die ISDN-Treiber fest in den Kernel ein.
Peter Hettkamp
Peter.Hettkamp@kassel.netsurf.de
schrieb:
xosview reagiert, zumindest bei mir in der Version 1.4, auf das IP Accounting im Kernel. Also konfiguriere und, falls n{[ouml ]}tig, baue einen neuen Kernel und aktiviere es mit:
ipfwadm -A -a -S deine-ip-addresse-hier -D 0.0.0.0/0 ipfwadm -A -a -D deine-ip-addresse-hier -S 0.0.0.0/0
(Ich weis nicht wie das mit dynamischen IP-Addressen geht. Ich habe eine feste Addresse.)
Was ist auf der 'Win95-Box' als Nameserver eingetragen? Solange im LAN kein eigener Nameserver betrieben wird, muss nat{[uuml ]}rlich auf allen Computern des LAN der Nameserver des Providers eingetragen werden.
Pr{[uuml ]}fe nach:
Wolfgang Barth schrieb am 5. Januar 1997:
Ich habe festgestellt, dass das lokale Netzwerk nach der ersten Verbindung {[uuml ]}ber ippp0 wieder erreichbar ist. Dann wird die Addresse 0.0.0.0 nicht mehr im ifconfig f{[uuml ]}r ippp0 angezeigt sondern vielmehr die Addresse, die aus dem Pool des PPP-Partners zugewiesen wird. Dies wurde bereits in de.comp.os.linux.networking behandelt, zusammen mit dieser L{[ouml ]}sung: Setze einfach ippp0 auf eine willk{[uuml ]}rliche IP aus dem Pool. Dann wird das lokale Netzwerk nach dem Booten auch mit der defaultroute Probleme haben und die IP in ifconfig wird auf jeden Fall {[uuml ]}berschrieben.
Da die Zulassung des HiSax-Treibers nur f{[uuml ]}r den unver{[auml ]}nderten Quellcode gilt ist dieser durch eine Pr{[uuml ]}fsumme gesch{[uuml ]}tzt. Wenn Du die Fehlermeldung bekommst, hast Du entweder selbst den Code ge{[auml ]}ndert oder der Autor hat nach einer {[Auml ]}nderung die Pr{[uuml ]}fsumme nicht aktualisiert (m{[ouml ]}glicherweise wurden die Zulassungstests mit dem ge{[auml ]}nderten Code noch nicht durchgef{[uuml ]}hrt).