Editorial review of first 1/2 of Dial-in Service.
Sponsored by: iXsystems
This commit is contained in:
parent
77e993c3f6
commit
67995497aa
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44789
1 changed files with 111 additions and 216 deletions
|
@ -971,48 +971,51 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
|
|||
</sect1>
|
||||
|
||||
<sect1 xml:id="dialup">
|
||||
<!--
|
||||
<sect1info>
|
||||
<info>
|
||||
<title>Dial-in Service</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Guy</firstname>
|
||||
<personname>
|
||||
<firstname>Guy</firstname>
|
||||
<surname>Helmer</surname>
|
||||
</personname>
|
||||
<contrib>Contributed by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Sean</firstname>
|
||||
<surname>Kelly</surname>
|
||||
</personname>
|
||||
<contrib>Additions by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
-->
|
||||
<title>Dial-in Service</title>
|
||||
</info>
|
||||
|
||||
<indexterm><primary>dial-in service</primary></indexterm>
|
||||
|
||||
<para>Configuring a &os; system for dial-in service is similar
|
||||
to connecting terminals except that modems are used instead of
|
||||
to configuring terminals, except that modems are used instead of
|
||||
terminal devices. &os; supports both external and internal
|
||||
modems.</para>
|
||||
|
||||
<para>External modems are more convenient for dial-up because
|
||||
they often can be semi-permanently configured via parameters
|
||||
stored in non-volatile RAM and they usually provide lighted
|
||||
indicators that display the state of important RS-232 signals,
|
||||
<para>External modems are more convenient because
|
||||
they often can be configured via parameters
|
||||
stored in non-volatile <acronym>RAM</acronym> and they usually provide lighted
|
||||
indicators that display the state of important <acronym>RS-232</acronym> signals,
|
||||
indicating whether the modem is operating properly.</para>
|
||||
|
||||
<para>Internal modems usually lack non-volatile RAM, so their
|
||||
configuration may be limited to setting DIP switches. If the
|
||||
<para>Internal modems usually lack non-volatile <acronym>RAM</acronym>, so their
|
||||
configuration may be limited to setting <acronym>DIP</acronym> switches. If the
|
||||
internal modem has any signal indicator lights, they are
|
||||
difficult to view when the system's cover is in place.</para>
|
||||
|
||||
<indexterm><primary>modem</primary></indexterm>
|
||||
|
||||
<para>When using an external modem, a proper cable is needed. A
|
||||
standard RS-232C serial cable should suffice.</para>
|
||||
standard <acronym>RS-232C</acronym> serial cable should suffice.</para>
|
||||
|
||||
<para>&os; needs the <acronym>RTS</acronym> and
|
||||
<acronym>CTS</acronym> signals for flow control at speeds
|
||||
|
@ -1022,7 +1025,8 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
|
|||
after a session is complete. Some cables are wired without all
|
||||
of the needed signals, so if a login session does not go away
|
||||
when the line hangs up, there may be a problem with the
|
||||
cable.</para>
|
||||
cable. Refer to <xref linkend="term-cables-null"/> for more
|
||||
information about these signals.</para>
|
||||
|
||||
<para>Like other &unix;-like operating systems, &os; uses the
|
||||
hardware signals to find out when a call has been answered or a
|
||||
|
@ -1030,78 +1034,57 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
|
|||
call. &os; avoids sending commands to the modem or watching for
|
||||
status reports from the modem.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Serial Interface Considerations</title>
|
||||
|
||||
<para>&os; supports the NS8250-, NS16450-, NS16550-, and
|
||||
NS16550A-based EIA RS-232C (CCITT V.24) communications
|
||||
<para>&os; supports the <acronym>NS8250</acronym>,
|
||||
<acronym>NS16450</acronym>, <acronym>NS16550</acronym>, and
|
||||
<acronym>NS16550A</acronym>-based <acronym>RS-232C</acronym>
|
||||
(<acronym>CCITT</acronym> V.24) communications
|
||||
interfaces. The 8250 and 16450 devices have single-character
|
||||
buffers. The 16550 device provides a 16-character buffer,
|
||||
which allows for better system performance. Bugs in plain
|
||||
16550's prevent the use of the 16-character buffer, so use
|
||||
16550A's if possible. Because single-character-buffer
|
||||
16550 devices prevent the use of the 16-character buffer, so use
|
||||
16550A devices if possible. Because single-character-buffer
|
||||
devices require more work by the operating system than the
|
||||
16-character-buffer devices, 16550A-based serial interface
|
||||
cards are preferred. If the system has many active serial
|
||||
ports or will have a heavy load, 16550A-based cards are better
|
||||
for low-error-rate communications.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Quick Overview</title>
|
||||
<para>The rest of this section demonstrates how to configure a
|
||||
modem to receive incoming connections, how to communicate
|
||||
with the modem, and offers some troubleshooting tips.</para>
|
||||
|
||||
<sect2 xml:id="dialup-ttys">
|
||||
<title>Modem Configuration</title>
|
||||
|
||||
<indexterm><primary>getty</primary></indexterm>
|
||||
<para>As with terminals, <command>init</command> spawns a
|
||||
<command>getty</command> process for each configured serial
|
||||
port for dial-in connections. For example, if a modem is
|
||||
attached to <filename>/dev/ttyu0</filename>,
|
||||
<command>ps ax</command> might show this:</para>
|
||||
|
||||
<screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyu0</screen>
|
||||
|
||||
<para>When a user dials the modem's line and the modems connect,
|
||||
the Carrier Detect (<acronym>CD</acronym>) line is reported by
|
||||
port used for dial-in connections. When a user dials the
|
||||
modem's line and the modems connect,
|
||||
the <quote>Carrier Detect</quote> signal is reported by
|
||||
the modem. The kernel notices that the carrier has been
|
||||
detected and instructs <command>getty</command> to open the
|
||||
port. <command>getty</command> sends a
|
||||
port and display a
|
||||
<prompt>login:</prompt> prompt at the specified initial line
|
||||
speed. <command>getty</command> watches to see if legitimate
|
||||
characters are received, and, in a typical configuration, if
|
||||
it finds junk (probably due to the modem's connection speed
|
||||
being different than <command>getty</command>'s speed),
|
||||
speed. In a typical configuration, if garbage characters are
|
||||
received, usually due to the modem's connection speed
|
||||
being different than the configured speed,
|
||||
<command>getty</command> tries adjusting the line speeds until
|
||||
it receives reasonable characters.</para>
|
||||
it receives reasonable characters. After the user enters their login name,
|
||||
<command>getty</command> executes
|
||||
<command>login</command>, which completes the login process
|
||||
by asking for the user's password and then starting the user's
|
||||
shell.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>/usr/bin/login</command></primary>
|
||||
</indexterm>
|
||||
<para>After the user enters their login name,
|
||||
<command>getty</command> executes
|
||||
<filename>/usr/bin/login</filename>, which completes the login
|
||||
by asking for the user's password and then starting the user's
|
||||
shell.</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2>
|
||||
<title>Configuration Files</title>
|
||||
|
||||
<para>There are three system configuration files in
|
||||
<filename>/etc</filename> that probably
|
||||
need to be edited to allow dial-up access to the &os; system.
|
||||
<filename>/etc/gettytab</filename> contains configuration
|
||||
information for the <filename>/usr/libexec/getty</filename>
|
||||
daemon. <filename>/etc/ttys</filename> holds information that
|
||||
tells <command>init</command> which
|
||||
<filename>tty</filename>s should have
|
||||
<command>getty</command> processes running on them. Lastly,
|
||||
port initialization commands can be placed in
|
||||
<filename>/etc/rc.d/serial</filename>.</para>
|
||||
|
||||
<para>There are two schools of thought regarding dial-up modems
|
||||
on &unix;. One group likes to configure their modems and
|
||||
<para>There are two schools of thought regarding dial-up modems.
|
||||
One confiuration method is to set the modems and
|
||||
systems so that no matter at what speed a remote user dials
|
||||
in, the local computer-to-modem RS-232 interface runs at a
|
||||
in, the dial-in <acronym>RS-232</acronym>
|
||||
interface runs at a
|
||||
locked speed. The benefit of this configuration is that the
|
||||
remote user always sees a system login prompt immediately.
|
||||
The downside is that the system does not know what a user's
|
||||
|
@ -1110,68 +1093,44 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
|
|||
screen-painting methods to make their response better for
|
||||
slower connections.</para>
|
||||
|
||||
<para>The other group configures their modems' RS-232 interface
|
||||
<para>The second method is to configure the <acronym>RS-232</acronym> interface
|
||||
to vary its speed based on the remote user's connection speed.
|
||||
For example, V.32bis (14.4 Kbps) connections to the modem
|
||||
might make the modem run its RS-232 interface at
|
||||
19.2 Kbps, while 2400 bps connections make the
|
||||
modem's RS-232 interface run at 2400 bps. Because
|
||||
Because
|
||||
<command>getty</command> does not understand any particular
|
||||
modem's connection speed reporting, <command>getty</command>
|
||||
modem's connection speed reporting, it
|
||||
gives a <prompt>login:</prompt> message at an initial speed
|
||||
and watches the characters that come back in response. If the
|
||||
user sees junk, it is assumed that they know they should press
|
||||
user sees junk, they should press
|
||||
<keycap>Enter</keycap> until they see a recognizable prompt.
|
||||
If the data rates do not match, <command>getty</command> sees
|
||||
anything the user types as <quote>junk</quote>, tries going to
|
||||
the next speed and gives the <prompt>login:</prompt> prompt
|
||||
anything the user types as junk, tries
|
||||
the next speed, and gives the <prompt>login:</prompt> prompt
|
||||
again. This procedure normally only takes a keystroke or two
|
||||
before the user sees a good prompt. This login sequence does
|
||||
not look as clean as the <quote>locked-speed</quote> method,
|
||||
not look as clean as the locked-speed method,
|
||||
but a user on a low-speed connection should receive better
|
||||
interactive response from full-screen programs.</para>
|
||||
|
||||
<para>This section will try to give balanced configuration
|
||||
information, but is biased towards having the modem's data
|
||||
rate follow the connection rate.</para>
|
||||
|
||||
<sect3>
|
||||
<title><filename>/etc/gettytab</filename></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><filename>/etc/gettytab</filename></primary>
|
||||
</indexterm>
|
||||
<para><filename>/etc/gettytab</filename> is a
|
||||
&man.termcap.5;-style file of configuration information for
|
||||
&man.getty.8;. Refer to &man.gettytab.5; for complete
|
||||
information on the format of the file and the list of
|
||||
capabilities.</para>
|
||||
|
||||
<para>When locking a modem's data communications rate at a
|
||||
particular speed, no changes to
|
||||
<filename>/etc/gettytab</filename> should be needed.</para>
|
||||
|
||||
<para>However, a change is needed to create a matching-speed
|
||||
configuration. Create an entry in
|
||||
<filename>/etc/gettytab</filename> to give
|
||||
<command>getty</command> information about the speeds to use
|
||||
for the modem. For a 2400 bps modem, use the existing
|
||||
<literal>D2400</literal> entry.</para>
|
||||
|
||||
<programlisting>#
|
||||
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
|
||||
#
|
||||
D2400|d2400|Fast-Dial-2400:\
|
||||
:nx=D1200:tc=2400-baud:
|
||||
3|D1200|Fast-Dial-1200:\
|
||||
:nx=D300:tc=1200-baud:
|
||||
5|D300|Fast-Dial-300:\
|
||||
:nx=D2400:tc=300-baud:</programlisting>
|
||||
|
||||
<para>For a higher speed modem, add an entry in
|
||||
<filename>/etc/gettytab</filename>. This entry is for a
|
||||
<filename>/etc/gettytab</filename> should be needed.
|
||||
However, for a matching-speed
|
||||
configuration, additional entries may be required in
|
||||
order to define the speeds to use
|
||||
for the modem. This example configures a
|
||||
14.4 Kbps modem with a top interface speed of
|
||||
19.2 Kbps:</para>
|
||||
19.2 Kbps using 8-bit, no parity connections. It
|
||||
configures <command>getty</command> to start the
|
||||
communications rate for a V.32bis connection at
|
||||
19.2 Kbps, then cycles
|
||||
through 9600 bps, 2400 bps,
|
||||
1200 bps, 300 bps, and back to 19.2 Kbps.
|
||||
Communications rate cycling is implemented with the
|
||||
<literal>nx=</literal> (next table)
|
||||
capability. Each line uses a
|
||||
<literal>tc=</literal> (table continuation)
|
||||
entry to pick up the rest of the
|
||||
settings for a particular data rate.</para>
|
||||
|
||||
<programlisting>#
|
||||
# Additions for a V.32bis Modem
|
||||
|
@ -1187,24 +1146,9 @@ up|V9600|High Speed Modem at 9600,8-bit:\
|
|||
uq|V19200|High Speed Modem at 19200,8-bit:\
|
||||
:nx=V9600:tc=std.19200:</programlisting>
|
||||
|
||||
<para>This will result in 8-bit, no parity connections.</para>
|
||||
|
||||
<para>The example above starts the communications rate at
|
||||
19.2 Kbps (for a V.32bis connection), then cycles
|
||||
through 9600 bps (for V.32), 2400 bps,
|
||||
1200 bps, 300 bps, and back to 19.2 Kbps.
|
||||
Communications rate cycling is implemented with the
|
||||
<literal>nx=</literal> (<quote>next table</quote>)
|
||||
capability. Each of the lines uses a
|
||||
<literal>tc=</literal> (<quote>table continuation</quote>)
|
||||
entry to pick up the rest of the <quote>standard</quote>
|
||||
settings for a particular data rate.</para>
|
||||
|
||||
<para>For a 28.8 Kbps modem or to take advantage of
|
||||
<para>For a 28.8 Kbps modem, or to take advantage of
|
||||
compression on a 14.4 Kbps modem, use a higher
|
||||
communications rate than 19.2 Kbps. Here is an
|
||||
example of a <filename>gettytab</filename> entry starting
|
||||
a 57.6 Kbps:</para>
|
||||
communications rate, as seen in this example:</para>
|
||||
|
||||
<programlisting>#
|
||||
# Additions for a V.32bis or V.34 Modem
|
||||
|
@ -1221,116 +1165,71 @@ vp|VH9600|Very High Speed Modem at 9600,8-bit:\
|
|||
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
|
||||
:nx=VH9600:tc=std.57600:</programlisting>
|
||||
|
||||
<para>For a slow CPU or a heavily loaded system without
|
||||
16550A-based serial ports, there may be
|
||||
<para>For a slow <acronym>CPU</acronym> or a heavily loaded system without
|
||||
16550A-based serial ports, this configuration may produce
|
||||
<errorname>sio</errorname>
|
||||
<quote>silo</quote> errors at 57.6 Kbps.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="dialup-ttys">
|
||||
<title><filename>/etc/ttys</filename></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><filename>/etc/ttys</filename></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Configuration of <filename>/etc/ttys</filename>
|
||||
is covered in <xref linkend="ex-etc-ttys"/>.
|
||||
Configuration for modems is similar, but a different
|
||||
argument is passed to <command>getty</command> and a
|
||||
different terminal type is specified. The general format
|
||||
for both locked-speed and matching-speed configurations
|
||||
is:</para>
|
||||
<para>The configuration of <filename>/etc/ttys</filename>
|
||||
is similar to <xref linkend="ex-etc-ttys"/>,
|
||||
but a different
|
||||
argument is passed to <command>getty</command> and
|
||||
<literal>dialup</literal> is used for the terminal type.
|
||||
Replace
|
||||
<replaceable>xxx</replaceable> with the process
|
||||
<command>init</command> will run on the device:</para>
|
||||
|
||||
<programlisting>ttyu0 "/usr/libexec/getty <replaceable>xxx</replaceable>" dialup on</programlisting>
|
||||
|
||||
<para>The first item in the above line is the device special
|
||||
file for this entry. <literal>ttyu0</literal> indicates
|
||||
that <command>getty</command> is watching
|
||||
<filename>/dev/ttyu0</filename>. The
|
||||
<replaceable>xxx</replaceable> will replace the initial
|
||||
<filename>gettytab</filename> capability and is the process
|
||||
<command>init</command> will run on the device. The third
|
||||
item, <literal>dialup</literal>, is the default terminal
|
||||
type. The fourth parameter, <literal>on</literal>,
|
||||
indicates to <command>init</command> that the line is
|
||||
operational. There can be a fifth parameter,
|
||||
<literal>secure</literal>, but it should only be used for
|
||||
terminals which are physically secure, such as the system
|
||||
console.</para>
|
||||
|
||||
<para>The default terminal type, <literal>dialup</literal> in
|
||||
this example, may depend on local preferences.
|
||||
<literal>dialup</literal> is the traditional default
|
||||
terminal type on dial-up lines so that users may customize
|
||||
their login scripts to notice when the terminal is
|
||||
<literal>dialup</literal> and automatically adjust their
|
||||
terminal type. Setting <literal>vt102</literal> as the
|
||||
default terminal type allows users to use VT102 emulation on
|
||||
<para>The <literal>dialup</literal> terminal type can be
|
||||
changed. For example, setting <literal>vt102</literal> as the
|
||||
default terminal type allows users to use <acronym>VT102</acronym> emulation on
|
||||
their remote systems.</para>
|
||||
|
||||
<para>After editing <filename>/etc/ttys</filename>, send the
|
||||
<command>init</command> process a <acronym>HUP</acronym>
|
||||
signal to re-read the file:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
||||
|
||||
<para>Wait until the modem is properly configured and
|
||||
connected before signaling <command>init</command>.</para>
|
||||
|
||||
<para>For a locked-speed configuration, the
|
||||
<filename>ttys</filename> entry needs to have a
|
||||
fixed-speed entry provided to <command>getty</command>.
|
||||
For a modem whose port speed is locked at 19.2 Kbps,
|
||||
the <filename>ttys</filename> entry might look like
|
||||
this:</para>
|
||||
|
||||
<programlisting>ttyu0 "/usr/libexec/getty std.19200" dialup on</programlisting>
|
||||
|
||||
<para>If the modem is locked at a different data rate,
|
||||
substitute the appropriate value for
|
||||
<literal>std.<replaceable>speed</replaceable></literal>
|
||||
instead of <literal>std.19200</literal>. Make sure to use
|
||||
<para>For a locked-speed configuration, specify the speed with
|
||||
a valid type listed in
|
||||
<filename>/etc/gettytab</filename>.</para>
|
||||
<filename>/etc/gettytab</filename>.
|
||||
This example is for a modem whose port speed is locked at
|
||||
19.2 Kbps:</para>
|
||||
|
||||
<programlisting>ttyu0 "/usr/libexec/getty std.<replaceable>19200</replaceable>" dialup on</programlisting>
|
||||
|
||||
<para>In a matching-speed configuration, the
|
||||
<filename>ttys</filename> entry needs to reference the
|
||||
entry needs to reference the
|
||||
appropriate beginning <quote>auto-baud</quote> entry in
|
||||
<filename>/etc/gettytab</filename>. For example, for the
|
||||
above suggested entry for a matching-speed modem that
|
||||
starts at 19.2 Kbps, the
|
||||
<filename>/etc/ttys</filename> entry might look like
|
||||
this:</para>
|
||||
<filename>/etc/gettytab</filename>. To continue the example
|
||||
for a matching-speed modem that
|
||||
starts at 19.2 Kbps, use this entry:</para>
|
||||
|
||||
<programlisting>ttyu0 "/usr/libexec/getty V19200" dialup on</programlisting>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title><filename>/etc/rc.d/serial</filename></title>
|
||||
<para>After editing <filename>/etc/ttys</filename>, wait until
|
||||
the modem is properly configured and
|
||||
connected before signaling <command>init</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
||||
|
||||
<indexterm>
|
||||
<primary>rc files</primary>
|
||||
<secondary><filename>rc.serial</filename></secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>High-speed modems, like V.32, V.32bis, and V.34 modems,
|
||||
need to use hardware (<literal>RTS/CTS</literal>) flow
|
||||
control. <command>stty</command> can be used to set the
|
||||
hardware flow control flag in the &os; kernel for the modem
|
||||
ports.</para>
|
||||
|
||||
<para>For example, to set the <literal>termios</literal> flag
|
||||
<varname>crtscts</varname> on
|
||||
<para>High-speed modems, like <acronym>V.32</acronym>,
|
||||
<acronym>V.32bis</acronym>, and <acronym>V.34</acronym> modems,
|
||||
use hardware (<literal>RTS/CTS</literal>) flow
|
||||
control. Use <command>stty</command> to set the
|
||||
hardware flow control flag for the modem
|
||||
port. This example sets the
|
||||
<varname>crtscts</varname> flag on
|
||||
<filename>COM2</filename>'s dial-in and dial-out
|
||||
initialization devices, the following lines could be added
|
||||
to <filename>/etc/rc.d/serial</filename>:</para>
|
||||
initialization devices:</para>
|
||||
|
||||
<programlisting># Serial port initial configuration
|
||||
stty -f /dev/ttyu1.init crtscts
|
||||
stty -f /dev/cuau1.init crtscts</programlisting>
|
||||
|
||||
</sect3>
|
||||
<screen>&prompt.root; <userinput>stty -f /dev/ttyu1.init crtscts</userinput>
|
||||
&prompt.root; <userinput>stty -f /dev/cuau1.init crtscts</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -1462,9 +1361,6 @@ AT&B1&W</programlisting>
|
|||
<programlisting>ATZ
|
||||
AT&B2&W</programlisting>
|
||||
|
||||
<sect3>
|
||||
<title>Checking the Modem's Configuration</title>
|
||||
|
||||
<para>Most high-speed modems provide commands to view the
|
||||
modem's current operating parameters in a somewhat
|
||||
human-readable fashion. On the &usrobotics; &sportster;
|
||||
|
@ -1477,7 +1373,6 @@ AT&B2&W</programlisting>
|
|||
<para>For a different brand of modem, check the modem's manual
|
||||
to see how to double-check the modem's configuration
|
||||
parameters.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
|
Loading…
Reference in a new issue