# 1.101.6

# Konfiguration von Kommunikationsgeräten

Beschreibung: Prüfungskandidaten sollten in der Lage sein, verschiedene interne und externe Kommunikationsgeräte wie Modems, ISDN-Adapter und DSL-Router zu installieren und zu konfigurieren. Dieses Lernziel beinhaltet die Prüfung von Kompatibilitätskriterien (besonders wichtig, wenn es sich um ein Winmodem handelt), notwendige Hardwareeinstellungen für interne Geräte (Interrupts, DMAs, I/O-Adressen) und das Laden und Konfigurieren von passenden Gerätetreibern. Ebenfalls enthalten sind Anforderungen an die Konfiguration von Kommunikationsgeräten und -schnittstellen, wie z.B. der korrekte serielle Port für 115.2 kbps und korrekte Modemeinstellungen für ausgehende PPP-Verbindungen.

Die wichtigsten Dateien, Bezeichnungen und Anwendungen

- `/proc/dma`
- `/proc/interrupts`
- `/proc/ioports`
- setserial(8)

Die Installation von Kommunikationsgeräten unterscheidet sich nicht von der anderer Erweiterungsgeräte. Also gilt für diese Geräte wiederum all das, was unter

- Hardwareparameter
- Das /proc-Verzeichnis
- Plug and Play mit Linux

schon gesagt wurde. Auch die bereits gemachten Erklärungen zu Kompatibilitätskriterien insbesondere von WIN-Modems wurden in Konfiguration von Modem und Soundkarten bereits besprochen. Die konkrete Einrichtung von PPP wird in der Vorbereitung auf die Prüfung LPI102 noch Thema werden.

### Setzen der seriellen Schnittstelle auf 115.2 kbps mit setserial

Das Programm zur Konfiguration serieller Schnittstellen heißt setserial. setserial wurde dazu entworfen, Konfigurationsinformation einer seriellen Schnittstelle zu setzen oder zu lesen. Diese Information beinhaltet welche IO-Ports und IRQs serielle Schnittstellen benutzen und mit welchem Multiplikator Hochgeschwindigkeitsverbindungen bearbeitet werden.

Normalerweise wird setserial über ein init-Script beim Systemstart für alle angeschlossenen seriellen Schnittstellen gestartet um sie zu konfigurieren. Ohne besondere Parameter gibt setserial die Informationen über eine bestimmte serielle Schnittstelle aus.

Die vier standardmäßigen seriellen Schnittstellen des PC werden als `/dev/ttyS0` bis `/dev/ttyS3` bezeichnet. Mit diesen Bezeichnungen kann setserial arbeiten. Der Aufruf von

      setserial /dev/ttyS0

gibt uns beispielsweise folgende Ausgabe:

      /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3

Um jetzt Einstellungen vorzunehmen, müssen dem Programm setserial mehr Parameter mitgegeben werden. Die Aufrufform ist dabei

      setserial Gerätedatei Parameter

Wichtige solcher Einstellungsparameter sind

port Portnummer
  setzt die IO-Portadresse der angegebenen Schnittstelle
irq IRQ-Nummer
  setzt den IRQ der angegebenen Schnittstelle
uart UART-Typ
  setzt den verwendeten UART Baustein (Universal Assynchronous Receiver Transmitter - der Chip, der die ser. Schnittstelle ansteuert). Gültige Werte sind: none, 8250, 16450, 16550, 16550A, 16650, 16650V2, 16654, 16750, 16850, 16950, und 16954. Der Wert none schaltet die Schnittstelle aus.

Viele Anwendungen, die mit seriellen Schnittstellen und Modems arbeiten kennen nur Geschwindigkeitseinstellungen bis zu 38,4 kb. Moderne Modems erfordern aber wesentlich schnellere Verbindungen zwischen Rechner und Modem, da diese Modems selbst noch Datenkompression anbieten, also mehr Daten zwischen Rechner und Modem transportiert werden müssen, als zwischen Modem und Modem. Damit auch ältere Anwendungen mit diesen Hochgeschwindigkeitsschnittstellen arbeiten können, bietet setserial die Möglichkeit an, verschiedene Flags zu setzen, die eine höhere Geschwindigkeit anschalten, wenn die Anwendung 38,4 kb anfordert.

spd_normal
  Benutzt 38,4kb wenn die Anwendung 38,4kb einstellt.
spd_hi
  Benutzt 57,6kb wenn die Anwendung 38,4kb einstellt.
spd_vhi
  Benutzt 115kb wenn die Anwendung 38,4kb einstellt.
spd_shi
  Benutzt 230kb wenn die Anwendung 38,4kb einstellt.
spd_warp
  Benutzt 460kb wenn die Anwendung 38,4kb einstellt.

Natürlich muß der verwendete UART diese Geschwindigkeiten tatsächlich unterstützen. Um also die von LPI geforderte Einstellung von 115kb auf der Schnittstelle `/dev/ttyS0` vorzunehmen schreiben wir:

      setserial /dev/ttyS0 spd_vhi

ein erneuter Aufruf von

      setserial /dev/ttyS0

bringt uns jetzt die Ausgabe:

      /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3, Flags: spd_vhi

Wenn eine Anwendung jetzt 38,4kb anfordert, wird die Schnittstelle in Wahrheit mit 115kb angesteuert.

### Konfiguration eines Modems

Ein Modem wird über einen seriellen Port angeschlossen. Entweder ist es ein externes Modem, dann wird die Verbindung direkt über einen existierenden Port und ein serielles Kabel hergestellt, oder das Modem ist eine interne Steckkarte, die einen eigenen - zusätzlichen - seriellen Port enthält. Auch dieser zusätzliche serielle Port muß entsprechend mit setserial konfiguriert werden.

Modems werden über einen Befehlssatz gesteuert, der nicht hundertprozentig standardisiert ist. Grundsätzlich beginnen Modembefehle mit dem Wort `AT`, dem weitere Zeichen folgen. Die genauen Befehle müssen dem jeweiligen Modemhandbuch entnommen werden. Hier ein kleiner Überblick über die Befehle, die in der Regel alle Modems kennen. Jeder der folgenden Befehle muß mit einem Enter abgeschlossen werden, damit ihn das Modem überhaupt erst ausführt:

AT | Das Modem antwortet mit `OK`. Tut es das nicht, so stimmt etwas mit der Kommunikation zwischen Modem und Rechner nicht.
ATD Nummer | Das Modem wählt die angegebene Nummer und baut eine Verbindung auf.
ATH0 | Modem legt auf
ATH1 | Modem nimmt ab
ATXZiffer | Stellt das Modem-Verhalten beim Verbindungsaufbau ein. ATX0 - Modem wählt und meldet CONNECT bei erfolgreichem Verbindungsaufbau ATX1 - Modem wählt und meldet CONNECT (Geschwindigkeit) ATX2 - Modem wartet auf Freizeichen, wählt und meldet CONNECT (Geschwindigkeit). ATX3 - Modem wählt und meldet CONNECT (Geschwindigkeit) oder BUSY (belegt). X3 sollte bei Nebenstellenanlagen verwendet werden, um das Warten auf ein Freizeichen der Amtsleitung zu vermeiden. ATX4 - X4 Modem wartet auf Freizeichen, wählt und meldet CONNECT (Geschwindigkeit). ATX5 - Modem wählt und meldet CONNECT (Geschwindigkeit), Busy, Voice (Telefon anstatt eines Modems an der Gegenstelle). ATX6 - Modem wartet auf Freizeichen, wählt und meldet CONNECT (Geschwindigkeit), Busy (belegt), Voice.
ATS0=0 | Das Modem nimmt nicht selbstständig Anrufe entgegen. ATS0=1 bedeutet das Modem nimmt nach einem Läuten ab, S0=2 wäre nach zweimal Klingeln abheben ...
AT&W | Das Modem speichert seine gegenwärtige Einstellung
ATZ | Das Modem liesst die gespeicherte Einstellung und aktiviert sie.

Jedes Datenfernübertragungsprogramm wie z.B. minicom, aber auch andere Programme, die mit Modems arbeiten, wie etwa die Programme, die PPP und SLIP Verbindungen aufbauen, müssen diese Befehle nutzen. Normalerweise wird entweder ein Modeminitialisierungsbefehl angegeben, der alle notwendigen Einstellungen enthält wie etwa

      ATS0=0 X3

oder es ist vorher dafür gesorgt worden, daß das Modem seine Einstellungen gespeichert hat, dann genügt ein

      ATZ

Nun sollte das Modem für ausgehende Verbindungen konfiguriert sein.