[ This is a German version. An English version is in the works. ] Die Anleitung und der ganze Kram findet sich in der Datei DOKU, oder README.isdn in den Kernelsourcen. *** 1996-07-25 Update 42. Grummel... Neue Feature: Wenn eine Verbindung länger als 10 Sekunden im >down-Zustand bleibt, wird der Master umgebracht. (Das ist meistens ein Symptom für ein verknotetes D-Kanal-Handling oder eine verklemmte aktive Karte.) Syslog "CONN" loggt die Verbindungszeit in Sekunden. ("COST" loggt die Verbindungskosten, wie vorher.) Die Zahl der Verbindungen wird beim Minuten-Timestamp mitgeschrieben; daraus läßt sich sehr schön eine Grafik generieren... *** 1996-04-?? Update 39. Support für "altes" /sbin/route ist gestrichen! /sbin/route --help _muß_ bei "route del" die Angabe einer Netmask und eines Interfaces zulassen. Test mit "route --help". *** 1996-04-11 Update 38. Support für "alte" Kernels (< 1.3.78 oder so) ist gestrichen! PPP tut mit Bintec-S0- und S2M-Karten. Update zum Verbindungshandling bei Callback, sollte jetzt besser funktionieren. Freigabe von Devices hatte ich teilweise vergessen... Das reconn-Modul hat manchmal Pakete zu voreilig weggeworfen. str_if loggt mit, wenn Pakete weggeworfen werden mußten. Wiedermal ein htons() vergessen... slipto kann jetzt auch "-r ipadresse/bits", zusätzlich zu "-r ipadresse:netmask". *** 1996-02-07 Update 37. ACHTUNG: Nur für Kernel 1.3.71 ff. Für ältere Kernels gibt es einen Patch 37-old, der _anstatt_ isdn-36-37.gz angewendet werden muß. Weitere Patches (d.h. 37->38 ff) können Konflikte verursachen. Ich empfehle jedem, 1.3.71 zu installieren; das Teil ist um _einiges_ schneller als 1.2.13. *** 1996-02-08 Update 35. Problem mit Euro-ISDN-Nebenstellenanlagen behoben. Achtung: +000=00-0. in die DP-Zeile, der Punkt am Ende ist nicht ganz unwichtig. *** 1996-01-05 Update 34. Weitere Crashprobleme (hoffentlich) beseitigt. Achtung: Alle zutreffenden Keys in TM-Zeilen werden nun geODERt. *** 1996-01-03 Update 33. Timer wieder umgestellt. Testcode für automatische Anpassung des Timeouts, noch nicht ausreichend getestet. *** 1996-01-02 Update 32. WICHTIG UNBEDINGT INSTALLIEREN. Verbindungen werden nicht korrekt abgebaut! Wenn nicht installiert wird: in der ML-Zeile des Timers die Parameter für :ti und :to UNBEDINGT auf GERINGERE Werte als der Abstand zwischeen zwei Gebühreninfos einstellen! Ausserdem: Kompatibilitätspatch für die Niederlande. *** 1996-01-01 Update 31. Grr, ich solte diese Datei besser pflegen. :-/ - Ankommende Anrufe funktionieren wieder. (Das taten sie nicht immer...) - Jemand, der gleich wieder auflegt, bringt den master nicht mehr zum Absturz. - Kernelpatch: die BLOCK-Regel des Firewalls wird nur bei lokalen Paketen angewendet und die FORWARD-Regel nur bei weitergereichten Paketen. Vorher: BLOCK wurde auch bei weitergereichten Paketen angewendet. - Neues Flag -x fuer slipto, laesst die lokale Route in Ruhe. Doofer Fehler beim freopen() korrigiert. Funktioniert dip jetzt? Bitte testen. *** 1995-12-04 Release 25. Die Umstellungsprobleme sind nun (hoffentlich) endlich beseitigt. Die Puffergrößen in den Datenströmen wurden drastisch reduziert. Wenn Datenverluste auftreten (zB beim Weiterleiten von IP-Paketen oder beim Empfang von Audiodaten, wenn das lesende Programm zu langsam ist), sollte ein "buffer"-Modul zwischengeschaltet und geeignet konfiguriert werden, sinnvollerweise hinter dem reconn-Modul (IP) bzw. direkt hinter transalaw (Audio). *** 1995-11-28 Release 22. Vernünftigeres Beartbeiten des Verbindungsauf/abbaus eingebaut. Unter Kernel 1.3.44: Experimenteller Code, der sk_buff-Blöcke zur Datenspeicherung verwendet, wird aktiviert. Wenn das Probleme macht -> meckern (abschaltbar in streams/stream.h, ganz oben). In obskuren Faellen ist es vorgekommen, dass der Rechner stehenbleibt. Meistens wacht er nach einer Minute oder so wieder auf; ich wuerde ganz gerne wissen wo er stehenbleibt... AltGR-ScrollLock druecken, nach einer Minute oder so sollten drei sehr kryptische Zeilen erscheinen. Die Zahl in [<>] gibt die Stelle im Kernel an, an der die Interrupts wieder freigegeben wurden; nachsehen (in /usr/src/linux/Symbols.map bzw. /lib/modules/VERSION/ /symbols), mir mailen. Es kann sein, dass "echo at/BLA >/dev/isdn/isdnXX" nicht mehr funktioniert. Timingabhaengigkeit im Kernel, sorry. Abhilfe: cu verwenden. Wenn es einen User "isdnmaster" gibt, darf dieser mit dem ISDN-Programm alles, was root auch darf. "isdnmaster" ist konfigurierbar. WICHTIG: Im D-Kanal-Handling hat sich was geändert. Wenn Anrufe von manchen Leuten funktionieren, Anrufe mit identischen Dienstkennungen von anderen Leuten mit längerer / kürzerer / ohne Nummer (also analog) jedoch nicht, in cards/dumb/shell.c den #if 0...TELL ME (Zeile 1175) in #if 1 ändern; wenn es nach dieser Änderung (und bitte NUR diese Änderung!) wieder funktioniert, bitte bei mir melden. Die CM-Zeilen sind weggefallen; die Treiber erkennen nun "frame" etc direkt. Dies als Vorbereitung auf das Erkennen von "frame x75 t70" und Handling desselben auf der Karte, wenn intelligente Karte. Das Handling der Treibermodule hat sich geändert: Module vor "reconn" werden jetzt erst beim Verbindungsaufbau geladen; sinnvoll, wenn eine Gegenstelle mehr als eine Nummer hat und dort unterschiedliche Protokolle fährt. (Soll es ja geben...) *** 1995-11-15 Release 21. Ditto Bugfixes. Callback funktioniert wieder in beide Richtungen, und nicht nur mit U-ISDN oder mit einer Karte. Das Teil ist bei mir im aktiven Einsatz als IP-Router. Also meckert nicht "es funktioniert überhaupt nix", das ist falsch. ;-) Nein, ich werde nicht dafür bezahlt, dieses ISDN-Tier zu bauen. Folglich habe ich auch keine Zeit, dieses und jenes Feature in jedem neuen Release neu zu testen. Sorry, aber das ist so. Insbesondere habe ich hier nur noch einen Rechner unter 1.2.x laufen, und den fasse ich momentan nicht an; der Rest ist 1.3.40. Wenn das System nicht unter 1.2 zu kompilieren ist, dann ist das zwar scheußlich, aber ich erwarte, daß sich jemand aufrafft und mir einen diff schickt, weil ich es _nicht_ selber mache(n kann). Sorry, aber so ist es nunmal. *** 1995-11-1 Release 20. Bugfixes et al. Standleitungen werden nun automatisch wieder aufgebaut, wenn sie als pf gekennzeichnet sind und das übliche reconn und :dI haben. Der Kartentreiber meckert, wenn er die Leitung nicht hochkriegt. Abhilfe: an dieser Leitung (manuell) anrufen. Dieser doofe Chip war schonmal einfacher zu programmieren... Kartentreiber weg- und wieder reinlinken ist noch problemaitsch. Das kann aber am GCC liegen, gcc 2.7.0 macht Mist mit -O2 -fomit-frame-pointer -m486. Ich habe alles mit -O -m386 gebaut (funktioniert) und für weitere Experimente im Moment keine Zeit (muß PPP für Binteckarten zum Laufen bekommen. Das ist einfach, die haben PPP bereits im Treiber eingebaut. PPP für passive Karten ist aufwendiger, leider). Neues Flag ,X in der P-Zeile: es wird X-mal gewählt, bevor die Verbindung gekippt wird (Retry-Zähler). Neues Flag ,X in der D-Zeile macht prioritätsgesteuertes Wählen: alle D-Zeilen mit kleinem X werden durchprobiert (bis der Retryzähler ereicht ist), dann alle mit nächsthöherem X. Fehlendes X wird wie Null behandelt, negative Werte sind verboten. Mindestens drei Kartenhersteller bekundeten Interesse an einem Modul für meinen Treiber, und ließen dann nie wieder was von sich hören. You know who you are. Es wäre sinnvoll, wenn ein paar von euch die diversen Hersteller mal nerven würden, sie sollen mir eine Karte nebst Doku zur Verfügung stellen, auf daß es bald einen Treiber gebe. Anders wird das nämlich nix. Den Sub-Makefiles wird ein -r verpaßt (ignoriere die eingebauten Regeln), weil es sonst in mindestens einem Fall passiert. daß die expliziten Regeln in make.rules ignoriert werden (weil die eingebaute Regel einen Schritt kürzer ist). Grummel. Das Masterprogramm wird nun mit -static gelinkt, damit Libraries nicht rausgeswappt werden können. Grr. *** 1995-11-06 Release 19. Kleinere Bugfixes, insbesondere funktioniert das Senden von EAZ unter 1TR6 wieder... Der Backoff-Algorithmus, wennn die Gegenstelle nicht antwortet, wurde von "konstant oder linear" auf "exponentiell" umgestellt. Sorry, aber das muß so sein -- sonst meckert die Telekomik. Der Master spuckt jetzt seine ganzen Debugmeldungen auf stderr aus und protokolliert Statusmeldungen (Gebühreneinheiten) auf stdout. VORHER WAR DAS UMGEKEHRT, das hat manchen Benutzer durcheinandergebracht. *** 1995-10-30 Release 17. TM-Zeile. Siehe DOKU. Eine angepasste isdn.conf gibt es demnaechst, wenn sie mir nicht jemand macht. ;-) BINTEC-Karten. Getestet mit Einfach-BRI-Version; Vierfach-BRI sollte funktionieren, ist aber ungetestet; S2M demnächst, da muß noch was getan werden. Neuer DL-Zeilen-Parameter :de, neuer Befehl AT/W: Loggt den D-Kanal-Datenaustausch als cu-Ausgabe mit. *** 1995-10-24 Release 15. Support fuer intelligente Karten ist _fast_ da, wo er hinsoll... GCC 2.7.0 wird empfohlen. Support fuer intelligente Karten geht nicht ohne (wegen attribute((packed)); ich habe keine Lust, die CAPI-Datenstrukturen von Hand zusammenzuschrauben). Ansonsten siehe unten. Feedback bitte! *** 1995-10-21 Release 14. Mit dem RP-Zeilen gibt es anscheinend Probleme. Wäre nett, wenn das jemand anders debuggen könnte, sonst dauert das nämlich bis Version 16 oder so. Wer kennt sich mit tcl/tk oder tclperl oder wish oder was-auch-immer aus? Gebraucht wird ein vernünftiges Frontend für die Konfigdatei... Login und Kermit, nächster Versuch... Aktive Karten (momentan: Bintec) tun NOCH NICHT, aber ich arbeite dran. Mehr Kommentare im Source. (Immer noch zuwenige, ich weiß. Working.) Fehler bereinigt. Insbesondere sollte der Treiber nun ca. eine Sekunde schneller sein beim Verbindungsaufbau, wenn gerade keine andere Verbindung offen ist. Grr... Debugmeldungen schreiben nun das Intervall (in Jiffies, also normalerweise Hundertstelsekunden) seit der letzten Debugmeldung mit. ACHTUNG, leichte Änderungen im Format der Konfigdatei (DL- und CL-Zeile: -Parameter ist dazugekommen); siehe Doku. Kann jemand aus Taylor-UUCP (oder sonstwoher) den Code "ist die aktuelle Zeit in dem durch diesen String angegebenen Zeitfenster" klauen und um die Angabe der Anzahl Sekunden bis zum Verlassen des Zeitfensters erweitern? Beispiel: wenn es jetzt Sonntag 23:00:01 Uhr ist: - isintime("Mon") => 0 - isintime("Sun") => 3599 Sonst muß ich das machen und dafür habe ich keine Zeit. Das Ganze wird benötigt, um zB Logins nur abends zu erlauben oder den Zeittakt umzustellen. Momentan braucht es dazu ein per cron aufgerufenes externes Programm, das /etc/isdn.conf.times von isdn.conf.times.day nach isdn.conf.times.night umlinkt und AT/R anstößt; geht, aber ist nicht besonders schön. *** 1995-09-31 Release 13. Wenn es immer noch Probleme beim ISDN-Login gibt: am Anfang von streams/streams_io das #undef in ein #define ändern, isdn_2.o mit "mod2=0x05" installieren, nochmal testen, mir den Syslog-Output schicken (*.debug, NICHT *.=debug !!!). Vorsicht, Paßwörter etc. stehen in diesem Log mit drin! Wegen eines Fehlers im GNU-Make kann es passieren, daß "make" oder "make -w" nicht funktioniert. In diesem Fall "make --warn" verwenden. Die folgenden neuen Features sind noch mehr oder weniger ungetestet: SIGIO-Support. TTY-Code repariert. Starten beliebiger Programme bei Zustandsänderungen (RP-Zeile in der Konfig). Ethertype-Support (noch nicht vollständig). Callback wenn möglich auf derselben Leitung. Callback auf Leitung B, wenn ein Ruf auf A ankommt, dort aber besetzt ist. Einigermaßen getestet: Callback. (War das ein Nerv. Manche ISDN-Vermittlungen sind _doof_.) Fehlermeldungen reorganisiert. *** 1995-07-22 isdn_4/master.c aufgesplittet, Verzeichnisstruktur leicht umgebaut, deshalb leider keine Diffs. *** 1995-06-12 Wieder ein paar Bugs weniger. Der "arnet"-Treiber ist fuer die synchronen Karten dieser Firma gedacht und noch nicht 100% ausgetestet. Wenn jemand Uebermittlung von Gebuehreninformationen waehrend der Verbindung im Euro-ISDN aktiviert hat -> Mail an mich. Support fuer Standleitungen: Restart klemmt manchmal. Die Patches basieren auf aelteren Kernelversionen und sind nicht besonders sauber... Support fuer Kernel 1.3 ist in Arbeit. *** 1995-02-04 Euro-ISDN! Relativ rudimentär, sollte aber erstmal tun. (In der Doku steht was von FINGER WEG. Vorsicht -- ich garantiere nicht, daß sich der Kram nicht total danebenbenimmt. Ich wage es aber zu bezweifeln, daß mein Treiber dazu führt, daß der Anschluß gesperrt wird...) Support für 128kBit-Standleitungen. rm -rf streams/isdn isdn/cards/leonardo (für Leute, die den Patch verwenden). *** 1995-01-18 Na endlich... modularisierte Version, basierend auf 1.1.83. _Ohne_ Spezialkram (OK, ein kleines bißchen ;-) nachdem das Linux-TCP/IP endlich einen brauchbaren Status erreicht zu haben scheint. *** 1994-10-27 Interimsrelease, basierend auf 1.1.57. In libc.tar.gz beginden sich die letzten 4.5.26-Libraries und Include- dateien, angepaßt auf meinen Kernel. (Die nächste Version, basierend auf 4.6.xx, ist weit weniger schlimm.) In kernel.tar.gz sind die Quellen fuer den angepassten Kernel, komplett. Konfiguration: CONFIG_SCHEDULER_BSD Y CONFIG_INET_BSD N CONFIG_MALLOC_TRACE Y CONFIG_DEBUG_LATENCY N Alles andere (fast) wie gewohnt. Ohne MALLOC-TRACE gibt es Probleme mit der Speicherverwaltung; wenn jemand den Fehler findet, immer nur her mit einem Patch. INET_BSD braucht BSD-Utilities für die Konfiguration, die ich momentan nicht im Source habe (Plattenfehler). Die Übersetzung des Streams-Teils liefert haufenweise Warnings; ignorieren. *** 1994-08-07 Die Datei /usr/include/sys/conf.h muss die folgende Zeile enthalten: #include Sorry; dieser Fehler wird mit dem naechsten Update behoben. *** 1994-08-03 Patch 38 passt sauber in den Kern. Festverbindungen tun; Patch (inkl. Update auf -38) folgt demnaechst. *** 1994-08-01 CONFIG_MALLOC_TRACE funktioniert nicht korrekt (Speicherverluste). Ich arbeite dran. *** 1994-07-31 Festverbindungen werden unterstützt. Diffs auf PL37 generiert. Networking-Code generiert. include- und libc-Diffs generiert. *** 1994-07-29 In der Datei streams/isdn/config/config.data muss die Variable STR_IN von "in2" auf "linux" geaendert werden, wenn mit Linux-Networking gearbeitet werden soll. *** 1994-07-27 Patch 36 läßt sich problemlos einspielen. *** 1994-07-26 Die Datei "kernel-1.1.35.diff.gz" enthält die Diffs zu meinem Kernel. "streams-1.1.35.tar.gz" enthält den Streams-Teil (notwendig!). Warnung: Da ich selber leicht modifizierte Includedateien unter /usr/include einsetze, kann es sein, daß die Kompilation nicht durchläuft... in diesem Fall bitte Mail an mich.