Mit FreeBSD 8.0 wurden die Gerätedateien für
serielle Ports von
/dev/ttyd
in
N
/dev/ttyu
umbenannt. Setzen Sie noch FreeBSD 7.X ein, müssen
Sie die Befehle in den folgenden Abschnitten entsprechend
anpassen.N
Das Einrichten von Einwählverbindungen ähnelt dem Anschließen von Terminals, nur dass Sie anstelle eines Terminals ein Modem verwenden.
Externe Modems sind für Einwählverbindungen besser geeignet, da sie die Konfiguration in nicht flüchtigem RAM speichern können. Zudem verfügen Sie über Leuchtanzeigen, die den Status wichtiger RS-232 Signale anzeigen und unter Umständen Besucher beeindrucken können.
Interne Modems verfügen normalerweise nicht über nicht flüchtiges RAM und lassen sich meist nur über DIP-Schalter konfigurieren. Selbst wenn ein internes Modem Leuchtanzeigen besitzt, sind diese meist schwer einzusehen, wenn das Modem eingebaut ist.
Mit einem externen Modem müssen Sie das richtige Kabel benutzen: Ein Standard RS-232C Kabel, bei dem die folgenden Signale miteinander verbunden sind, sollte ausreichen:
Abkürzung | Bedeutung |
---|---|
RD | Received Data |
TD | Transmitted Data |
DTR | Data Terminal Ready |
DSR | Data Set Ready |
DCD | Data Carrier Detect (dadurch erkennt RS-232 das Signal Received Line) |
SG | Signal Ground |
RTS | Request to Send |
CTS | Clear to Send |
Ab Geschwindigkeiten von 2400 bps benötigt FreeBSD die Signale RTS und CTS für die Flusssteuerung. Das Signal CD zeigt an, ob ein Träger vorliegt, das heißt ob die Verbindung aufgebaut ist oder beendet wurde. DTR zeigt an, dass das Gerät betriebsbereit ist. Es gibt einige Kabel, bei denen nicht alle nötigen Signale verbunden sind. Wenn Sie Probleme der Art haben, dass zum Beispiel die Sitzung nicht beendet wird, obwohl die Verbindung beendet wurde, kann das an einem solchen Kabel liegen.
Wie andere UNIX® Betriebssysteme auch, benutzt FreeBSD Hardwaresignale, um festzustellen, ob ein Anruf beantwortet wurde, eine Verbindung beendet wurde, oder um die Verbindung zu schließen und das Modem zurückzusetzen. FreeBSD vermeidet es, dem Modem Kommandos zu senden, oder den Statusreport des Modems abzufragen. Falls Sie ein Benutzer von PC-basierenden Bulletin Board Systemen sind, mag Sie das verwundern.
FreeBSD unterstützt EIA RS-232C (CCITT V.24) serielle Schnittstellen, die auf den NS8250, NS16450, NS16550 oder NS16550A Bausteinen basieren. Die Bausteine der Serie 16550 verfügen über einen 16 Byte großen Puffer, der als FIFO angelegt ist. Wegen Fehler in der FIFO-Logik kann der Puffer in einem 16550 Baustein allerdings nicht genutzt werden, das heißt der Baustein muss als 16450 betrieben werden. Bei allen Bausteinen ohne Puffer und dem 16550 Baustein muss jedes Byte einzeln von dem Betriebssystem verarbeitet werden, was Fehler bei hohen Geschwindigkeiten oder großer Systemlast erzeugt. Es sollten daher nach Möglichkeit serielle Schnittstellen, die auf 16550A Bausteinen basieren, eingesetzt werden.
Wie bei Terminals auch, startet init
für
jede serielle Schnittstelle, die eine Einwählverbindung zur
Verfügung stellt, einen getty
Prozess.
Wenn das Modem beispielsweise an /dev/ttyu0
angeschlossen ist, sollte in der Ausgabe von ps
ax
eine Zeile wie die folgende erscheinen:
Wenn sich ein Benutzer einwählt und die Verbindung
aufgebaut ist, zeigt das Modem dies durch das CD
Signal (Carrier Detect) an. Der Kernel merkt, dass ein Signal
anliegt und vollendet das Öffnen der Schnittstelle durch
getty
. Dann sendet getty
das
Anmeldeprompt mit der ersten für die Verbindung vereinbarten
Geschwindigkeit und wartet auf eine Antwort. Wenn die Antwort
unverständlich ist, weil zum Beispiel die Geschwindigkeit des
Modems von getty
s Geschwindigkeit abweicht,
versucht getty
die Geschwindigkeit solange
anzupassen, bis es eine verständliche Antwort
erhält.
getty
führt, nachdem der Benutzer seinen
Namen eingegeben hat, /usr/bin/login
aus,
welches das Passwort abfragt und danach die Shell des
Benutzers startet.
Drei Konfigurationsdateien in /etc
steuern, ob eine Einwahl in Ihr FreeBSD-System möglich ist.
Die erste, /etc/gettytab
, konfiguriert den
/usr/libexec/getty
Dæmon. In
/etc/ttys
wird festgelegt, auf welchen
Schnittstellen /sbin/init
einen
getty
Prozess startet. Schließlich
haben Sie in /etc/rc.d/serial
die
Möglichkeit, Schnittstellen zu initialisieren.
Es gibt zwei Ansichten darüber, wie Modems für Einwählverbindungen unter UNIX® zu konfigurieren sind. Zum einen kann die Geschwindigkeit zwischen dem Modem und dem Computer fest eingestellt werden. Sie ist damit unabhängig von der Geschwindigkeit, mit der sich der entfernte Benutzer einwählt. Dies hat den Vorteil, dass der entfernte Benutzer das Anmeldeprompt sofort bekommt. Der Nachteil bei diesem Verfahren ist, dass das System die tatsächliche Geschwindigkeit der Verbindung nicht kennt. Damit können bildschirmorientierte Programme wie Emacs ihren Bildschirmaufbau nicht an langsame Verbindungen anpassen, um die Antwortzeiten zu verbessern.
Die andere Möglichkeit besteht darin, die Geschwindigkeit
der RS-232 Schnittstelle des lokalen Modems an die Geschwindigkeit
des entfernten Modems anzupassen. Bei einer V.32bis (14400 bps)
Verbindung kann das lokale Modem die RS-232 Schnittstelle mit
19200 bps betreiben, während bei einer Verbindung mit
2400 bps die RS-232 Schnittstelle mit 2400 bps
betrieben wird. Da getty
die
Verbindungsgeschwindigkeit des Modems nicht kennt, startet es
den Anmeldevorgang mit der Ausgabe
von login:
und wartet auf eine Antwort. Wenn der
Benutzer der Gegenstelle nun nur unverständliche Zeichen
erhält, muss er solange Enter
drücken, bis das Anmeldeprompt erscheint. Solange die
Geschwindigkeiten nicht übereinstimmen, sind die Antworten der
Gegenstelle für getty
ebenfalls
unverständlich. In diesem Fall wechselt
getty
zur nächsten Geschwindigkeit und gibt
wieder login:
aus. In aller Regel erhält der
Benutzer der Gegenstelle nach ein bis zwei Tastendrücken
eine erkennbare Anmeldeaufforderung. Diese Anmeldeprozedur sieht
nicht so sauber wie die Methode mit einer festen Geschwindigkeit
aus, bietet dem Benutzer einer langsamen Verbindung allerdings den
Vorteil, dass sich bildschirmorientierte Programme an die
Geschwindigkeit anpassen können.
Im Folgenden wird die Konfiguration für beide Methoden besprochen, doch die Methode der angepassten Geschwindigkeit wird bei der Diskussion bevorzugt.
Mit /etc/gettytab
wird getty(8) im
Stil von termcap(5) konfiguriert. Das Format dieser Datei und
die Bedeutung der Einträge wird in gettytab(5)
beschrieben.
Wenn Sie die Modemgeschwindigkeit vorgeben, werden Sie in
/etc/gettytab
nichts ändern
müssen.
In /etc/gettytab
müssen
Einträge für die Geschwindigkeiten, die Sie benutzen
wollen, sein. Wenn Sie ein 2400 bps Modem besitzen,
können Sie wahrscheinlich den schon vorhandenen
D2400
Eintrag benutzen.
Wenn Sie ein Modem mit einer höheren Geschwindigkeit
besitzen, müssen Sie wahrscheinlich in
/etc/gettytab
weitere Einträge
erstellen. Hier ist ein Beispiel, das Sie mit einem 14400 bps
Modem benutzen können:
Die damit erzeugten Verbindungen verwenden 8 Bit und keine Parität.
Im obigen Beispiel startet die Geschwindigkeit bei
19200 bps (eine V.32bis Verbindung) und geht dann
über 9600 bps (V.32), 400 bps, 1200 bps
und 300 bps wieder zurück zu 19200 bps.
Das Schlüsselwort nx=
(next table) sorgt für
das zyklische Durchlaufen der Geschwindigkeiten. Jede Zeile
zieht zudem noch mit tc=
(table continuation)
die Vorgabewerte für die jeweilige Geschwindigkeit an.
Wenn Sie ein 28800 bps Modem besitzen und/oder Kompression mit einem 14400 bps Modem benutzen wollen, brauchen Sie höhere Geschwindigkeiten als 19200 bps. Das folgende Beispiel startet mit 57600 bps:
Wenn Sie eine langsame CPU oder ein stark ausgelastetes System besitzen und sich kein 16550A in Ihrem System befindet, erhalten Sie bei 57600 bps vielleicht sio Fehlermeldungen der Form „silo overflow“.
/etc/ttys
wurde bereits in Beispiel 27.1, „Einträge in /etc/ttys
hinzufügen“ besprochen. Die Konfiguration für
Modems ist ähnlich, allerdings braucht
getty
ein anderes Argument und es muss
ein anderer Terminaltyp angegeben werden. Der Eintrag für
beide Methoden (feste und angepasste Geschwindigkeit) hat die
folgende Form:
xxx
" dialup onDas erste Feld der obigen Zeile gibt die Gerätedatei
für diesen Eintrag an – ttyu0
bedeutet, dass getty
mit
/dev/ttyu0
arbeitet. Das zweite Feld
"/usr/libexec/getty
gibt das Kommando an, das xxx
"init
für dieses
Gerät startet (xxx
wird durch
einen passenden Eintrag aus /etc/gettytab
ersetzt). Die Vorgabe für den Terminaltyp, hier
dialup
, wird im dritten Feld angegeben. Das
vierte Feld, on
, zeigt
init
an, dass die Schnittstelle aktiviert
ist. Im fünften Feld könnte noch
secure
angegeben werden, um Anmeldungen von
root
zu erlauben, doch sollte das wirklich
nur für physikalisch sichere Terminals, wie die
Systemkonsole, aktiviert werden.
Die Vorgabe für den Terminaltyp,
dialup
im obigen Beispiel, hängt von lokalen
Gegebenheiten ab. Traditionell wird dialup
für Einwählverbindungen verwendet, so dass die
Benutzer in ihren Anmeldeskripten den Terminaltyp auf ihren
Terminal abstimmen können, wenn der Typ auf
dialup
gesetzt ist. Wenn Sie aber
beispielsweise nur VT102 Terminals oder Emulatoren einsetzen,
können Sie den Terminaltyp hier auch fest auf
vt102
setzen.
Nachdem Sie /etc/ttys
geändert
haben, müssen Sie init
ein
HUP Signal schicken, damit es die Datei wieder
einliest. Sie können dazu das folgende Kommando
verwenden:
#
kill -HUP 1
Wenn Sie das System zum ersten Mal konfigurieren, sollten Sie dieses Kommando erst ausführen, wenn Sie Ihr Modem richtig konfiguriert und angeschlossen haben.
Das Argument von getty
muss in
diesem Fall eine feste Geschwindigkeit vorgeben. Der Eintrag
für ein Modem, das fest auf 19200 bps eingestellt ist,
könnte wie folgt aussehen:
Wenn Ihr Modem auf eine andere Geschwindigkeit eingestellt
ist, setzen Sie anstelle von std.19200
einen
passenden Eintrag der Form
std.
ein.
Stellen Sie sicher, dass dies auch ein gültiger
Verbindungstyp aus speed
/etc/gettytab
ist.
Das Argument von getty
muss hier auf
einen der Einträge aus /etc/gettytab
zeigen, der zu einer Kette von Einträgen gehört, die
die zu probierenden Geschwindigkeiten beschreiben. Wenn Sie
dem obigen Beispiel gefolgt sind und zusätzliche
Einträge in /etc/gettytab
erzeugt
haben, können Sie die folgende Zeile verwenden:
Modems, die höhere Geschwindigkeiten unterstützen,
zum Beispiel V.32, V.32bis und V.34 Modems, benutzen
Hardware-Flusssteuerung (RTS/CTS
). Für
die entsprechenden Schnittstellen können Sie die
Flusssteuerung mit stty
in
/etc/rc.d/serial
einstellen.
Um beispielsweise die Hardware-Flusssteuerung
für die Geräte zur Ein- und Auswahl der zweiten
seriellen Schnittstelle (COM2
)
zu aktivieren, benutzen Sie die Dateien zur Initialisierung der
entsprechenden Geräte und fügen die folgenden Zeilen in
/etc/rc.d/serial
hinzu:
Wenn Sie ein Modem besitzen, das seine Konfiguration in nicht
flüchtigem RAM speichert, werden Sie ein Terminalprogramm wie
Telix unter MS-DOS® oder
tip
unter FreeBSD benötigen, um die Parameter
einzustellen. Verbinden Sie sich mit derselben Geschwindigkeit, die
getty
zuerst benutzen würde, mit dem Modem und
treffen Sie folgende Einstellungen:
DCD ist eingeschaltet, wenn das Trägersignal des entfernten Modems erkannt wird.
Im Betrieb liegt DTR an. Bei einem Verlust von DTR legt das Modem auf und setzt sich zurück.
CTS Flusssteuerung ist für ausgehende Daten aktiviert.
XON/XOFF Flusssteuerung ist ausgeschaltet.
RTS Flusssteuerung ist für eingehende Daten aktiviert.
Keine Rückmeldungen ausgeben.
Die Echo-Funktion ist deaktiviert.
In der Dokumentation Ihres Modems finden Sie die nötigen Befehle, die Sie absetzen müssen, und/oder nötigen DIP-Schalterstellungen, um die obigen Einstellungen zu treffen.
Für ein externes 14400 U.S. Robotics® Sportster® gelten zum Beispiel die folgenden Befehle:
Bei dieser Gelegenheit können Sie auch gleich andere Einstellungen, zum Beispiel ob Sie V42.bis und/oder MNP5 Kompression benutzen wollen, an Ihrem Modem vornehmen.
Bei einem externen 14400 U.S. Robotics® Sportster® müssen Sie auch noch einige DIP-Schalter einstellen. Die folgenden Einstellungen können Sie vielleicht als Beispiel für andere Modems verwenden:
Schalter 1: OBEN – DTR normal
Schalter 2: N/A (Rückmeldungen als Text/numerische Rückmeldungen)
Schalter 3: OBEN – Keine Rückmeldungen ausgeben
Schalter 4: UNTEN – Echo-Funktion aus
Schalter 5: OBEN – Rufannahme aktiviert
Schalter 6: OBEN – Carrier Detect normal
Schalter 7: OBEN – Einstellungen aus dem NVRAM laden
Schalter 8: N/A (Smart Mode/Dumb Mode)
Für Einwählverbindungen sollten die
Rückmeldungen deaktiviert sein, da sonst
getty
dem Modem das Anmeldeprompt
login:
schickt und das Modem im Kommandomodus das
Prompt wieder ausgibt (Echo-Funktion) oder eine Rückmeldung gibt.
Das führt dann zu einer länglichen und fruchtlosen
Kommunikation zwischen dem Modem und
getty
.
Die Geschwindigkeit zwischen Modem und Computer muss auf einen festen Wert eingestellt werden. Mit einem externen 14400 U.S. Robotics® Sportster® Modem setzen die folgenden Kommandos die Geschwindigkeit auf den Wert der Datenendeinrichtung fest:
In diesem Fall muss die Geschwindigkeit der seriellen Schnittstelle des Modems der eingehenden Geschwindigkeit angepasst werden. Für ein externes 14400 U.S. Robotics® Sportster® Modem erlauben die folgenden Befehle eine Anpassung der Geschwindigkeit der seriellen Schnittstelle für Verbindungen, die keine Fehlerkorrektur verwenden:
Verbindungen mit Fehlerkorrektur (V.42, MNP) verwenden die Geschwindigkeit der Datenendeinrichtung.
Die meisten Modems verfügen über Kommandos, die die
Konfiguration des Modems in lesbarer Form ausgeben. Auf einem
externen 14400 U.S. Robotics® Sportster® zeigt
ATI5
die Einstellungen im nicht
flüchtigen RAM an. Um die wirklichen
Einstellungen unter Berücksichtigung der DIP-Schalter zu
sehen, benutzen Sie ATZ
gefolgt von
ATI4
.
Wenn Sie ein anderes Modem benutzen, schauen Sie bitte in der Dokumentation Ihres Modems nach, wie Sie die Konfiguration des Modems überprüfen können.
Bei Problemen können Sie die Einwählverbindung anhand der folgenden Punkte überprüfen:
Schließen Sie das Modem an das FreeBSD-System an und
booten Sie das System. Wenn Ihr Modem über
Statusindikatoren verfügt, überprüfen Sie, ob der
DTR Indikator leuchtet, wenn das Anmeldeprompt
erscheint. Dies zeigt an, dass das FreeBSD-System einen
getty
Prozess auf der entsprechenden
Schnittstelle gestartet hat und das Modem auf einkommende
Verbindungen wartet.
Wenn der DTR-Indikator nicht leuchtet,
melden Sie sich an dem FreeBSD-System an und überprüfen mit
ps ax
, ob FreeBSD einen
getty
-Prozess auf der entsprechenden
Schnittstelle gestartet hat. Unter den angezeigten Prozessen
sollten Sie ähnliche wie die folgenden finden:
Wenn das Modem noch keinen Anruf entgegengenommen hat und Sie stattdessen die folgende Zeile sehen
bedeutet dies, dass getty
die
Schnittstelle schon geöffnet hat und zeigt Kabelprobleme
oder eine falsche Modemkonfiguration an, da
getty
die Schnittstelle erst dann öffnen
kann, wenn das CD Signal (Carrier Detect) vom
Modem anliegt.
Wenn Sie keine getty
-Prozesse auf den
gewünschten ttyu
Ports finden, untersuchen Sie bitte N
/etc/ttys
auf Fehler. Suchen Sie auch in /var/log/messages
nach Meldungen von init
oder
getty
. Wenn Sie dort Meldungen finden,
sollten Sie noch einmal die beiden Konfigurationsdateien
/etc/ttys
und /etc/gettytab
nach Fehlern durchsehen. Überprüfen Sie auch, ob die
Gerätedateien
/dev/ttyu
vorhanden sind.N
Versuchen Sie, sich in Ihr System einzuwählen. Auf dem
entfernten System stellen Sie bitte die folgenden
Kommunikationsparameter ein: 8 Bit, keine Parität, ein
Stop-Bit. Wenn Sie kein Anmeldeprompt erhalten oder nur
unleserliche Zeichen sehen, drücken Sie mehrmals, in
Abständen von ungefähr einer Sekunde,
Enter. Wenn Sie immer noch nicht die
login:
Meldung sehen, schicken Sie ein
BREAK
Kommando. Wenn Sie zur Einwahl ein
Highspeed-Modem benutzen, verwenden Sie eine feste
Geschwindigkeit auf der seriellen Schnittstelle des Modems
(AT&B1
für ein
U.S. Robotics® Sportster®).
Wenn Sie jetzt immer noch kein Anmeldeprompt erhalten,
überprüfen Sie nochmals /etc/gettytab
und stellen sicher, dass
der Verbindungstyp in /etc/ttys
zu
einem gültigen Eintrag in /etc/gettytab
gehört,
jeder der nx=
Einträge in
gettytab
gültig ist und
jeder tc=
Eintrag auf einen
gültigen Eintrag in gettytab
verweist.
Wenn das Modem an Ihrem FreeBSD-System auf einen eingehenden Anruf nicht antwortet, stellen Sie sicher, dass das Modem so konfiguriert ist, dass es einen Anruf beantwortet, wenn DTR anliegt. Wenn Ihr Modem Statusindikatoren besitzt, können Sie das Anliegen von DTR anhand der Leuchten überprüfen.
Wenn Sie alles schon mehrfach überprüft haben und
es immer noch noch nicht funktioniert, machen Sie erst einmal
eine Pause, bevor Sie weitermachen. Wenn es immer noch nicht
funktioniert, können Sie eine Mail an die Mailingliste
'Fragen und Antworten zu FreeBSD'
<de-bsd-questions@de.FreeBSD.org>
schicken, in der Sie Ihr Modem und Ihr Problem
beschreiben und Ihnen sollte geholfen werden.
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>.