Das FreeBSD-Handbuch
Zurück | Kapitel 27. Serielle Datenübertragung | Weiter

# 27.3. Terminals

Beigetragen von Sean Kelly.

> Warnung: Mit FreeBSD 8.0 wurden die Gerätedateien für serielle Ports von `/dev/ttyd`N`` in `/dev/ttyu`N`` umbenannt. Setzen Sie noch FreeBSD 7.X ein, müssen Sie die Befehle in den folgenden Abschnitten entsprechend anpassen.

Wenn Sie sich nicht an der Konsole oder über ein Netzwerk an Ihrem FreeBSD-System anmelden können, sind Terminals ein bequemer und billiger Weg auf Ihr System zuzugreifen. Dieser Abschnitt beschreibt wie Sie Terminals mit FreeBSD benutzen.

## 27.3.1. Terminaltypen

Das ursprüngliche UNIX® System besaß keine Konsolen. Zum Anmelden und Starten von Programmen wurden stattdessen Terminals benutzt, die an den seriellen Schnittstellen des Rechners angeschlossen waren. Dies entspricht der Benutzung eines Modems zum Anmelden auf einem entfernten System, um dort mit einem Terminalemulator im Textmodus zu arbeiten.

Die Konsolen heutiger PCs besitzen sehr gute Grafikfähigkeiten, trotzdem gibt es in fast jedem UNIX System die Möglichkeit, sich über die serielle Schnittstelle anzumelden; FreeBSD ist da keine Ausnahme. Sie können sich an einem Terminal anmelden und dort jedes Textprogramm, das Sie normalerweise an der Konsole oder in einem `xterm` Fenster im X Window System benutzen, laufen lassen.

Im kommerziellen Umfeld können Sie viele Terminals an ein FreeBSD-System anschließen und diese auf den Arbeitsplätzen Ihrer Angestellten aufstellen. Im privaten Umfeld kann ein älterer IBM PC oder Macintosh® als Terminal dienen. Damit verwandeln Sie einen Einzelarbeitsplatz in ein leistungsfähiges Mehrbenutzersystem.

FreeBSD kennt drei verschiedene Terminals:

- Dumb terminals,

- PCs, die als Terminals fungieren,

- X Terminals.

Die folgenden Abschnitte beschreiben jeden dieser Terminals.

### 27.3.1.1. Dumb-Terminals

Dumb-Terminals (unintelligente Datenstationen) sind Geräte, die über die serielle Schnittstelle mit einem Rechner verbunden werden. Sie werden “unintelligent” genannt, weil sie nur Text senden und empfangen und keine Programme laufen lassen können. Alle Programme, wie Texteditoren, Compiler oder Spiele befinden sich auf dem Rechner, der mit dem Terminal verbunden ist.

Es gibt viele Dumb-Terminals, die von verschiedenen Herstellern produziert werden, wie zum Beispiel der VT-100 von Digital Equipment Corporation oder der WY-75 von Wyse. So gut wie jeder der verschiedenen Terminals sollte mit FreeBSD zusammenarbeiten. Manche High-End Geräte verfügen sogar über Grafikfähigkeiten, die allerdings nur von spezieller Software genutzt werden kann.

Dumb-Terminals sind in Umgebungen beliebt, in denen keine Grafikanwendungen, wie zum Beispiel X-Programme, laufen müssen.

### 27.3.1.2. PCs, die als Terminal fungieren

Jeder PC kann die Funktion eines Dumb-Terminals, der ja nur Text senden und empfangen kann, übernehmen. Dazu brauchen Sie nur das richtige Kabel und eine Terminalemulation, die auf dem PC läuft.

Diese Konfiguration ist im privaten Umfeld sehr beliebt. Wenn Ihr Ehepartner zum Beispiel gerade an der FreeBSD-Konsole arbeitet, können Sie einen weniger leistungsstarken PC, der als Terminal mit dem FreeBSD-System verbunden ist, benutzen, um dort gleichzeitig im Textmodus zu arbeiten.

Bereits im Basissystem sind mindestens zwei Werkzeuge vorhanden, die Sie zur Arbeit über eine serielle Konsole einsetzen können: cu(1) sowie tip(1).

Um sich von einem FreeBSD-System aus über eine serielle Verbindung mit einem anderen System zu verbinden, geben Sie folgenden Befehl ein:

    # cu -l serial-port-device

“serial-port-device” ist hier der Name der Gerätedatei, die einer bestimmten seriellen Schnittstelle Ihres Systems zugewiesen ist. Diese Gerätedateien werden `/dev/cuad`N`` genannt.

Der Buchstabe “N” muss dabei durch die Nummer des seriellen Ports Ihres Systems ersetzt werden.

> Anmerkung: Beachten Sie, dass die Numerierung dieses Daten (im Gegensatz etwa zu MS-DOS®-kompatiblen Systemen) unter FreeBSD mit Null und nicht mit Eins beginnt. Die Schnittstelle “COM1” entspricht daher in der Regel `/dev/cuad0` unter FreeBSD.

> Anmerkung: In der Ports-Sammlung finden sich weitere Programme (beispielsweise `comms/minicom`), mit denen Sie eine Verbindung über eine serielle Schnittstelle herstellen können.

### 27.3.1.3. X-Terminals

X-Terminals sind die ausgereiftesten der verfügbaren Terminals. Sie werden nicht mit der seriellen Schnittstelle sondern mit einem Netzwerk, wie dem Ethernet, verbunden. Diese Terminals sind auch nicht auf den Textmodus beschränkt, sondern können jede X-Anwendung darstellen.

X-Terminals sind hier nur der Vollständigkeit halber aufgezählt. Die Einrichtung von X-Terminals wird in diesem Abschnitt nicht beschrieben.

## 27.3.2. Konfiguration

Im Folgenden wird beschrieben, wie Sie Ihr FreeBSD-System konfigurieren müssen, um sich an einem Terminal anzumelden. Dabei wird vorausgesetzt, dass der Kernel bereits die serielle Schnittstelle, die mit dem Terminal verbunden ist, unterstützt. Weiterhin sollte der Terminal schon angeschlossen sein.

Aus Kapitel 13 wissen Sie, dass `init` für das Initialisieren des Systems und den Start von Prozessen zum Zeitpunkt des Systemstarts verantwortlich ist. Unter anderem liest `init` `/etc/ttys` ein und startet für jeden verfügbaren Terminal einen `getty` Prozess. `getty` wiederum fragt beim Anmelden den Benutzernamen ab und startet `login`.

Um Terminals auf Ihrem FreeBSD-System einzurichten, führen Sie folgenden Schritte als `root` durch:

1. Wenn er noch nicht da ist, fügen Sie einen Eintrag in `/etc/ttys` für die serielle Schnittstelle aus `/dev` ein.

2. Geben Sie `/usr/libexec/getty` als auszuführendes Programm an. Als Parameter für `getty` geben Sie den passenden Verbindungstyp aus `/etc/gettytab` an.

3. Geben Sie den Terminaltyp an.

4. Aktivieren Sie den Anschluss.

5. Geben Sie die Sicherheit des Anschlusses an.

6. Veranlassen Sie `init` `/etc/ttys` erneut zu lesen.

Optional können Sie in `/etc/gettytab` auch einen auf Ihre Zwecke angepassten Terminaltyp erstellen. Die genaue Vorgehensweise wird in diesem Abschnitt nicht erklärt, aber die Manualpages von gettytab(5) und getty(8) enthalten dazu weitere Informationen.

### 27.3.2.1. Hinzufügen eines Eintrags in `/etc/ttys`

In `/etc/ttys` werden alle Terminals aufgeführt, an denen Sie sich auf dem FreeBSD-System anmelden können. Hier findet sich zum Beispiel ein Eintrag für die erste virtuelle Konsole `/dev/ttyv0`, der es Ihnen ermöglicht, sich dort anzumelden. Die Datei enthält des Weiteren Einträge für andere virtuelle Konsolen, serielle Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal konfigurieren wollen, fügen sie einen Eintrag für den Namen des Gerätes aus `/dev` ohne das Präfix `/dev` hinzu. Zum Beispiel wird `/dev/ttyv0` als `ttyv0` aufgeführt.

In der Voreinstellung enthält `/etc/ttys` Einträge für die ersten vier seriellen Schnittstellen: `ttyu0` bis `ttyu3`. Wenn Sie an eine von diesen einen Terminal anschließen, brauchen Sie keinen weiteren Eintrag hinzuzufügen.

Beispiel 27-1. Einträge in `/etc/ttys` hinzufügen

Angenommen, wir wollen an ein System zwei Terminals anschließen: Einen Wyse-50 und einen alten 286 IBM PC, der mit Procomm einen VT-100 Terminal emuliert. Den Wyse-Terminal verbinden wir mit der zweiten seriellen Schnittstelle und den 286 mit der sechsten seriellen Schnittstelle (einem Anschluss auf einer Multiportkarte). Die entsprechenden Einträge in `/etc/ttys` würden dann wie folgt aussehen:

    ttyu1  "/usr/libexec/getty std.38400"  wy50  on  insecure
    ttyu5   "/usr/libexec/getty std.19200"  vt100  on  insecure

  Das erste Feld gibt normalerweise den Namen der Gerätedatei aus `/dev` an.
  Im zweiten Feld wird das auszuführende Kommando, normal ist das getty(8), angegeben. `getty` initialisiert und öffnet die Verbindung, setzt die Geschwindigkeit und fragt den Benutzernamen ab. Danach führt es login(1) aus.

  `getty` akzeptiert einen optionalen Parameter auf der Kommandozeile, den Verbindungstyp, der die Eigenschaften der Verbindung, wie die Geschwindigkeit und Parität, festlegt. Die Typen und die damit verbundenen Eigenschaften liest `getty` aus `/etc/gettytab`.

  `/etc/gettytab` enthält viele Einträge sowohl für neue wie auch alte Terminalverbindungen. Die meisten Einträge, die mit `std` beginnen, sollten mit einem festverdrahteten Terminal funktionieren. Für jede Geschwindigkeit zwischen 110 bps und 115200 bps gibt es einen `std` Eintrag. Natürlich können Sie auch eigene Einträge erstellen, Informationen dazu finden Sie in gettytab(5).

  Wenn Sie den Verbindungstyp in `/etc/ttys` eintragen, stellen Sie bitte sicher, dass die Kommunikationseinstellungen auch mit denen des Terminals übereinstimmen.

  In unserem Beispiel verwendet der Wyse-50 keine Parität und 38400 bps, der 286 PC benutzt ebenfalls keine Parität und arbeitet mit 19200 bps.

  Das dritte Feld gibt den Terminaltyp an, der normalerweise mit diesem Anschluss verbunden ist. Für Einwählverbindungen wird oft `unknown` oder `dialup` benutzt, da sich die Benutzer praktisch mit beliebigen Terminals oder Emulatoren anmelden können. Bei festverdrahteten Terminals ändert sich der Typ nicht, so dass Sie in diesem Feld einen richtigen Typ aus der termcap(5) Datenbank angeben können.

  In unserem Beispiel benutzen wir für den Wyse-50 den entsprechenden Typ aus termcap(5), der 286 PC wird als VT-100, den er ja emuliert, angegeben.

  Das vierte Feld gibt an, ob der Anschluss aktiviert werden soll. Wenn Sie hier `on` angeben, startet `init` das Programm, das im zweiten Feld angegeben wurde (normal `getty`). Wenn Sie `off` angeben, wird das Kommando aus dem zweiten Feld nicht ausgeführt und folglich können Sie sich dann an dem betreffenden Terminal nicht anmelden.
  Im letzten Feld geben Sie die Sicherheit des Anschlusses an. Wenn Sie hier `secure` angeben, darf sich `root` (oder jeder Account mit der UID `0`) über diese Verbindung anmelden. Wenn Sie `insecure` angeben, dürfen sich nur unprivilegierte Benutzer anmelden. Diese können später mit su(1) oder einem ähnlichen Mechanismus zu `root` wechseln.

  Es wird dringend empfohlen, `insecure` nur für Terminals hinter verschlossenen Türen zu verwenden, da Sie mit `su` leicht zum Superuser werden können.

### 27.3.2.2. `init` zwingen, `/etc/ttys` erneut zu lesen

Nachdem Sie die nötigen Änderungen in `/etc/ttys` vorgenommen haben, schicken Sie `init` ein SIGHUP-Signal (hangup), um es zu veranlassen, seine Konfigurationsdatei neu zu lesen:

    # kill -HUP 1

> Anmerkung: Da `init` immer der erste Prozess auf einem System ist, besitzt es immer die PID `1`.

Wenn alles richtig eingerichtet ist, alle Kabel angeschlossen und die Terminals eingeschaltet sind, sollte für jeden Terminal ein `getty` Prozess laufen und auf jedem Terminal sollten Sie eine Anmeldeaufforderung sehen.

## 27.3.3. Fehlersuche

Selbst wenn Sie den Anweisungen akribisch gefolgt sind, kann es immer noch zu Fehlern beim Einrichten eines Terminals kommen. Die folgende Aufzählung von Symptomen beschreibt mögliche Lösungen:

### 27.3.3.1. Es erscheint kein Anmeldeprompt

Stellen Sie sicher, dass der Terminal verbunden und eingeschaltet ist. Wenn ein PC als Terminal fungiert, überprüfen Sie, dass die Terminalemulation auf den richtigen Schnittstellen läuft.

Stellen Sie sicher, dass Sie das richtige Kabel verwenden und dass das Kabel fest mit dem Terminal und dem FreeBSD-Rechner verbunden ist.

Stellen Sie sicher, dass die Einstellungen für die Geschwindigkeit (bps) und Parität auf dem FreeBSD System und dem Terminal gleich sind. Wenn Ihr Terminal einen Bildschirm besitzt, überprüfen Sie die richtige Einstellung von Helligkeit und Kontrast. Wenn Ihr Terminal druckt, stellen Sie die ausreichende Versorgung mit Papier und Tinte sicher.

Überprüfen Sie mit `ps`, dass der `getty` Prozess für den Terminal läuft:

    # ps -axww|grep getty

Für jeden Terminal sollten Sie einen Eintrag sehen. Aus dem folgenden Beispiel erkennen Sie, dass `getty` auf der zweiten seriellen Schnittstelle `tyyd1` läuft und den Verbindungstyp `std.38400` aus `/etc/gettytab` benutzt:

    22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyu1

Wenn `getty` nicht läuft, überprüfen Sie, ob der Anschluss in `/etc/ttys` aktiviert ist. Haben Sie `kill -HUP 1` abgesetzt, nachdem Sie `/etc/ttys` geändert hatten?

Wenn `getty` läuft, aber der Terminal immer noch kein Anmeldeprompt ausgibt, oder Sie am Anmeldeprompt nichts eingeben können, kann es sein, dass Ihr Terminal oder Kabel keinen Hardware-Handshake unterstützt. Ändern Sie dann den Eintrag `std.38400` in `/etc/ttys` zu `3wire.38400`. Nachdem Sie `/etc/ttys` geändert haben, setzen Sie das Kommando `kill -HUP 1` ab. Der Eintrag `3wire` besitzt ähnliche Eigenschaften wie der Eintrag `std`, ignoriert aber den Hardware-Handshake. Wenn Sie den Eintrag `3wire` verwenden, müssen Sie vielleicht die Geschwindigkeit verkleinern oder die Software-Flusssteuerung aktivieren, um Pufferüberläufe zu vermeiden.

### 27.3.3.2. Es erscheinen nur unverständliche Zeichen

Stellen Sie sicher, dass die Einstellungen für die Geschwindigkeit (bps) und Parität auf dem FreeBSD System und dem Terminal gleich sind. Kontrollieren Sie den `getty` Prozess und stellen Sie sicher, dass der richtige Verbindungstyp aus `/etc/gettytab` benutzt wird. Wenn das nicht der Fall ist, editieren Sie `/etc/ttys` und setzen das Kommando `kill-HUP 1` ab.

### 27.3.3.3. Zeichen erscheinen doppelt und eingegebene Passwörter erscheinen im Klartext

Stellen Sie den Terminal oder die Terminalemulation von “half duplex” oder “local echo” auf “full duplex.” um.

Zurück | Zum Anfang | Weiter
Einführung | Nach oben | Einwählverbindungen

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>.