SelfLinux Internet Zugang ISDN unter Linux Abschnitt 2 | SelfLinux-0.13.0

| ISDN unter Linux | Autoren Formatierung GFDL

#### 3 Hilfe bei Problemen

Wenn die Einrichtung von ISDN nicht geklappt hat, sollten Sie zuerst die Logdatei /var/log/messages auf Fehlermeldungen des ISDN-Systems untersuchen. Hilfreich ist es, sich bei den weiteren Versuchen die Datei in einem eigenen Terminalfenster mit dem Befehl

root@linux # tail -f /var/log/messages

ständig anzeigen zu lassen. Eine Ansicht der kompletten messages-Datei kann mittels des Befehles

root@linux # less /var/log/messages

erfolgen. Achtung: Die Datei kann mehrere tausend Seiten beinhalten!

#### 3.1 Was kann schief gehen?

Laut Murphys Gesetzen geht - wenn was schief geht - alles schief, was möglich ist. Aber mit etwas Systematik kann man die Probleme analysieren und beheben.

#### 3.1.1 Als Erstes muss der Zugriff auf das ISDN-Gerät funktionieren

Dies geschieht üblicherweise mittels Kernel-Modulen (mehrere Module sind dafür nötig). Man kann ISDN auch direkt in den Kernel einkompilieren lassen, ist aber bei den Standardinstallationen praktisch nicht der Fall!

Dazu muss der Kernel Modulsupport unterstützen und die ISDN-Module müssen vorhanden sein.
Wenn der Befehl lsmod eine Tabelle ausgibt, sind Module geladen, also Modulsupport vorhanden.

Nun sollte man sich auf die Suche nach den benötigten Modulen machen. Diese liegen üblicherweise in /lib/modules/KERNELVERSION/drivers/isdn/. Wenn dieses Verzeichnis nicht vorhanden oder leer ist, müssen die Module erst im Rahmen einer Kernelkompilierung erstellt werden. Die Verzeichnisnamen im ISDN-Modulverzeichnis geben ja schon Hinweise auf die unterstützten Karten. Ausgenommen das Modul Hisax - eine Karte mit diesem Namen ist mir nicht bekannt. Die Aussage ist so korrekt, allerdings ist das HiSax-Modul für sehr viele passive ISDN-Karten zuständig, die den ISDN-Chip von Siemens verwenden. Dazu zählen folgende passive Karten:

TypNr | Name der Karte
--- | ---
1 | Teles 16.0
2 | Teles 8.0
3 | Teles 16.3 (non PnP)
4 | Creatix/Teles PnP
5 | AVM A1 (Fritz)
6 | ELSA PCC/PCF cards
7 | ELSA Quickstep 1000
8 | Teles 16.3 PCMCIA
9 | ITK ix1-micro Rev. 2
10 | ELSA PCMCIA
11 | Eicon.Diehl Diva ISA PnP
11 | Eicon.Diehl Diva PCI
12 | ASUS COM ISDNLink
13 | HFC-2BS0 based cards
14 | Teles 16.3c
15 | Sedlbauer Speed Card (=Teledat 100)
15 | Sedlbauer PC/104
16 | USR Sportster internal
17 | MIC card
18 | ELSA Quickstep 1000PCI
19 | Compaq ISDN S0 ISA card
20 | NETjet PCI card
21 | Teles PCI
22 | Sedlbauer Speed Star (PCMCIA)
24 | Dr. Neuhaus Niccy PnP
24 | Dr. Neuhaus Niccy PCI
25 | AVM A1 PCMCIA (Fritz!)
26 | Teles S0Box
27 | Fritz PCI
27 | AVM PnP
28 | Sedlbauer Speedfax

Versuchen Sie als Erstes die Treiber (= Kernelmodul) für Ihre ISDN-Karte zu laden. Verwenden Sie dazu den modprobe-Befehl, da dieser evtl. zusätzlich benötigte Module automatisch mit lädt.
Sie müssen dem Modul Parameter mitgeben, z.B. TypNummer (vgl. obige Tabelle), die IO-Adresse oder die Nummer des Interrupts, den Namen (id), unter dem die Karte angesprochen und das ISDN-Protokoll (1 = 1TR6, 2 =EDSS1 ) das verwendet werden soll. Ein entsprechender Aufruf könnte wie folgt lauten:

root@linux # modprobe hisax typ=5 io=0x200 irq=7 id=ippp0 protocol=2

...um den Treiber für eine Fritz-Karte zu laden. Wenn es keine Fehlermeldung gibt, sollte das hisax-, isdn- und ein shlc-Modul zusätzlich in der Ausgabe von lsmod zu sehen sein. Ist dies nicht der Fall müssen Sie entweder die Parameter ändern, einen anderen Treiber ausprobieren oder den Support der Distribution anrufen. Weitergehende Informationen z.B. über Kartentypen, benötigte Parameter und Modulnamen finden Sie auch in der Dokumentation des Kernels.

Wenn das Laden des Treibers erfolgreich war, sollte sich der Schnittstelle eine IP-Adresse zuweisen lassen. Den Namen der Schnittstelle haben Sie ja beim Laden des Moduls dem Treiber zugewiesen.

root@linux # ifconfig ippp0 192.168.99.99

sollte nun funktionieren, was Sie durch die erneute Eingabe von

root@linux # ifconfig

(ohne Parameter) kontrollieren können.

Wenn auch der Befehl

root@linux # isdnctrl list ippp0

(bzw. mit dem von Ihnen vergebenen Namen) keine Fehlermeldung (wie z.B. no such device o.ä) bringt, läuft die Schnittstelle.

Am besten konfigurieren Sie die ISDN-Schnittstelle nun nochmals mit den neuen Erkenntnissen und dem Werkzeug der Distribution.

#### 3.1.2 Kein Login beim Provider

Wenn die Karte erfolgreich konfiguriert wurde sollte auch ein Zugang zum Provider möglich sein. Wenn das nicht der Fall ist kommen folgende Ursachen in Frage:

- Das ISDN-Gerät ist nicht mit der ISDN-Leitung verbunden (NTBA), oder das Verbindungskabel ist defekt.
- Die angewählte Nummer ist falsch.
- Der Loginname ist falsch.
  Besonders der lange nummerische Zugangsname von T-Online beherbergt viele Möglichkeiten für Zahlendreher. Wichtig ist auch, dass die Mitbenutzernummer (nach dem Hash-Zeichen - #) vierstellig und größer 0 ist.
- Das Passwort ist falsch.

Die Datei /var/log/messages gibt viele Hinweise zu den Fehlerquellen. Das ISDN-Protokoll gibt sogenannte Cause-Codes zurück, die den Fehler angeben. Die folgenden Tabelle listet einige der Fehlercodes auf und gibt Hinweise für die Behebung:

Fehler-Code | Problem/Lösung
--- | ---

E0066: Recovery on timer expiry

Your peer doesn't handle a part of the DSS1 protocol correctly - its reactions upon sending -complete-requests are faulty; solution: Recompile your kernel with the option "Disable sending complete"
Partner kann mit Teilen des DSS1-Protokolls nichts anfangen - Reaktion auf sending- complete-requests sind fehlerhaft; Lösung: Kernel neu kompilieren mit "Disable sending complete"

E0058: Incompatible destination

It is true that you chose the right telephone number, but your peer has not loaded his ISDN- subsystem correctly or even not at all; this can happen even if the peer has misconfigured the incoming telephone numbers. Mind: addphone out 123456 or addphone out 089123456 BUT: addphone in 89123456 - this is the ONLY possibility: Include area code even for local calls, but without leading zero.
Sicher haben Sie die richtige Telefonnummer gewählt, aber das ISDN-Subsystem beim Partner ist falsch oder nicht konfiguriert; dies passiert auch wenn die anrufende Telefonnummer beim Partner eingerichtet wurde. ACHTUNG: "addphone out 123456" oder "addphone out 089123456" RICHTIG: "addphone in 89123456" - ist nur SO möglich: Immer mit Vorwahl aber ohne führende Null.

E0201: Unassigned number | Your dial out telephone number is wrong; if an areacode is necessary you must include a leading zero. Check out the telephone number syntax described under E0058. Die gewählte Nummer ist falsch: Wenn eine Vor- wahl nötig ist, muss die führende Null dabei sein. Die Schreibweise der Telefonnummer prüfen vgl. auch E0058)
E0222: No circuit or channel available (public network) | This is what you usually call "BUSY". Im Volksmund: "Besetzt"

E0022: No circuit or channel available (user)

This may occur, when the physical connection to the peer is broken; it happened to me that the peer's telephone lines got broken, so I didnt get an answer from the telephone company but instead my own ISDN card refused to put my call through to the peer.
Dies kann passieren, wenn die physikalische Verbindung zum Partner zusammenbricht. Es passierte, dass die Leitung des Gegenübers zusammenbrach, ohne das es eine Rückmeldung von der Telefongesellschaft gab. Die lokale ISDN-Karte weigerte sich den Anruf abzusetzen.

E023f: Service or option not available | The server you want to connect to is down. This one I got only one time when I tried to connect to SUSE's ISDN server. Der anzurufende Server ist nicht eingeschaltet oder nicht erreichbar.
E0211: User Busy | The peer is busy; this is the 'normal' message everybody expects if the peer is actually busy. But unfortunately a different cause code is possible for exactly the same situation: For example E0222. Der Telefonanschluss ist besetzt; dies ist die 'normale' Meldung. Leider ist auch eine andere Meldung für diese Situation möglich: Siehe auch E0222.

Diese Tabelle wurde, mit freundlicher Genehmigung des Autors Jürgen Leising ( juergen.leising@hamburg.de) dessen Webseite http://homepage.hamburg.de/c98d93/isdn.html entnommen.

#### 3.1.3 Kein Zugriff auf Webseiten

Wenn die Einwahl klappt sieht man dies in der Datei /var/log/messages, wenn sinngemäß folgende Einträge auftauchen: remote IP xx.xx.xx.xx und local IP yy.yy.yy.yy. Wenn trotzdem keine Webseiten mit Name aufgerufen werden können, so kann das 2 Ursachen haben:

- keine defaultroute auf das ISDN-Device gesetzt
- kein Nameserver bekannt.

Es kommt vor, dass das Script /etc/ppp/ip-up, welches vom ippp-Daemon aufgerufen wird, die Einträge nicht richtig setzt. Das Script ruft ifconfig mit der zugewiesenen IP-Adresse auf und setzt das default-Gateway auf das ISDN-Gerät. Prüfen Sie als erstes mit dem Befehl

root@linux # route -n

ob ein default-Gateway gesetzt wurde (möglicher Eintrag 0.0.0.0 yy.yy.yy.yy ippp0, wobei yy.yy.yy.yy der IP-Adresse am anderen Ende der Verbindung, also beim Provider entspricht. Sollten die Adressen in Ordnung sein, sollte ein Ping auf eine bekannte Adresse funktionieren. Unter der IP 193.99.144.71 kann man z.B. den Server des Heise-Verlages erreichen. Wenn der Ping durchkommt, liegt das Problem am Nameservereintrag.

Grundsätzlich hilft einem jeder Nameserver weiter, man sollte aber dem seines Providers den Vorzug geben. Deshalb kann man (evtl. zu Testzwecken den von T-Online verwenden. Tragen Sie in die Datei /etc/resolv.conf "nameserver 212.185.252.71" ein (sicherheitshalber mit einer Leerzeile am Ende). Nun sollte man auch die Adressen mit Namen aufrufen können und der ping www.heise.de funktionieren.