20.2. Einführung

20.2.1. Begriffe

bps

Bits pro Sekunde - Einheit für die Übertragungsgeschwindigkeit.

DEE (DTE)

Datenendeinrichtung (Data Terminal Equipment) - zum Beispiel Ihr Computer.

DÜE (DCE)

Datenübertragungseinrichtung (Data Communications Equipment) - Ein Modem.

RS-232

EIA (Electronic Industries Association) Norm für die serielle Datenübertragung.

In diesem Abschnitt wird der Begriff “Baud” nicht für Übertragungsgeschwindigkeiten gebraucht. Baud bezeichnet elektrische Zustandswechsel pro Zeiteinheit, die Taktfrequenz, während “bps” (Bits pro Sekunde) der richtige Begriff für die Übertragungsgeschwindigkeit ist (die meisten Pedanten sollten damit zufrieden sein).

20.2.2. Kabel und Schnittstellen

Um ein Modem oder einen Terminal an Ihr FreeBSD-System anzuschließen, muss Ihr Computer über eine serielle Schnittstelle verfügen. Zusätzlich brauchen Sie noch das passende Kabel, um das Gerät mit der Schnittstelle zu verbinden. Wenn Sie mit Ihren Geräten und den nötigen Kabeln schon vertraut sind, können Sie diesen Abschnitt überspringen.

20.2.2.1. Kabel

Es gibt verschiedene serielle Kabel. Die zwei häufigsten sind Nullmodemkabel und Standard-RS-232-Kabel. Die Dokumentation Ihrer Hardware sollte beschreiben, welchen Kabeltyp Sie benötigen.

20.2.2.1.1. Nullmodemkabel

Ein Nullmodemkabel verbindet einige Signale, wie die Betriebserde, eins zu eins, andere Signale werden getauscht: Die Sende- und Empfangsleitungen werden zum Beispiel gekreuzt.

Wenn Sie Ihre Kabel selber herstellen möchten, zeigt die folgende Tabelle die Signalnamen von RS-232C und Pinbelegung für einen Stecker vom Typ DB-25:

Signal Pin #   Pin # Signal
SG 7 verbunden mit 7 SG
TD 2 verbunden mit 3 RD
RD 3 verbunden mit 2 TD
RTS 4 verbunden mit 5 CTS
CTS 5 verbunden mit 4 RTS
DTR 20 verbunden mit 6 DSR
DCD 8   6 DSR
DSR 6 verbunden mit 20 DTR

Anmerkung: Das Signal “Data Terminal Ready” (DTR) wird mit den Signalen “Data Set Ready” (DSR) und “Data Carrier Detect” (DCD) der Gegenstelle verbunden.

20.2.2.1.2. Standard RS-232C Kabel

Ein Standard-RS-232C-Kabel verbindet alle Signale direkt, das heißt das Signal “Sendedaten” wird mit dem Signal “Sendedaten” der Gegenstelle verbunden. Dieses Kabel wird benötigt, um ein Modem mit einem FreeBSD-System zu verbinden. Manche Terminals benötigen dieses Kabel ebenfalls.

20.2.2.2. Schnittstellen

Über serielle Schnittstellen werden Daten zwischen dem FreeBSD-System und dem Terminal übertragen. Dieser Abschnitt beschreibt die verschiedenen Schnittstellen und wie sie unter FreeBSD angesprochen werden.

20.2.2.2.1. Arten von Schnittstellen

Da es verschiedene Schnittstellen gibt, sollten Sie vor dem Kauf oder Selbstbau eines Kabels sicherstellen, dass dieses zu den Schnittstellen Ihres Terminals und FreeBSD-Systems passt.

Die meisten Terminals besitzen DB25-Stecker. Personal Computer haben DB25- oder DB9-Stecker. Wenn Sie eine serielle Multiportkarte für Ihren PC besitzen, haben Sie vielleicht RJ-12- oder RJ-45-Anschlüsse.

Die Dokumentation Ihrer Geräte sollte Aufschluss über den Typ der benötigten Anschlüsse geben. Oft hilft es, wenn Sie sich den Anschluss einfach ansehen.

20.2.2.2.2. Schnittstellenbezeichnung

Unter FreeBSD sprechen Sie die serielle Schnittstelle (Port) über einen Eintrag im /dev Verzeichnis an. Es gibt dort zwei verschiedene Einträge:

  • Schnittstellen für eingehende Verbindungen werden /dev/ttydN genannt. Dabei ist N die Nummer der Schnittstelle, deren Zählung bei Null beginnt. Allgemein wird diese Schnittstelle für Terminals benutzt. Diese Schnittstelle funktioniert nur, wenn ein “Data Carrier Detect” Signal (DCD) vorliegt.

  • Für ausgehende Verbindungen wird /dev/cuaaN verwendet. Dieser Port wird normalerweise nur von Modems genutzt. Sie können ihn allerdings für Terminals benutzen, die das “Data Carrier Detect” Signal nicht unterstützen.

Wenn Sie einen Terminal an die erste serielle Schnittstelle (COM1 in MS-DOS®), angeschlossen haben, sprechen Sie ihn über /dev/ttyd0 an. Wenn er an der zweiten seriellen Schnittstelle angeschlossen ist, verwenden Sie /dev/ttyd1, usw.

20.2.3. Kernelkonfiguration

In der Voreinstellung benutzt FreeBSD vier serielle Schnittstellen, die in MS-DOS-Kreisen als COM1, COM2, COM3 und COM4 bekannt sind. Momentan unterstützt FreeBSD einfache Multiportkarten (z.B. die BocaBoard 1008 und 2016) und bessere wie die von Digiboard und Stallion Technologies. In der Voreinstellung sucht der Kernel allerdings nur nach den Standardanschlüssen.

Um zu überprüfen, ob der Kernel eine Ihrer seriellen Schnittstellen erkennt, achten Sie auf die Meldungen beim Booten, oder schauen sich diese später mit /sbin/dmesg an. Insbesondere sollten Sie auf Meldungen achten, die mit den Zeichen sio anfangen.

Tipp: Das folgende Kommando zeigt Ihnen nur die Meldungen an, die die Folge sio enthalten:

# /sbin/dmesg | grep 'sio'

Auf einem System mit vier seriellen Schnittstellen sollte der Kernel die folgenden Meldungen ausgeben:

sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A

Wenn Ihr Kernel nicht alle seriellen Schnittstellen erkennt, müssen Sie unter Umständen einen angepassten Kernel für Ihr System erstellen. Eine ausführliche Anleitung dazu finden Sie in Kapitel 8.

Die Kernelkonfiguration für FreeBSD 4.X sieht wie folgt aus:

device     sio0    at isa? port IO_COM1 tty irq 4
device      sio1    at isa? port IO_COM2 tty irq 3
device      sio2    at isa? port IO_COM3 tty irq 5
device      sio3    at isa? port IO_COM4 tty irq 9

FreeBSD 5.X verwendet die folgende Zeile:

device     sio

Mit FreeBSD 4.X können Sie nicht vorhandene Schnittstellen entfernen oder auskommentieren. Unter FreeBSD 5.X werden die Schnittstellen in /boot/device.hints konfiguriert. Die Hilfeseite sio(4) enthält weitere Informationen über serielle Schnittstellen und Multiportkarten. Seien Sie vorsichtig, wenn Sie Konfigurationsdateien von älteren FreeBSD-Versionen verwenden, da sich die Syntax und die Bedeutung der Optionen zwischen verschiedenen Versionen geändert hat.

Anmerkung: port IO_COM1 ist ein Ersatz für port 0x3f8, IO_COM2 bedeutet port 0x2f8, IO_COM3 bedeutet port 0x3e8 und IO_COM4 steht für port 0x2e8. Die angegebenen IO-Adressen sind genau wie die Interrupts 4, 3, 5 und 9 üblich für serielle Schnittstellen. Beachten Sie bitte, dass sich normale serielle Schnittstellen auf ISA-Bussen keine Interrupts teilen können. Multiportkarten besitzen zusätzliche Schaltkreise, die es allen 16550As auf der Karte erlauben, sich einen oder zwei Interrupts zu teilen.

20.2.4. Gerätedateien

Die meisten Geräte im Kernel werden durch Gerätedateien in /dev angesprochen. Die sio Geräte werden durch /dev/ttydN für eingehende Verbindungen und durch /dev/cuaaN für ausgehende Verbindungen angesprochen. Zum Initialisieren der Geräte stellt FreeBSD die Dateien /dev/ttyidN und /dev/cuaiaN zur Verfügung. Diese Dateien werden benutzt, um Kommunikationsparameter beim Öffnen eines Ports vorzugeben. Für Modems, die zur Flusskontrolle RTS/CTS benutzen, kann damit crtscts gesetzt werden. Die Geräte /dev/ttyldN und /dev/cualaN (locking devices) werden genutzt, um bestimmte Parameter festzuschreiben und vor Veränderungen zu schützen. Weitere Informationen zu Terminals finden Sie in termios(4), sio(4) erklärt die Dateien zum Initialisieren und Sperren der Geräte, stty(1) beschreibt schließlich Terminal-Einstellungen.

20.2.4.1. Erstellen von Gerätedateien

Anmerkung: Unter FreeBSD 5.0 werden Gerätedateien im Dateisystem devfs(5) bei Bedarf automatisch angelegt. Wenn Sie eine FreeBSD-Version mit devfs benutzen, können Sie diesen Abschnitt überspringen.

Zum Anlegen der Gerätedateien in /dev wird MAKEDEV benutzt. Um die Geräte der ersten seriellen Schnittstelle für eingehende Verbindungen zu erstellen, wechseln Sie nach /dev und setzen dort den Befehl MAKEDEV ttyd0 ab. Für die zweite serielle Schnittstelle (COM2 bzw. die Schnittstelle mit der Nummer 1 führen Sie analog MAKEDEV ttyd1 aus.

Dabei erstellt MAKEDEV nicht nur die /dev/ttydN Gerätedateien, sondern auch die folgenden Dateien: /dev/cuaaN, /dev/cuaiaN, /dev/cualaN, /dev/ttyldN und /dev/ttyidN.

Nachdem Sie die Gerätedateien erstellt haben, sollten Sie die Zugriffsrechte der neuen Dateien, besonders die der /dev/cua* Dateien überprüfen, um sicherzustellen, dass wirklich nur jene Benutzer, die auf diese Geräte zugreifen sollen, Schreib- und Leseberechtigungen haben. Die Vorgabe der Zugriffsrechte sollte ausreichend sein:

crw-rw----    1 uucp     dialer    28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw----    1 uucp     dialer    28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw----    1 uucp     dialer    28, 193 Feb 15 14:38 /dev/cuala1

Auf die Geräte für ausgehende Verbindungen dürfen uucp und Mitglieder der Gruppe dialer zugreifen.

20.2.5. Konfiguration der seriellen Schnittstelle

Anwendungen benutzen normalerweise die Geräte ttydN oder cuaaN. Das Gerät besitzt einige Voreinstellungen für Terminal-I/O, wenn es von einem Prozess geöffnet wird. Mit dem folgenden Kommando können Sie sich diese Einstellungen ansehen:

# stty -a -f /dev/ttyd1

Sie können diese Einstellungen verändern, sie bleiben allerdings nur solange wirksam, bis das Gerät geschlossen wird. Wenn das Gerät danach wieder geöffnet wird, sind die Voreinstellungen wieder wirksam. Um die Voreinstellungen zu ändern, öffnen Sie das Gerät, das zum Initialisieren dient und verändern dessen Einstellungen. Um beispielsweise für ttyd5 den CLOCAL Modus, 8-Bit Kommunikation und XON/XOFF Flusssteuerung einzuschalten, setzen Sie das folgende Kommando ab:

# stty -f /dev/ttyid5 clocal cs8 ixon ixoff

In /etc/rc.serial werden die Voreinstellungen für seriellen Geräte vorgenommen.

Um zu verhindern, dass Einstellungen von Anwendungen verändert werden, können Sie die Geräte zum Festschreiben von Einstellungen (“locking devices”) benutzen. Wenn sie beispielsweise die Geschwindigkeit von ttyd5 auf 57600 bps festlegen wollen, benutzen Sie das folgende Kommando:

# stty -f /dev/ttyld5 57600

Eine Anwendung, die ttyd5 öffnet, kann nun nicht mehr die Geschwindigkeit ändern und muss 57600 bps benutzen.

Die Geräte zum Initialisieren und Festschreiben von Einstellungen sollten selbstverständlich nur von root beschreibbar sein.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:56:55