isdn4linuxISDN unter Linux

Das 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:

A linux Leafsite

ISDN for Linux

Benötigte Software:

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.

Die Installation

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:

# isdnlog 2.50 (fuer Parameter bitte isdnlog Doku konsultieren)

# & nicht vergessen, ansonsten sieht es mit dem Booten schlecht aus (kein daemon)

# Uni