ISDN-Zugang mit Isdn4Linux unter Linux 2.0

ISDN-Zugang mit ISDN4Linux unter Linux 2.0


Seit Linux 2.0 gibt es nun endlich auch einen Kernel, der kein Hacker-Kernel ist, der ISDN unter Linux unterstützt. Die Auswahl an ISDN-Karten, die von ISDN4Linux unterstützt werden ist zur Zeit jedoch noch recht mager.

Andere geläufige Karten werden zur Zeit noch nicht unterstützt.

ISDN4Linux ist in den Linux-Kernel integriert und kann sowohl in den Kernel eingebunden, als auch als ladbares Modul hinzugeladen werden. Diese Beschreibung bezieht sich auf die Kernel-Version 2.0.0 in Verbindung mit einer Teles S0-16.3.


Beantragen eines ISDN-Zuganges

Um einen Zugang zum FB3-Netz über ISDN zu bekommen, muß eine E-Mail an Carsten Bormann geschrieben werden. Er benötigt folgende Angaben: Wenn alle Angaben korrekt sein sollten, erhält man von ihm eine IP-Adresse und einen Default-Router zugewiesen. Diese Daten sollte man sich für später merken.

Anpassen des Kernels

Bevor man beginnen kann, die ISDN-Karte unter Linux 2.0 einzurichten, muß als erstes der Kernel angepaßt und neu kompiliert werden. Dazu wechselt man in das Verzeichnis /usr/src/linux und startet das Konfigurationsprogramm mit
make menuconfig
(es gibt natürlich auch andere Möglichkeiten die Konfiguration durchzuführen, doch ich beschränke mich in dieser Beschreibung auf diese Möglichkeit, da es hier nur auf das Prinzip ankommt). In der Kernelkonfiguration sollte isdn4linux nun ausgewählt werden. Um den Kernel klein zu halten empfiehlt es sich isdn4linux als Modul zu kompilieren, das bei Bedarf nachgeladen wird. Weiterhin sollte die Unterstützung für die entsprechende ISDN-Karte (in diesem Fall also die Teles-Karte) angewählt werden.

Nun kann der Kernel wie üblich kompiliert werden:

make clean
make dep
make zImage
make modules
make modules_install
Nun sind die Voraussetzungen geschaffen um isdn4linux zu konfigurieren.

Der Start von isdn4linux

Um später die ISDN-Karte als Netzwerkkarte verwenden zu können, muß isdn4linux gestartet werden.
  1. Die Adresse der ISDN-Karte (port). Defaultwert ist 0xd80.
  2. Den Interrupt der ISDN-Karte (irq). Defaultwert ist 15.
  3. Die shared memory-Adresse (mem). Defaultwert ist 0xd0000.
  4. Das D-Kanal-Protokoll (dprot). Defaultwert ist 2 (für DSS1 / EuroISDN).
Für die verschiedenen Teles-Karten gelten folgende Werte:

Wurde die ISDN-Unterstützung und der Teles-Treiber zum Kernel hinzukompiliert, muß LILO oder LOADLIN folgendes übergeben werden:

teles=port,irq,mem,dprot [,idstring]
Wobei für port, irq, mem und dprot die entsprechenden Werte eingetragen werden müssen. idstring ist eine Bezeichnung der Karte, um später mit anderen Tools auf die Karte zugreifen zu können.

Wurde der Teles-Treiber als Modul kompiliert, müssen beim Hinzufügen der Treibers zum Kernel mittels insmod folgende Parameter übergeben werden:

io=mem,irq,port,dprot teled_id=idstring 
(Man achte bitte auf die andere Reihenfolge der Parameter!)

Die Konfiguration der ISDN-Karte ist hiermit bereits abgeschlossen. Im nächsten Abschnitt wird dann beschrieben, wie der Zugang zur Universität hergestellt werden kann.


Einrichten der TCP/IP-Verbindung

Um eine TCP/IP-Verbindung zur Universität aufzubauen, müssen zuerst dem ISDN-Treiber einige Daten bekanntgemacht werden.
Zuerst muß ein Interface eingerichtet werden:
isdnctrl addif isdn0
Setzen der MSN:
isdnctrl eaz isdn0 telefonnummer
Festlegen der Nummer für ausgehende Gespräche:
isdnctrl addphone isdn0 out 04212022987
Festlegen der Nummer für eingehende Gespräche:
isdnctrl addphone isdn0 in 04212022987
Auswahl der Level-2-Protokolls:
isdnctrl isdn0 hdlc
Sicherheitsoptionen:
isdnctrl isdn0 on
Setzen der Zeit bis zum Timeout:
isdnctrl huptimeout isdn0 Zeit_in_Sekunden
Um die Fehlersuche zu erleichtern sollten auch noch folgende Optionen gesetzt werden:
Debuginformationen festlegen:
telesctrl idstring 1 31
IsdnLog starten:
isdnlog -m16 /dev/isdnctrl0 2>> /var/log/isdncalls &
Um das ganze beim Booten ausführen zu lassen empfiehlt es sich die Datei i4l in das Verzeichnis /sbin/init.d zu kopieren. Für die verschiedenen Runlevel sollten entsprechend Symbolic-Links gesetzt werden. In der Datei /etc/rc.config sollten die Variablen gesetzt sein, die von i4l benötigt werden. Dieses ermöglicht leicht eine spätere Änderung der Hardwarekonfiguration.

Netzwerkkarte konfigurieren

Nun ist die meiste Arbeit schon getan. Jetzt muß nur noch mittels ifconfig das Interface isdn0 konfiguriert werden. An dieser Stelle benötigt man nun die Daten, die man von Carsten Bormann erhalten hat.

isdn4linux beenden

Interface löschen:
isdnctrl delif isdn0
Das Modul teles.o entfernen:
rmmod teles.o
Die ISDN-Unterstützung aus dem Kernel entfernen:
rmmod isdn.o

Markus Dahlweid / 8. September 1996
dahlweid@informatik.uni-bremen.de