ISDN
unter LinuxDas isdn4linux package ist mittlerweile recht stabil und seit Kernelversion 1.3.? fest in den offiziellen Kernelsource-Tree integriert. Der Vorteil bei der Benutzung von Linux liegt darin, daß mit dem Rechner noch gearbeitet werden kann, wenn er z.B. als Router konfiguriert ist. Man kann z.B. die Einwahl von außen ermöglichen, indem man mgetty o.ae. installiert.
Zusätzlich hat man die Möglichkeit, isdn4linux mittels vgetty oder vboxgetty als Anrufbeantworter zu benutzen.
Konkret läuft bei mir auf einem 386/33 mit 4MB RAM Linux 2.0.21 inkl. diverser patches (4MB, weil die zweite Bank leider defekt ist). Auf diesem Rechner läuft ständig ein mgetty, ein vboxgetty, isdnlog 2.51, der Apache httpd, NFS und manchmal der msqld. Der Rechner ist allerdings hauptsächlich als Router gedacht.
Einen neuen Kernel kompiliere ich auf dieser Maschine allerdings nicht, ein einmaliger Versuch erbrachte einen Durchlauf von 28 Stunden. Das möchte ich den Platten nicht noch einmal zumuten.
Kleine Quizfrage: wieviel MB und wieviele Prozessoren wären für eine gleiche Funktionalität unter NT notwendig ?
Hier soll nun kurz beschrieben werden, wie ein Zugang über ISDN in die Uni ermöglicht werden kann. Zu isdn4linux i. a. gibt es zwei wesentlich bessere Seiten:
Prinzipiell benötigt man nicht sehr viel. Man sollte eine relativ aktuelle Linux-Distribution verwenden, bei mir ist dies die Slackware 96 . Dann sollte man sich von einem mirror einen aktuellen Kernel besorgen, im Moment z.B. den 2.0.24.
Weiterhin benötigt man die isdn4kutils, diese sind auf ftp.franken.de zu finden. Hier findet man auch die neueste Version von isdnlog, einem ganz tollen Tool, das alle geführten Verbindungen inkl. Durchsatzrate mitprotokolliert, bei Bedarf je nach Rufnummer externe Programme aufruft, den timeout dem aktuellen Tarif anpasst, etc.
Jetzt ist es nötig, einen Kernel mit isdn4linux Unterstützung zu bauen. Hierzu ist in /usr/src/linux ein make config dep clean zlilo notwendig. Bei der Teleskarte ist es evtl. notwendig, die Hardwareparameter der Karte in /usr/src/linux/drivers/isdn/teles/config.c einzutragen, damit die Karte beim Booten erkannt wird. Es ist auch möglich, den ISDN-Treiber als Modul einzubinden, aber da ich kein Anhänger von Microkerneln bzw. Modularisierung bin und der Treiber sowieso ständig benötigt wird, sollte man isdn4linux fest in den Kernel binden.
Wenn mit lilo gebootet wird, sollten lilo folgende Parameter in der /etc/lilo.conf übergeben werden:
teles=0x0 , 5 , 0xd0000, 2, Teles1 (Beispiel 8bit-Karte)
Erklärung: 0x0 Portbase, 5 IRQ, 0xd0000 membase, 2 Euro-ISDN, Teles1 beliebige ID
Jetzt kann lilo eingegeben werden und man kann mit dem neuen Kernel booten.
Im syslog sollte der Eintrag auftauchen, daß die Karte erkannt wurde. Falls der Rechner "zu schnell" bootet, kann man sich die Bootmeldungen mit 'dmesg' noch einmal ansehen.
Falls mit loadlin.exe und nicht mit lilo gebootet wird, sollten die Parameter analog übergeben werden.
Nach erfolgreichem Booten können nun die isdn4kutils kompiliert und installiert werden.
Ein make devices legt dann die devices in /dev/ an. Zum ersten Test ist es vielleicht sinnvoll, minicom, seyon o.ae. zu starten und als Port /dev/ttyI0 zu benutzen. Ein AT sollte ein OK liefern.
Jetzt kann sich z.B. per ATD555-2600 in eine BBS einloggen. Auf die tty-devices gehe ich hier nicht näher ein, allerdings kann man so schon testen, ob überhaupt ein Verbindungsaufbau möglich ist. Wenn der Test positiv ausgefallen ist, kann man sich an den Net-Devices versuchen.
Die notwendigen Formalitäten zum Zugang in die Uni sollten spätestens jetzt mit Carsten Bormann abgesprochen sein
Ein Script, das den Zugang zur Uni ermöglicht und bei mir aus /etc/rc.d/rc.inet1 aufgerufen wird:
/etc/rc.d/rc.isdn:
#!/bin/sh
# # Sample-Script for setup of ISDN-networking at boot.
# # BE SURE TO EDIT THIS FILE BEFORE USING IT!!!!!
# Lautstaerke der Debug-Informationen setzen:
/sbin/telesctrl Teles1 1 4
# isdnlog 2.50 (fuer Parameter bitte isdnlog Doku konsultieren)
/sbin/isdnlog -C /dev/tty0 -v1 -m4087 -w30 -M -t2 -h30 /dev/isdnctrl0 &
# & nicht vergessen, ansonsten sieht es mit dem Booten schlecht aus (kein daemon)
# Uni
/sbin/isdnctrl addif isdn0 # "isdn0" anlegen
/sbin/isdnctrl eaz isdn0 2010525 # msn vergeben
/sbin/isdnctrl addphone isdn0 in 4212022987 # Eingehende Nummer (Uni)
/sbin/isdnctrl addphone isdn0 out 2022987 # Zu rufende Nummer (Uni)
/sbin/isdnctrl huptimeout isdn0 30 # Hangup-Timeout 30 sek., wird spaeter von isdnlog gesetzt
/sbin/isdnctrl chargehup isdn0 on # Hangup before next Charge-Info, noch nicht bei Teles
/sbin/isdnctrl secure isdn0 on # Nur konfigurierte Nummern annehmen
/sbin/isdnctrl callback isdn0 on # Callback einschalten
/sbin/isdnctrl ihup isdn0 on # Incoming hangup einschalten
/sbin/isdnctrl l2_prot isdn0 hdlc # Layer-2 Protokoll HDLC
# Layer-3 ist defaultmäßig TRANS, RAWIP Encapsulation
/sbin/isdnctrl verbose 2 # Debug Infos
/sbin/ifconfig isdn0 134.102.219.18 broadcast 134.102.219.255 netmask 255.255.255.252 metric 1 -arp
Das -arp ist sehr wichtig, da ansonsten natürlich der huptimeout nie erreicht wird.
Vor dem ersten Test ändere man bitte die IP-Adresse(n) und die Telefonnummer.
Jetzt ist es sinnvoll, 'netconfig' aufzurufen und die eigene(n) IP-Adresse(n) festzulegen. Als default-gateway ist dabei die IP-Adresse des Routers über das device isdn0 einzustellen. Evtl. sind die Einstellungen in /etc/rc.d/rc.inet1 noch einmal zu überprüfen.
Ein 'ping kohl' sollte jetzt einen Ruf auslösen.
Wenn alles zufriedenstellend läuft, sei hier wärmstens isdnlog empfohlen. Zum einen hat man eine hervorragende Gebührenkontrolle, die mittels 'isdnrep' abgerufen werden kann, zum anderen kann der Timeout je nach aktueller Gebührensituation eingestellt werden. cron-jobs kann man sich damit also schenken. Interessant ist die Möglichkeit, je nach Telefonnummer externe Programme ausführen zu können. Man kann also z.B. per Handy ein Backup auslösen, die Kaffeemaschine starten lassen o.ae.
Als einfachste Anwendung spielt man je nach Anrufer bestimmte Sounds ab.
Callback bereitet bei Euro-ISDN Probleme. Karsten Keil hat dafür einen Patch bereitgestellt, der das Problem behebt.
isdnlog benötigt ebenfalls einen Patch, ansonsten werden eingehende Rufe mit 'call to' und abgehende Rufe mit 'call from' angezeigt. Den Patch findet man auf ftp.franken.de
Es gibt einen neuen Lowlevel Treiber von Karsten Keil (HiSax) für Karten mit Siemens Chipsatz, dieser unterstützt Teles-, AVM- und Elsa-Karten.
Man kann den dosemu dazu bewegen, /dev/ttyI0 als com2 anzusehen und dann ganz normal mit Telix rauswählen. Linux-User sparen sich damit also den cfos.
henker@informatik.uni-bremen.de (01.11.96)
