Häufig gestellte Fragen zu FreeBSD 6.`X` und 7.`X`: Frequently Asked Questions zu FreeBSD 6.`X` und 7.`X`
Zurück |  | Weiter

# Kapitel 15. Serielle Verbindungen

Dieses Kapitel beantwortet häufig gestellte Fragen zu seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im Abschnitt Netzwerke behandelt.

15.1. Wie kann ich feststellen, ob FreeBSD meine seriellen Schnittstellen gefunden hat?
15.2. Wie kann ich feststellen, ob FreeBSD meine Modemkarten gefunden hat?
15.3. Wie kann ich auf die seriellen Schnittstellen in FreeBSD zugreifen?
15.4. Wie kann ich die Unterstützung für eine Karte mit mehreren seriellen Schnittstellen aktivieren?
15.5. Kann FreeBSD mehrere Karten mit mehreren seriellen Schnittstellen mit den gleichen IRQs verwalten?
15.6. Kann ich die vorgegebenen seriellen Parameter für eine Schnittstelle einstellen?
15.7. Wie kann ich Einwahl-Logins über mein Modem aktivieren?
15.8. Wie kann ich ein Hardware-Terminal mit meiner FreeBSD Box verbinden?
15.9. Warum kann ich `tip` oder `cu` nicht laufen lassen?
15.10. Mein Hayes Modem wird nicht unterstützt - was kann ich tun?
15.11. Wie soll ich die AT Befehle eingeben?
15.12. Wieso funktioniert das `<@>` Zeichen für die pn Fähigkeit nicht?
15.13. Wie kann ich von der Kommandozeile eine Telefonnummer wählen?
15.14. Muss ich dabei jedes Mal die bps Rate angeben?
15.15. Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen?
15.16. Kann tip mehr als eine Verbindung für jede Seite ausprobieren?
15.17. Warum muss ich zweimal Ctrl+P tippen, um ein Ctrl+P zu senden?
15.18. Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN??
15.19. Wie kann ich Dateien mit `tip` übertragen?
15.20. Wie kann ich zmodem mit tip laufen lassen?

15.1. Wie kann ich feststellen, ob FreeBSD meine seriellen Schnittstellen gefunden hat?

Wenn der FreeBSD Kernel bootet, testet er die seriellen Schnittstellen, für die er konfiguriert wurde. Sie können entweder Ihrem System aufmerksam beim Booten zusehen und die angezeigten Nachrichten lesen, oder Sie führen den Befehl

    % dmesg | grep sio

aus, nachdem Ihr System hochgefahren ist und läuft.

Hier ist ein Beispiel einer Ausgabe nach dem oben genannten Befehl:

    sio0: at 0x3f8-0x3ff irq 4 on isa
    sio0: type 16550A
    sio1: at 0x2f8-0x2ff irq 3 on isa
    sio1: type 16550A

Es zeigt zwei serielle Schnittstellen. Die erste verwendet Port-Adresse `0x3f8`, IRQ 4 und hat einen 16550A UART Chip. Die zweite benutzt ebenfalls einen 16550A UART, jedoch Port-Adresse `0x2f8` und IRQ 3. Modemkarten werden wie serielle Schnittstellen behandelt. Der einzige Unterschied ist, dass an diesen Schnittstellen immer ein Modem “angeschlossen” ist.

Der `GENERIC` Kernel beinhaltet Unterstützung für zwei serielle Schnittstellen, die den im Beispiel genannten Port und IRQ verwenden. Wenn diese Einstellungen nicht richtig für Ihr System sind, Sie Modemkarten hinzugefügt oder mehr serielle Schnittstellen haben als Ihre Kernelkonfiguration zulässt, konfigurieren Sie Ihren Kernel einfach neu. In dem Kapitel über die Kernelkonfiguration finden Sie mehr Details.

15.2. Wie kann ich feststellen, ob FreeBSD meine Modemkarten gefunden hat?

Die vorherige Frage sollte darauf eine Antwort geben.

15.3. Wie kann ich auf die seriellen Schnittstellen in FreeBSD zugreifen?

Die in sio(4) beschriebene serielle Schnittstelle `sio2` (`COM3` unter MS-DOS®/Windows®), ist `/dev/cuaa2` für Geräte mit abgehenden Verbindungen und `/dev/ttyd2` für Geräte mit eingehenden Verbindungen. Was ist der Unterschied zwischen den beiden Geräteklassen?

Sie benutzen `ttyd`X`` für eingehende Verbindungen. Wird `/dev/ttyd`X`` im blockierenden Modus geöffnet, wartet ein Prozess darauf, dass das entsprechende `cuaa`X`` Gerät inaktiv und der Empfangssignalpegel [1] aktiv ist. Wird das `cuaa`X`` Gerät geöffnet, vergewissert es sich, dass die serielle Schnittstelle nicht bereits von dem `ttyd`X`` Gerät in Gebrauch ist. Sollte die Schnittstelle verfügbar sein, “stiehlt” es sie von dem `ttyd`X`` Gerät. Das `cuaa`X`` Gerät kümmert sich nicht um Trägersignalerkennung. Mit diesem Schema und einem automatisch antwortenden Modem, können sich Benutzer von aussen einloggen, Sie können weiterhin mit demselben Modem wählen und das System kümmert sich um die Konflikte.

15.4. Wie kann ich die Unterstützung für eine Karte mit mehreren seriellen Schnittstellen aktivieren?

Die Sektion über die Kernelkonfiguration bietet Informationen darüber, wie Sie Ihren Kernel konfigurieren. Für eine Karte mit mehreren seriellen Schnittstellen, schreiben Sie eine sio(4) Zeile für jede serielle Schnittstelle auf der Karte in die Kernelkonfigurationsdatei. Aber achten Sie darauf, den IRQ und die Vektorbezeichnung nur in einem der Einträge zu platzieren. Alle seriellen Schnittstellen auf der Karte sollten sich einen IRQ teilen. Daher sollten Sie den IRQ nur beim letzten Eintrag angeben. Aktivieren Sie auch die `COM_MULTIPORT` Option.

Das folgende Beispiel ist geeignet für eine AST Karte mit 4 seriellen Schnittstellen, die IRQ 7 benutzt:

    options "COM_MULTIPORT"
    device sio4 at isa? port 0x2a0 tty flags 0x781
    device sio5 at isa? port 0x2a8 tty flags 0x781
    device sio6 at isa? port 0x2b0 tty flags 0x781
    device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr

Die Flags zeigen an, dass die Master-Schnittstelle die Minor-Nummer 7 (`0x700`) hat, Diagnosen während des Bootens ermöglicht sind (`0x080`), und dass sich alle Schnittstellen einen IRQ teilen (`0x001`).

15.5. Kann FreeBSD mehrere Karten mit mehreren seriellen Schnittstellen mit den gleichen IRQs verwalten?

Noch nicht. Sie müssen für jede Karte einen anderen IRQ verwenden.

15.6. Kann ich die vorgegebenen seriellen Parameter für eine Schnittstelle einstellen?

Das `ttyd`X`` (oder `cuaa`X``) Gerät ist das reguläre Gerät, das man in Anwendungen öffnet. Wenn ein Prozess es öffnet, hat es die voreingestellten Terminal Eingabe/Ausgabe-Einstellungen. Sie können diese Einstellungen mit dem Befehl

    # stty -a -f /dev/ttyd1

ansehen. Wenn Sie die Einstellungen für dieses Gerät ändern, sind die Einstellungen gültig, bis das Gerät geschlossen wird. Wird es danach geöffnet, hat es wieder die vorgegebenen Einstellungen. Um Änderungen an den vorgegebenen Einstellungen vorzunehmen, können Sie das Anfangsstatus-Gerät öffnen und dessen Einstellungen anpassen. Um zum Beispiel den CLOCAL Modus, 8 Bits und XON/XOFF Datenflusskontrolle als Standard für ttyd5 einzustellen, geben Sie

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

ein. Eine gute Stelle um dies zu tun ist in `/etc/rc.serial`. Jetzt hat eine Anwendung diese Einstellungen als Standardwerte, wenn sie `ttyd5` öffnet. Die Anwendung kann die Einstellungen jedoch immer noch nach Belieben verändern.

Man aber kann auch bestimme Einstellungen davor schützen, von einer Anwendung verändert zu werden, indem man Veränderungen am “lock state” Gerät vornimmt. Um beispielsweise die Geschwindigkeit von `ttyd5` auf 57600 bps festzusetzen:

    # stty -f /dev/ttyld5 57600

Wenn jetzt eine Anwendung `ttyd5` öffnet und versucht die Geschwindigkeit zu verändern, wird diese bei 57600 bps bleiben.

Natürlich sollten Sie das Schreiben auf die Anfangsstatus- und lock state-Geräte nur `root` erlauben. Das MAKEDEV(8) Skript tut dies nicht, wenn es die Geräte-Einträge erstellt.

15.7. Wie kann ich Einwahl-Logins über mein Modem aktivieren?

Also Sie wollen ein Internet Service Provider werden, ja? Als erstes brauchen Sie eines oder mehrere Modems, die automatisches Antworten beherrschen. Ihr Modem sollte auf Trägersignalerkennung reagieren und nicht fortlaufend die Leitung offen halten. Es muss auflegen und sich neu initialisieren können, wenn die “Data Terminal Ready” (DTR) Leitung ausgeschaltet wird. Es sollte wahrscheinlich RTS/CTS oder gar keine lokale Datenflusskontrolle benutzen. Zuletzt muss es eine konstante Geschwindigkeit zwischen dem Computer und sich selbst verwenden, aber es sollte (um die Anrufer freundlich zu behandeln) eine Geschwindigkeit zwischen sich und dem entfernten Modem aushandeln können.

Für viele Modems, die mit dem Hayes Befehlssatz kompatibel sind, erzeugt der folgende Befehl diese Einstellungen und legt sie im nicht-flüchtigen Speicher ab:

    AT &C1 &D3 &K3 &Q6 S0=1 &W

Die Sektion über das Senden von AT-Befehlen bietet weitere Informationen, wie man diese Einstellungen vornimmt, ohne zu einem MS-DOS Terminalprogramm zu flüchten.

Als nächstes erstellen Sie einen Eintrag in `/etc/ttys` für das Modem. Diese Datei listet alle Schnittstellen auf, auf denen das Betriebssystem Anmeldeversuche erwartet. Fügen Sie eine solche Zeile hinzu:

    ttyd1 "/usr/libexec/getty std 57600" dialup on insecure

Diese Zeile bedeutet, dass an der zweiten seriellen Schnittstelle (`/dev/ttyd1`) ein Modem angeschlossen ist, das mit 57600 bps läuft und keine Parität besitzt (`std.57600` aus `/etc/gettytab`). Der Terminal-Typ für diese Schnittstelle ist “dialup” (`Einwahl`). Die Schnittstelle ist eingeschaltet (`on`) und “unsicher” (`insecure`) - das bedeutet, man kann sich über diese Schnittstelle nicht als `root` einloggen. Für Einwahlanschlüsse wie diesen, benutzen Sie den `ttyd`X`` Eintrag.

Es ist relativ geläufig, `dialup` als Terminal-Typ zu verwenden. Viele Benutzer richten in ihren `.profile` oder `.login` Dateien eine Abfrage für das eigentliche Terminal ein, wenn der Start-Typ `dialup` ist. Das Beispiel zeigt die Schnittstelle als unsicher und um über diese Schnittstelle `root` zu werden, müssen Sie sich als normaler Benutzer einloggen und su(1). Wenn sie `secure` (“sicher”) als Einstellung verwenden, kann sich `root` direkt einloggen.

Nachdem Sie Modifikationen in `/etc/ttys` vorgenommen haben, müssen Sie ein hangup oder HUP Signal an init(8) senden:

    # kill -HUP 1

Das bringt init(8) dazu, die Datei `/etc/ttys` neu einzulesen. `init` startet dann an allen als eingeschaltet (`on`) markierten Schnittstellen die getty-Prozesse. Sie können herausfinden ob noch Logins für Ihre Schnittstelle verfügbar sind, wenn Sie folgendes eingeben:

    % ps -ax | grep '[t]tyd1'

Sie sollten etwas sehen, das so ähnlich aussieht wie:

    747 ?? I    0:00:04 /usr/libexec/getty std.57600 ttyd1

15.8. Wie kann ich ein Hardware-Terminal mit meiner FreeBSD Box verbinden?

Wenn Sie einen anderen Computer als Terminal für Ihr FreeBSD System verwenden wollen, verbinden Sie die beiden seriellen Schnittstellen mit einem Nullmodem-Kabel. Wenn Sie ein “echtes” (Hardware-)Terminal benutzen, lesen Sie die Begleitinformationen.

Ändern Sie `/etc/ttys` wie oben angegeben. Wenn Sie zum Beispiel ein WYSE-50 Terminal mit der fünften seriellen Schnittstelle verbinden wollen, schreiben Sie einen Eintrag wie diesen:

    ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure

Das Beispiel zeigt, dass die Schnittstelle an `/dev/ttyd4` mit einem wyse50 Terminal mit 38400 bps und ohne Parität (`std.38400` aus `/etc/gettytab`) verbunden ist und `root` Logins möglich sind (`secure`).

15.9. Warum kann ich `tip` oder `cu` nicht laufen lassen?

Vielleicht sind auf Ihrem System die Programme tip(1) und cu(1) nur von `uucp` und der Gruppe `dialer` ausführbar. Sie können die Gruppe `dialer` verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem oder entfernte Systeme hat. Fügen Sie sich einfach selbst zur Gruppe `dialer` hinzu.

Als Alternative können Sie jeden Benutzer auf Ihrem System tip(1) und cu(1) verwenden lassen, dazu müssen Sie das folgende eingeben:

    # chmod 4511 /usr/bin/cu
    # chmod 4511 /usr/bin/tip

15.10. Mein Hayes Modem wird nicht unterstützt - was kann ich tun?

Eigentlich ist die Onlinehilfe für tip(1) nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen Hayes Wähler. Verwenden Sie einfach `at=hayes` in `/etc/remote`.

Der Hayes Treiber ist nicht schlau genug, um ein paar der erweiterten Merkmale von neueren Modems zu erkennen - Nachrichten wie `BUSY`, `NO DIALTONE` oder `CONNECT 115200` verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von `ATX0&W` abschalten, wenn Sie `tip` benutzen.

Das Anwahl-Timeout von tip(1) beträgt 60 Sekunden. Ihr Modem sollte weniger verwenden, oder `tip` denkt, dass ein Kommunikationsfehler vorliegt. Versuchen Sie es mit `ATS7=45&W`.

Tatsächlich unterstützt die ausgelieferte Version von tip(1) es noch nicht vollständig. Die Lösung ist, `tipconf.h` im Verzeichnis `/usr/src/usr.bin/tip/tip` zu editieren. Dafür benötigen Sie natürlich die Quellcode Distribution.

Editieren Sie die Zeile `#define HAYES 0` in `#define HAYES 1` um. Dann führen Sie `make` und `make install` aus. Es sollte jetzt funktionieren.

15.11. Wie soll ich die AT Befehle eingeben?

Erstellen Sie einen so genannten `direct` Eintrag in `/etc/remote`. Wenn Ihr Modem zum Beispiel an der ersten seriellen Schnittstelle, `/dev/cuaa0`, angeschlossen ist, dann fügen Sie die folgende Zeile hinzu:

    cuaa0:dv=/dev/cuaa0:br#19200:pa=none

Verwenden Sie die höchste bps Rate, die Ihr Modem in der br Fähigkeit unterstützt. Geben Sie dann `tip `cuaa0`` ein und Sie sind mit Ihrem Modem verbunden.

Wenn auf Ihrem System keine `/dev/cuaa0` Datei existiert, geben Sie folgendes ein:

    # cd /dev
    # sh MAKEDEV cuaa0

Oder benutzen Sie `cu` als `root` mit dem folgenden Befehl:

    # cu -lline -sspeed

`line` steht für die serielle Schnittstelle (`/dev/cuaa0`) und `speed` für die Geschwindigkeit (`57600`). Wenn Sie mit dem Eingeben der AT Befehle fertig sind, beenden Sie mit `~.`.

15.12. Wieso funktioniert das `<@>` Zeichen für die pn Fähigkeit nicht?

Das `<@>` Zeichen in der Telefonnummerfähigkeit sagt tip, dass es in der Datei `/etc/phones` nach einer Nummer suchen soll. Aber `<@>` ist auch ein spezielles Zeichen in den Dateien, in denen Fähigkeiten beschrieben werden, wie `/etc/remote`. Schreiben Sie es mit einem '\' (backslash):

    pn=\@

15.13. Wie kann ich von der Kommandozeile eine Telefonnummer wählen?

Stellen Sie einen “allgemeinen” Eintrag in `/etc/remote`. Zum Beispiel:

    tip115200|Dial any phone number at 115200 bps:\
          :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
    tip57600|Dial any phone number at 57600 bps:\
          :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:

Mit einem Befehl wie `tip -115200 5551234` können Sie dann wählen. Sollten Sie cu(1) im Gegensatz zu tip(1) bevorzugen, verwenden Sie einen allgemeinen cu-Eintrag:

    cu115200|Use cu to dial any number at 115200bps:\
            :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:

Zum Wählen können Sie dann `cu 5551234 -s 115200` eingeben.

15.14. Muss ich dabei jedes Mal die bps Rate angeben?

Schreiben Sie einen `tip1200` oder einen `cu1200` Eintrag, aber geben Sie auch die bps Rate an, die Ihr Modem wirklich unterstützt. Leider denkt tip(1), dass 1200 bps ein guter Standardwert ist und deswegen sucht es nach einem `tip1200`-Eintrag. Natürlich müssen Sie nicht wirklich 1200 bps benutzen.

15.15. Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen?

Sie müssen nicht warten bis Sie verbunden sind, und jedes Mal `CONNECT `Rechner`` eingeben, benutzen Sie tip's `cm` Fähigkeit. Sie können diese Einträge in `/etc/remote` verwenden:

    pain|pain.deep13.com|Forrester's machine:\
            :cm=CONNECT pain\n:tc=deep13:
    muffin|muffin.deep13.com|Frank's machine:\
            :cm=CONNECT muffin\n:tc=deep13:
    deep13:Gizmonics Institute terminal server:\
            :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:

Mit den Befehlen `tip pain` oder `tip muffin` können Sie eine Verbindungen zu den Rechnern `pain` oder `muffin` herstellen; mit `tip deep13` verbinden Sie sich mit dem Terminal Server.

15.16. Kann tip mehr als eine Verbindung für jede Seite ausprobieren?

Das ist oft ein Problem, wenn eine Universität mehrere Telefonleitungen hat und viele tausend Studenten diese benutzen wollen.

Erstellen Sie einen Eintrag für Ihre Universität in `/etc/remote` und benutzen Sie `<\@>` für die `pn` Fähigkeit:

    big-university:\
            :pn=\@:tc=dialout
    dialout:\
            :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

Listen Sie die Telefonnummern der Universität in `/etc/phones` auf:

    big-university 5551111
    big-university 5551112
    big-university 5551113
    big-university 5551114

tip(1) probiert jede der Nummern in der aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie, dass `tip` beim Versuchen eine Verbindung herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife laufen.

15.17. Warum muss ich zweimal Ctrl+P tippen, um ein Ctrl+P zu senden?

Ctrl+P ist das voreingestellte Zeichen, mit dem eine Übertragung erzwungen werden kann und wird benutzt, um tip(1) zu sagen, dass das nächste Zeichen direkt gesendet werden soll und nicht als Fluchtzeichen interpretiert werden soll. Mit Hilfe der `~s` Fluchtsequenz, mit der man Variablen setzen kann, können Sie jedes andere Zeichen als “force”-Zeichen definieren.

Geben Sie `~sforce=`zeichen`` ein und drücken Sie Enter. Für `zeichen` können Sie ein beliebiges einzelnes Zeichen einsetzen. Wenn Sie `zeichen` weglassen, ist das “force”-Zeichen “nul”, das Sie mit Ctrl+2 oder Ctrl+SPACE eingeben können. Ein guter Wert für `zeichen` ist Shift+Ctrl+6, welches ich erst auf ein paar Terminal-Servern in Benutzung gesehen habe.

Sie können das “force”-Zeichen auch bestimmen, indem Sie in `$HOME/.tiprc` das folgende einstellen:

    force=single-char

15.18. Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN??

Sie müssen Ctrl+A eingegeben haben, das “raise”-Zeichen von tip(1) das speziell für Leute mit defekten Caps Lock Tasten eingerichtet wurde. Benutzen Sie `~s` wie oben und setzen Sie die Variable “raisechar” auf etwas, das Ihnen angemessen erscheint. Tatsächlich kann die Variable auf das gleiche Zeichen wie das “force”-Zeichen gesetzt werden, wenn Sie diese Fähigkeiten niemals benutzen wollen.

Hier ist ein Muster der `.tiprc` Datei, perfekt für Emacs Benutzer, die oft Ctrl+2 und Ctrl+A tippen müssen:

    force=^^
    raisechar=^^

Das ^^ steht für Shift+Ctrl+6.

15.19. Wie kann ich Dateien mit `tip` übertragen?

Wenn Sie mit einem anderen UNIX® System kommunizieren, können Sie Dateien senden und empfangen - mit `~p` (put) und `~t` (take). Diese Befehle lassen cat(1) und echo(1) auf dem entfernten System laufen, um Dateien zu akzeptieren und zu senden. Die Syntax ist:

    ~p <local-file> [<remote-file>]
    ~t <remote-file> [<local-file>]

Es gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein anderes Protokoll benutzen, wie zmodem.

15.20. Wie kann ich zmodem mit tip laufen lassen?

Zuerst installieren Sie ein zmodem Programm aus der Ports-Sammlung (eines der beiden aus der comms-Kategorie, lrzsz oder rzsz).

Um Dateien zu empfangen, starten Sie das Programm zum Senden auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von `~C rz` (oder `~C lrz`, wenn Sie lrzsz installiert haben), um diese lokal zu empfangen.

Um Dateien zu senden, starten Sie das Programm zum Empfangen auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von `~C sz `Dateien`` (oder `~C lsz `Dateien``), um sie zum entfernten System zu senden.

### Fußnoten

[1] | Mit “Empfangssignalpegel” oder “Trägersignalerkennung” wird hier die carrier detect Leitung bezeichnet.

Zurück | Zum Anfang | Weiter
PPP |  | Verschiedene Fragen

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