aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
diff options
context:
space:
mode:
authorDru Lavigne <dru@FreeBSD.org>2013-02-27 20:38:17 +0000
committerDru Lavigne <dru@FreeBSD.org>2013-02-27 20:38:17 +0000
commit21bfcedf4e29a47968afd9beafb40e22fba47247 (patch)
treedc79a030a2c2b9fc27ca37696e900cc2eb764bfe /en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
parente4dfe979c4edfb556b845f3693b061be61be4f30 (diff)
downloaddoc-21bfcedf4e29a47968afd9beafb40e22fba47247.tar.gz
doc-21bfcedf4e29a47968afd9beafb40e22fba47247.zip
First pass at this chapter. This patch addresses the following:
- &os;, you, and please - fix xref, acronym, and directory tags (still needs ulink review) - removed redundant warning, leaving only first instance; this warning can be removed altogether once 7.x is EOL at end of month Approved by: bcr (mentor)
Notes
Notes: svn path=/head/; revision=41052
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml')
-rw-r--r--en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml1904
1 files changed, 872 insertions, 1032 deletions
diff --git a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml b/en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
index 0bba8ba883..bb1fb3f636 100644
--- a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
@@ -13,31 +13,28 @@
<indexterm><primary>serial communications</primary></indexterm>
- <para>&unix; has always had support for serial communications. In
- fact, the very first &unix; machines relied on serial lines for
- user input and output. Things have changed a lot from the days
- when the average <quote>terminal</quote> consisted of a
- 10-character-per-second serial printer and a keyboard. This
- chapter will cover some of the ways in which FreeBSD uses serial
- communications.</para>
+ <para>&unix; has always had support for serial communications as
+ the very first &unix; machines relied on serial lines for user
+ input and output. Things have changed a lot from the days
+ when the average terminal consisted of a 10-character-per-second
+ serial printer and a keyboard. This chapter covers some of the
+ ways serial communications can be used on &os;.</para>
<para>After reading this chapter, you will know:</para>
<itemizedlist>
<listitem>
- <para>How to connect terminals to your FreeBSD
- system.</para>
+ <para>How to connect terminals to a &os; system.</para>
</listitem>
<listitem>
- <para>How to use a modem to dial out to remote
- hosts.</para>
+ <para>How to use a modem to dial out to remote hosts.</para>
</listitem>
<listitem>
- <para>How to allow remote users to login to your
- system with a modem.</para>
+ <para>How to allow remote users to login to a &os; system
+ with a modem.</para>
</listitem>
<listitem>
- <para>How to boot your system from a serial console.</para>
+ <para>How to boot a &os; system from a serial console.</para>
</listitem>
</itemizedlist>
@@ -45,17 +42,16 @@
<itemizedlist>
<listitem>
- <para>Know how to configure and install a new kernel (<xref
- linkend="kernelconfig"/>).</para>
+ <para>Know how to <link linkend="kernelconfig"> configure and
+ install a custom kernel</link>.</para>
</listitem>
<listitem>
- <para>Understand &unix; permissions and processes (<xref
- linkend="basics"/>).</para>
+ <para>Understand <link linkend="basics"> &os; permissions
+ and processes</link>.</para>
</listitem>
<listitem>
<para>Have access to the technical manual for the serial
- hardware (modem or multi-port card) that you would like to
- use with FreeBSD.</para>
+ hardware to be used with &os;.</para>
</listitem>
</itemizedlist>
</sect1>
@@ -82,30 +78,30 @@
<variablelist>
<indexterm><primary>bits-per-second</primary></indexterm>
<varlistentry>
- <term>bps</term>
+ <term><acronym>bps</acronym></term>
<listitem>
- <para>Bits per Second &mdash; the rate at which data is
- transmitted</para>
+ <para>Bits per Second (<acronym>bps</acronym>) is the rate
+ at which data is transmitted.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>DTE</term>
+ <term><acronym>DTE</acronym></term>
<listitem>
<indexterm><primary>DTE</primary></indexterm>
- <para>Data Terminal Equipment &mdash; for example, your
- computer</para>
+ <para>An example of a Data Terminal Equipment
+ (<acronym>DTE</acronym>) is a computer.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>DCE</term>
+ <term><acronym>DCE</acronym></term>
<listitem>
<indexterm><primary>DCE</primary></indexterm>
- <para>Data Communications Equipment &mdash; your
- modem</para>
+ <para>An example of a Data Communications Equipment
+ (<acronym>DTE</acronym>) is a modem.</para>
</listitem>
</varlistentry>
@@ -115,8 +111,9 @@
<listitem>
<indexterm><primary>RS-232C cables</primary></indexterm>
- <para>EIA standard for hardware serial
- communications</para>
+ <para>The original standard for hardware serial
+ communications. It is now usually referred to as
+ <acronym>TIA</acronym>-232</para>
</listitem>
</varlistentry>
</variablelist>
@@ -124,28 +121,26 @@
<para>When talking about communications data rates, this section
does not use the term <quote>baud</quote>. Baud refers to the
number of electrical state transitions that may be made in a
- period of time, while <quote>bps</quote> (bits per second) is
- the <emphasis>correct</emphasis> term to use (at least it does
- not seem to bother the curmudgeons quite as much).</para>
+ period of time, while <acronym>bps</acronym> is the
+ <emphasis>correct</emphasis> term to use.</para>
</sect2>
<sect2 id="serial-cables-ports">
<title>Cables and Ports</title>
- <para>To connect a modem or terminal to your FreeBSD system, you
- will need a serial port on your computer and the proper cable
- to connect to your serial device. If you are already familiar
- with your hardware and the cable it requires, you can safely
- skip this section.</para>
+ <para>To connect a modem or serial terminal to a &os; system, a
+ serial port on the computer and the proper cable to connect to
+ the serial device are needed. Users who are already familiar
+ with serial hardware and cabling can safely skip this
+ section.</para>
<sect3 id="term-cables">
<title>Cables</title>
<para>There are several different kinds of serial cables. The
- two most common types for our purposes are null-modem cables
- and standard (<quote>straight</quote>) RS-232 cables. The
- documentation for your hardware should describe the type of
- cable required.</para>
+ two most common types are null-modem cables and standard
+ RS-232 cables. The documentation for the hardware should
+ describe the type of cable required.</para>
<sect4 id="term-cables-null">
<title>Null-modem Cables</title>
@@ -160,16 +155,15 @@
<quote>Transmitted Data</quote> pin on one end goes to the
<quote>Received Data</quote> pin on the other end.</para>
- <para>You can also construct your own null-modem cable for
- use with terminals (e.g., for quality purposes). This
- table shows the RS-232C <link
- linkend="serialcomms-signal-names">signals</link>
- and the pin numbers on a DB-25 connector. Note that the
- standard also calls for a straight-through pin 1 to pin 1
- <emphasis>Protective Ground</emphasis> line, but it is
- often omitted. Some terminals work OK using only pins 2,
- 3 and 7, while others require different configurations
- than the examples shown below.</para>
+ <para>A null-modem cable can be constructed for use with
+ terminals. The following table shows the RS-232C <link
+ linkend="serialcomms-signal-names">signal names</link>
+ and the pin numbers on a DB-25 connector. While the
+ standard calls for a straight-through pin 1 to pin 1
+ <emphasis>Protective Ground</emphasis> line, it is often
+ omitted. Some terminals work using only pins 2, 3, and
+ 7, while others require different configurations than
+ the examples shown below.</para>
<table frame="none" pgwide="1">
<title>DB-25 to DB-25 Null-Modem Cable</title>
@@ -261,8 +255,8 @@
</tgroup>
</table>
- <para>Here are two other schemes more common
- nowadays.</para>
+ <para>The next two tables show two other common
+ schemes.</para>
<table frame="none" pgwide="1">
<title>DB-9 to DB-9 Null-Modem Cable</title>
@@ -451,10 +445,9 @@
and a long wire to the other single pin.</para>
</note>
- <para>The above designs seems to be the most popular. In
- another variation (explained in the book <emphasis>RS-232
- Made Easy</emphasis>) SG connects to SG, TD connects to
- RD, RTS and CTS connect to DCD, DTR connects to DSR, and
+ <para>The above designs seem to be the most popular. In
+ another variation, SG connects to SG, TD connects to RD,
+ RTS and CTS connect to DCD, DTR connects to DSR, and
vice-versa.</para>
</sect4>
@@ -464,11 +457,11 @@
<indexterm><primary>RS-232C cables</primary></indexterm>
<para>A standard serial cable passes all of the RS-232C
- signals straight through. That is, the <quote>Transmitted
+ signals straight through. The <quote>Transmitted
Data</quote> pin on one end of the cable goes to the
<quote>Transmitted Data</quote> pin on the other end.
- This is the type of cable to use to connect a modem to
- your FreeBSD system, and is also appropriate for some
+ This is the type of cable used to connect a modem to
+ the &os; system, and is also appropriate for some
terminals.</para>
</sect4>
</sect3>
@@ -477,61 +470,61 @@
<title>Ports</title>
<para>Serial ports are the devices through which data is
- transferred between the FreeBSD host computer and the
+ transferred between the &os; host computer and the
terminal. This section describes the kinds of ports that
- exist and how they are addressed in FreeBSD.</para>
+ exist and how they are addressed in &os;.</para>
<sect4 id="term-portkinds">
<title>Kinds of Ports</title>
- <para>Several kinds of serial ports exist. Before you
- purchase or construct a cable, you need to make sure it
- will fit the ports on your terminal and on the FreeBSD
+ <para>Several kinds of serial ports exist. Before
+ purchasing or constructing a cable, make sure it will
+ fit the ports on the terminal and on the &os;
system.</para>
- <para>Most terminals will have DB-25 ports. Personal
- computers, including PCs running FreeBSD, will have DB-25
- or DB-9 ports. If you have a multiport serial card for
- your PC, you may have RJ-12 or RJ-45 ports.</para>
+ <para>Most terminals have DB-25 ports. Personal computers
+ may have DB-25 or DB-9 ports. A multiport serial card may
+ have RJ-12 or RJ-45 ports.</para>
<para>See the documentation that accompanied the hardware
- for specifications on the kind of port in use. A visual
- inspection of the port often works too.</para>
+ for specifications on the kind of port or visually verify
+ the type of port.</para>
</sect4>
<sect4 id="term-portnames">
<title>Port Names</title>
- <para>In FreeBSD, you access each serial port through an
- entry in the <filename>/dev</filename> directory. There
- are two different kinds of entries:</para>
+ <para>In &os;, each serial port is accessed through an
+ entry in <filename class="directory">/dev</filename>.
+ There are two different kinds of entries:</para>
<itemizedlist>
<listitem>
<para>Call-in ports are named
<filename>/dev/ttyu<replaceable>N</replaceable></filename>
where <replaceable>N</replaceable> is the port number,
- starting from zero. Generally, you use the call-in
- port for terminals. Call-in ports require that the
- serial line assert the data carrier detect (DCD)
- signal to work correctly.</para>
+ starting from zero. Generally, the call-in port is
+ used for terminals. Call-in ports require that the
+ serial line assert the Data Carrier Detect
+ (<acronym>DCD</acronym>) signal to work
+ correctly.</para>
</listitem>
<listitem>
<para>Call-out ports are named
<filename>/dev/cuau<replaceable>N</replaceable></filename>.
- You usually do not use the call-out port for
- terminals, just for modems. You may use the call-out
- port if the serial cable or the terminal does not
- support the carrier detect signal.</para>
+ Call-out ports are usually not used for terminals, but
+ are used for modems. The call-out port can be used if
+ the serial cable or the terminal does not support the
+ carrier detect signal.</para>
</listitem>
</itemizedlist>
- <para>If you have connected a terminal to the first serial
- port(<devicename>COM1</devicename> in &ms-dos;), then you
- will use <filename>/dev/ttyu0</filename> to refer to the
+ <para>If a terminal is connected to the first serial
+ port(<devicename>COM1</devicename>), use
+ <filename>/dev/ttyu0</filename> to refer to the
terminal. If the terminal is on the second serial port
- (also known as <devicename>COM2</devicename>), use
+ (<devicename>COM2</devicename>), use
<filename>/dev/ttyu1</filename>, and so forth.</para>
</sect4>
@@ -541,25 +534,25 @@
<sect2>
<title>Kernel Configuration</title>
- <para>FreeBSD supports four serial ports by default. In the
+ <para>&os; supports four serial ports by default. In the
&ms-dos; world, these are known as
<devicename>COM1</devicename>,
<devicename>COM2</devicename>,
<devicename>COM3</devicename>, and
- <devicename>COM4</devicename>. FreeBSD currently supports
+ <devicename>COM4</devicename>. &os; currently supports
<quote>dumb</quote> multiport serial interface cards, such as
- the BocaBoard 1008 and 2016, as well as more
- intelligent multi-port cards such as those made by Digiboard
- and Stallion Technologies. However, the default kernel only
- looks for the standard COM ports.</para>
-
- <para>To see if your kernel recognizes any of your serial ports,
- watch for messages while the kernel is booting, or use the
- <command>/sbin/dmesg</command> command to replay the kernel's
- boot messages. In particular, look for messages that start
- with the characters <literal>uart</literal> if you use
- &os;&nbsp;8.0 or higher, or <literal>sio</literal> for
- &os;&nbsp;7.4 or older.</para>
+ the BocaBoard 1008 and 2016, as well as more intelligent
+ multi-port cards such as those made by Digiboard and Stallion
+ Technologies. However, the default kernel only looks for the
+ standard COM ports.</para>
+
+ <para>To see if the kernel recognizes the serial ports,
+ watch for messages while the kernel is booting, or use
+ <command>/sbin/dmesg</command> to replay the kernel's
+ boot messages. Look for messages that start with the
+ characters <literal>uart</literal> for &os;&nbsp;8.0 or
+ higher, or <literal>sio</literal> for &os;&nbsp;7.4 or
+ older.</para>
<tip><para>To view just the messages that have the word
<literal>uart</literal> or <literal>sio</literal> depending
@@ -570,7 +563,7 @@
</tip>
<para>For example, on a &os;&nbsp;7.<replaceable>X</replaceable>
- system with four serial ports, these are the serial-port
+ system with four serial ports, these are the serial port
specific kernel boot messages:</para>
<screen>sio0 at 0x3f8-0x3ff irq 4 on isa
@@ -582,31 +575,30 @@ sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A</screen>
- <para>If your kernel does not recognize all of your serial
- ports, you will probably need to configure your kernel
- in the <filename>/boot/device.hints</filename> file. You can
- also comment-out or completely remove lines for devices you
- do not have.</para>
+ <para>If the kernel does not recognize all of the serial
+ ports, configure <filename>/boot/device.hints</filename>.
+ When editing this file, one can comment out or completely
+ remove lines for devices that do not exist on the
+ system.</para>
- <para>Please refer to the &man.sio.4; manual page for
- more information on serial ports and multiport boards
- configuration. Be careful if you are using a configuration
- file that was previously used for a different version of
- FreeBSD because the device flags and the syntax have changed
- between versions.</para>
+ <para>Refer to &man.sio.4; for more information on
+ configuring serial ports and multiport boards. When using a
+ configuration file that was previously used for a different
+ version of &os; be aware that the device flags and the syntax
+ may have changed between versions.</para>
<note>
<para><literal>port IO_COM1</literal> is a substitution for
<literal>port 0x3f8</literal>, <literal>IO_COM2</literal> is
<literal>0x2f8</literal>, <literal>IO_COM3</literal> is
<literal>0x3e8</literal>, and <literal>IO_COM4</literal> is
- <literal>0x2e8</literal>, which are fairly common port
- addresses for their respective serial ports; interrupts 4,
- 3, 5, and 9 are fairly common interrupt request lines. Also
- note that regular serial ports <emphasis>cannot</emphasis>
- share interrupts on ISA-bus PCs (multiport boards have
+ <literal>0x2e8</literal>. These are fairly common port
+ addresses for their respective serial ports and interrupts
+ 4, 3, 5, and 9 are fairly common interrupt request lines.
+ Regular serial ports <emphasis>cannot</emphasis> share
+ interrupts on ISA-bus PCs. Multiport boards have
on-board electronics that allow all the 16550A's on the
- board to share one or two interrupt request lines).</para>
+ board to share one or two interrupt request lines.</para>
</note>
</sect2>
@@ -615,13 +607,13 @@ sio3: type 16550A</screen>
<title>Device Special Files</title>
<para>Most devices in the kernel are accessed through
- <quote>device special files</quote>, which are located in the
- <filename>/dev</filename> directory. The
+ <quote>device special files</quote> which are located in
+ <filename>/dev class="directory"</filename>. The
<devicename>sio</devicename> devices are accessed through the
<filename>/dev/ttyu<replaceable>N</replaceable></filename>
(dial-in) and
<filename>/dev/cuau<replaceable>N</replaceable></filename>
- (call-out) devices. FreeBSD also provides initialization
+ (call-out) devices. &os; also provides initialization
devices
(<filename>/dev/ttyu<replaceable>N</replaceable>.init</filename>
and
@@ -635,9 +627,9 @@ sio3: type 16550A</screen>
such as <literal>crtscts</literal> for modems which use
<literal>RTS/CTS</literal> signaling for flow control. The
locking devices are used to lock flags on ports to prevent
- users or programs changing certain parameters; see the manual
- pages &man.termios.4;, &man.sio.4;, and &man.stty.1; for
- information on the terminal settings, locking and initializing
+ users or programs changing certain parameters. Refer to
+ &man.termios.4;, &man.sio.4;, and &man.stty.1; for
+ information on terminal settings, locking and initializing
devices, and setting terminal options, respectively.</para>
</sect2>
@@ -651,20 +643,20 @@ sio3: type 16550A</screen>
<para>The
<devicename>ttyu<replaceable>N</replaceable></devicename> (or
<devicename>cuau<replaceable>N</replaceable></devicename>)
- device is the regular device you will want to open for your
- applications. When a process opens the device, it will have a
- default set of terminal I/O settings. You can see these
- settings with the command</para>
+ is the regular device to open for applications. When a
+ process opens the device, it will have a default set of
+ terminal I/O settings. These settings can be viewed with the
+ command:</para>
<screen>&prompt.root; <userinput>stty -a -f /dev/ttyu1</userinput></screen>
- <para>When you change the settings to this device, the settings
- are in effect until the device is closed. When it is
- reopened, it goes back to the default set. To make changes to
- the default set, you can open and adjust the settings of the
+ <para>When the settings are changed for a device, the settings
+ are in effect until the device is closed. When the device is
+ reopened, it goes back to the default set. To permanently
+ change the default set, open and adjust the settings of the
<quote>initial state</quote> device. For example, to turn on
<option>CLOCAL</option> mode, 8 bit communication, and
- <option>XON/XOFF</option> flow control by default for
+ <option>XON/XOFF</option> flow control for
<devicename>ttyu5</devicename>, type:</para>
<screen>&prompt.root; <userinput>stty -f /dev/ttyu5.init clocal cs8 ixon ixoff</userinput></screen>
@@ -674,8 +666,8 @@ sio3: type 16550A</screen>
<secondary><filename>rc.serial</filename></secondary>
</indexterm>
- <para>System-wide initialization of the serial devices is
- controlled in <filename>/etc/rc.d/serial</filename>. This
+ <para>System-wide initialization of serial devices is
+ controlled by <filename>/etc/rc.d/serial</filename>. This
file affects the default settings of serial devices.</para>
<para>To prevent certain settings from being changed by an
@@ -689,9 +681,8 @@ sio3: type 16550A</screen>
<devicename>ttyu5</devicename> and tries to change the speed
of the port will be stuck with 57600&nbsp;bps.</para>
- <para>Naturally, you should make the initial state and lock
- state devices writable only by the <username>root</username>
- account.</para>
+ <para>The initial state and lock state devices should only be
+ writable by <username>root</username>.</para>
</sect2>
</sect1>
@@ -708,120 +699,85 @@ sio3: type 16550A</screen>
</sect1info>
<title>Terminals</title>
- <warning>
- <para>As of &os; 8.0, device nodes for serial ports have been
- renamed from
- <filename>/dev/cuad<replaceable>N</replaceable></filename> to
- <filename>/dev/cuau<replaceable>N</replaceable></filename> and
- from
- <filename>/dev/ttyd<replaceable>N</replaceable></filename> to
- <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
- &os;&nbsp;7.X users will have to adapt the following
- documentation according to these changes.</para>
- </warning>
-
<indexterm><primary>terminals</primary></indexterm>
<para>Terminals provide a convenient and low-cost way to access
- your FreeBSD system when you are not at the computer's console
- or on a connected network. This section describes how to use
- terminals with FreeBSD.</para>
+ a &os; system when not at the computer's console or on a
+ connected network. This section describes how to use terminals
+ with &os;.</para>
<sect2 id="term-uses">
<title>Uses and Types of Terminals</title>
<para>The original &unix; systems did not have consoles.
- Instead, people logged in and ran programs through terminals
- that were connected to the computer's serial ports. It is
- quite similar to using a modem and terminal software to dial
- into a remote system to do text-only work.</para>
-
- <para>Today's PCs have consoles capable of high quality
- graphics, but the ability to establish a login session on a
- serial port still exists in nearly every &unix; style
- operating system today; FreeBSD is no exception. By using a
- terminal attached to an unused serial port, you can log in and
- run any text program that you would normally run on the
- console or in an <command>xterm</command> window in the X
- Window System.</para>
-
- <para>For the business user, you can attach many terminals to a
- FreeBSD system and place them on your employees' desktops.
- For a home user, a spare computer such as an older IBM PC or a
- &macintosh; can be a terminal wired into a more powerful
- computer running FreeBSD. You can turn what might otherwise be
- a single-user computer into a powerful multiple user
- system.</para>
-
- <para>For FreeBSD, there are three kinds of terminals:</para>
-
- <itemizedlist>
- <listitem>
- <para><link linkend="term-dumb">Dumb terminals</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="term-pcs">PCs acting as
- terminals</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="term-x">X terminals</link></para>
- </listitem>
- </itemizedlist>
-
- <para>The remaining subsections describe each kind.</para>
+ Instead, users logged in and ran programs through terminals
+ that were connected to the computer's serial ports.</para>
+
+ <para>The ability to establish a login session on a serial port
+ still exists in nearly every &unix;-like operating system
+ today, including &os;. By using a terminal attached to an
+ unused serial port, a user can log in and run any text program
+ that can normally be run on the console or in an
+ <command>xterm</command> window.</para>
+
+ <para>Many terminals can be attached to a &os; system. An older
+ spare computer can be used as a terminal wired into a more
+ powerful computer running &os;. This can turn what might
+ otherwise be a single-user computer into a powerful multiple
+ user system.</para>
+
+ <para>This section describes three kinds of terminals supported
+ by &os;: dumb terminals, computers acting as terminals, and X
+ terminals.</para>
<sect3 id="term-dumb">
<title>Dumb Terminals</title>
- <para>Dumb terminals are specialized pieces of hardware that
- let you connect to computers over serial lines. They are
- called <quote>dumb</quote> because they have only enough
- computational power to display, send, and receive text. You
- cannot run any programs on them. It is the computer to
- which you connect them that has all the power to run text
+ <para>Dumb terminals are specialized hardware that connect to
+ computers over serial lines. They are called
+ <quote>dumb</quote> because they have only enough
+ computational power to display, send, and receive text. No
+ programs can be run on these devices. Dumb terminals
+ connect to a computer that has all the power to run text
editors, compilers, email, games, and so forth.</para>
<para>There are hundreds of kinds of dumb terminals made by
- many manufacturers, including Digital Equipment
- Corporation's VT-100 and Wyse's WY-75. Just about any kind
- will work with FreeBSD. Some high-end terminals can even
- display graphics, but only certain software packages can
- take advantage of these advanced features.</para>
+ many manufacturers, and just about any kind will work with
+ &os;. Some high-end terminals can even display graphics,
+ but only certain software packages can take advantage of
+ these advanced features.</para>
<para>Dumb terminals are popular in work environments where
- workers do not need access to graphical applications such as
- those provided by the X Window System.</para>
+ workers do not need access to graphical applications.</para>
</sect3>
<sect3 id="term-pcs">
- <title>PCs Acting as Terminals</title>
+ <title>Computers Acting as Terminals</title>
<para>If a <link linkend="term-dumb">dumb terminal</link> has
- just enough ability to display, send, and receive text, then
- certainly any spare personal computer can be a dumb
- terminal. All you need is the proper cable and some
- <emphasis>terminal emulation</emphasis> software to run on
- the computer.</para>
-
- <para>Such a configuration is popular in homes. For example,
- if your spouse is busy working on your FreeBSD system's
- console, you can do some text-only work at the same time
- from a less powerful personal computer hooked up as a
- terminal to the FreeBSD system.</para>
+ just enough ability to display, send, and receive text,
+ any spare computer can be a dumb terminal. All that is
+ needed is the proper cable and some <emphasis>terminal
+ emulation</emphasis> software to run on the
+ computer.</para>
+
+ <para>This configuration can be useful. For example, if one
+ user is busy working at the &os; system's console, another
+ user can do some text-only work at the same time from a
+ less powerful personal computer hooked up as a terminal to
+ the &os; system.</para>
<para>There are at least two utilities in the base-system of
&os; that can be used to work through a serial connection:
&man.cu.1; and &man.tip.1;.</para>
<para>To connect from a client system that runs &os; to the
- serial connection of another system, you can use:</para>
+ serial connection of another system, use:</para>
<screen>&prompt.root; <userinput>cu -l <replaceable>serial-port-device</replaceable></userinput></screen>
<para>Where <quote>serial-port-device</quote> is the name of a
- special device file denoting a serial port of your system.
+ special device file denoting a serial port on the system.
These device files are called
<devicename>/dev/cuau<replaceable>N</replaceable></devicename>.</para>
@@ -830,17 +786,13 @@ sio3: type 16550A</screen>
<note>
<para>Note that device numbers in &os; start from zero and
- not one (like they do, for instance in &ms-dos;-derived
- systems). This means that what &ms-dos;-based systems
- call <devicename>COM1</devicename> is usually
+ not one. This means that <devicename>COM1</devicename> is
<filename>/dev/cuau0</filename> in &os;.</para>
</note>
<note>
- <para>Some people prefer to use other programs, available
- through the Ports Collection. The Ports include quite a
- few utilities which can work in ways similar to &man.cu.1;
- and &man.tip.1;, i.e., <filename
+ <para>Some people prefer to use other programs available
+ through the Ports Collection, such as <filename
role="package">comms/minicom</filename>.</para>
</note>
</sect3>
@@ -854,48 +806,44 @@ sio3: type 16550A</screen>
being relegated to text-only applications, they can display
any X application.</para>
- <para>We introduce X terminals just for the sake of
- completeness. However, this chapter does
- <emphasis>not</emphasis> cover setup, configuration, or use
- of X terminals.</para>
+ <para>This chapter does <emphasis>not</emphasis> cover the
+ setup, configuration, or use of X terminals.</para>
</sect3>
</sect2>
<sect2 id="term-config">
<title>Configuration</title>
- <para>This section describes what you need to configure on your
- FreeBSD system to enable a login session on a terminal. It
- assumes you have already configured your kernel to support the
- serial port to which the terminal is connected&mdash;and that
- you have connected it.</para>
-
- <para>Recall from <xref linkend="boot"/> that the
- <command>init</command> process is responsible for all process
- control and initialization at system startup. One of the
- tasks performed by <command>init</command> is to read the
- <filename>/etc/ttys</filename> file and start a
+ <para>This section describes how to configure a &os; system to
+ enable a login session on a terminal. It assumes that the
+ kernel is configured to support the serial port to which the
+ terminal is connected and that the terminal is
+ connected.</para>
+
+ <para>The <command>init</command> process is responsible for all
+ process control and initialization at system startup. One of
+ the tasks performed by <command>init</command> is to read
+ <filename>/etc/ttys</filename> and start a
<command>getty</command> process on the available terminals.
The <command>getty</command> process is responsible for
reading a login name and starting the <command>login</command>
program.</para>
- <para>Thus, to configure terminals for your FreeBSD system the
- following steps should be taken as
- <username>root</username>:</para>
+ <para>To configure terminals for a &os; system, the following
+ steps should be taken as <username>root</username>:</para>
<procedure>
<step>
<para>Add a line to <filename>/etc/ttys</filename> for the
- entry in the <filename>/dev</filename> directory for the
- serial port if it is not already there.</para>
+ entry in <filename class="directory">/dev</filename> for
+ the serial port if it is not already there.</para>
</step>
<step>
<para>Specify that <command>/usr/libexec/getty</command>
be run on the port, and specify the appropriate
- <replaceable>getty</replaceable> type from the
- <filename>/etc/gettytab</filename> file.</para>
+ <replaceable>getty</replaceable> type from
+ <filename>/etc/gettytab</filename>.</para>
</step>
<step>
@@ -912,53 +860,53 @@ sio3: type 16550A</screen>
</step>
<step>
- <para>Force <command>init</command> to reread the
- <filename>/etc/ttys</filename> file.</para>
+ <para>Force <command>init</command> to reread
+ <filename>/etc/ttys</filename>.</para>
</step>
</procedure>
- <para>As an optional step, you may wish to create a custom
+ <para>As an optional step, create a custom
<replaceable>getty</replaceable> type for use in step 2 by
- making an entry in <filename>/etc/gettytab</filename>. This
- chapter does not explain how to do so; you are encouraged to
- see the &man.gettytab.5; and the &man.getty.8; manual pages
- for more information.</para>
+ making an entry in <filename>/etc/gettytab</filename>. For
+ more information, refer to &man.gettytab.5; and
+ &man.getty.8;.</para>
<sect3 id="term-etcttys">
<title>Adding an Entry to
<filename>/etc/ttys</filename></title>
- <para>The <filename>/etc/ttys</filename> file lists all of the
- ports on your FreeBSD system where you want to allow logins.
- For example, the first virtual console
- <devicename>ttyv0</devicename> has an entry in this file.
- You can log in on the console using this entry. This
- file also contains entries for the other virtual consoles,
- serial ports, and pseudo-ttys. For a hardwired terminal,
- just list the serial port's <filename>/dev</filename> entry
- without the <filename>/dev</filename> part (for example,
+ <para><filename>/etc/ttys</filename> lists all of the ports
+ on the &os; system which allow logins. For example, the
+ first virtual console,
+ <devicename>ttyv0</devicename>, has an entry in this file,
+ allowing logins on the console. This file also contains
+ entries for the other virtual consoles, serial ports, and
+ pseudo-ttys. For a hardwired terminal,
+ list the serial port's <filename
+ class="directory">/dev</filename> entry without the
+ <literal>/dev</literal> part. For example,
<filename>/dev/ttyv0</filename> would be listed as
- <devicename>ttyv0</devicename>).</para>
+ <literal>ttyv0</literal>.</para>
- <para>A default FreeBSD install includes an
- <filename>/etc/ttys</filename> file with support for the
+ <para>A default &os; install includes an
+ <filename>/etc/ttys</filename> with support for the
first four serial ports: <devicename>ttyu0</devicename>
- through <devicename>ttyu3</devicename>. If you are
- attaching a terminal to one of those ports, you do not need
- to add another entry.</para>
+ through <devicename>ttyu3</devicename>. When
+ attaching a terminal to one of those ports, this file does
+ not need to be edited.</para>
<example id="ex-etc-ttys">
<title>Adding Terminal Entries to
<filename>/etc/ttys</filename></title>
- <para>Suppose we would like to connect two terminals to the
- system: a Wyse-50 and an old 286 IBM PC running
+ <para>This example configures two terminals: a Wyse-50 and
+ an old 286 IBM PC running
<application>Procomm</application> terminal software
- emulating a VT-100 terminal. We connect the Wyse to the
- second serial port and the 286 to the sixth serial port (a
- port on a multiport serial card). The corresponding
- entries in the <filename>/etc/ttys</filename> file would
- look like this:</para>
+ emulating a VT-100 terminal. The Wyse is connected to the
+ second serial port and the 286 to the sixth serial port on
+ a multiport serial card. The corresponding entries in
+ <filename>/etc/ttys</filename> would look like
+ this:</para>
<programlisting>ttyu1<co
id="co-ttys-line1col1"/> "/usr/libexec/getty std.38400"<co
@@ -972,57 +920,56 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<callout arearefs="co-ttys-line1col1">
<para>The first field normally specifies the name of
the terminal special file as it is found in
- <filename>/dev</filename>.</para>
+ <filename class="directory">/dev</filename>.</para>
</callout>
<callout arearefs="co-ttys-line1col2">
<para>The second field is the command to execute for
this line, which is usually &man.getty.8;.
<command>getty</command> initializes and opens the
- line, sets the speed, prompts for a user name and then
- executes the &man.login.1; program.</para>
+ line, sets the speed, prompts for a user name, and
+ then executes &man.login.1;.</para>
<para>The <command>getty</command> program accepts one
(optional) parameter on its command line, the
<replaceable>getty</replaceable> type. A
<replaceable>getty</replaceable> type configures
- characteristics on the terminal line, like bps rate
- and parity. The <command>getty</command> program
- reads these characteristics from the file
- <filename>/etc/gettytab</filename>.</para>
-
- <para>The file <filename>/etc/gettytab</filename>
- contains lots of entries for terminal lines both old
- and new. In almost all cases, the entries that start
- with the text <literal>std</literal> will work for
- hardwired terminals. These entries ignore parity.
- There is a <literal>std</literal> entry for each bps
- rate from 110 to 115200. Of course, you can add your
- own entries to this file. The &man.gettytab.5; manual
- page provides more information.</para>
+ characteristics on the terminal line, like
+ <acronym>bps</acronym> rate and parity.
+ <command>getty</command> reads these characteristics
+ from <filename>/etc/gettytab</filename>.</para>
+
+ <para><filename>/etc/gettytab</filename> contains many
+ entries for terminal lines, both old and new. In
+ almost all cases, the entries that start with the
+ text <literal>std</literal> will work for hardwired
+ terminals as these entries ignore parity. There is
+ a <literal>std</literal> entry for each
+ <acronym>bps</acronym> rate from 110 to 115200.
+ &man.gettytab.5; provides more information.</para>
<para>When setting the <replaceable>getty</replaceable>
- type in the <filename>/etc/ttys</filename> file, make
- sure that the communications settings on the terminal
+ type in <filename>/etc/ttys</filename>, make sure
+ that the communications settings on the terminal
match.</para>
- <para>For our example, the Wyse-50 uses no parity and
+ <para>For this example, the Wyse-50 uses no parity and
connects at 38400&nbsp;bps. The 286&nbsp;PC uses no
parity and connects at 19200&nbsp;bps.</para>
</callout>
<callout arearefs="co-ttys-line1col3">
<para>The third field is the type of terminal usually
- connected to that tty line. For dial-up ports,
+ connected to that terminal line. For dial-up ports,
<literal>unknown</literal> or
- <literal>dialup</literal> is typically used in this
- field since users may dial up with practically any
- type of terminal or software. For hardwired
- terminals, the terminal type does not change, so you
- can put a real terminal type from the &man.termcap.5;
- database file in this field.</para>
-
- <para>For our example, the Wyse-50 uses the real
+ <literal>dialup</literal> is typically used since
+ users may dial up with practically any type of
+ terminal or software. Since the terminal type does
+ not change for hardwired terminals, a real terminal
+ type from &man.termcap.5; can be used in this
+ field.</para>
+
+ <para>For this example, the Wyse-50 uses the real
terminal type while the 286 PC running
<application>Procomm</application> will be set to
emulate at VT-100. </para>
@@ -1030,30 +977,31 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<callout arearefs="co-ttys-line1col4">
<para>The fourth field specifies if the port should be
- enabled. Putting <literal>on</literal> here will have
- the <command>init</command> process start the program
- in the second field, <command>getty</command>. If you
- put <literal>off</literal> in this field, there will
- be no <command>getty</command>, and hence no logins on
- the port.</para>
+ enabled. If set to <literal>on</literal>, the
+ <command>init</command> process will start the program
+ in the second field, <command>getty</command>. If
+ this field is set to <literal>off</literal>, there
+ will be no <command>getty</command>, and hence no
+ logins on the port.</para>
</callout>
<callout arearefs="co-ttys-line1col5">
<para>The final field is used to specify whether the
- port is secure. Marking a port as secure means that
- you trust it enough to allow the
- <username>root</username> account (or any account with
- a user ID of 0) to login from that port. Insecure
- ports do not allow <username>root</username> logins.
- On an insecure port, users must login from
- unprivileged accounts and then use &man.su.1; or a
- similar mechanism to gain superuser privileges.</para>
-
- <para>It is highly recommended that you use
- <quote>insecure</quote>
- even for terminals that are behind locked doors. It
- is quite easy to login and use <command>su</command>
- if you need superuser privileges.</para>
+ port is secure. Marking a port as
+ <literal>secure</literal> means that it is trusted
+ enough to allow <username>root</username>, or any
+ account with a <acronym>UID</acronym> of 0, to login
+ from that port. Insecure ports do not allow
+ <username>root</username> logins. On an insecure
+ port, users must login from unprivileged accounts and
+ then use &man.su.1; or a similar mechanism to gain
+ superuser privileges.</para>
+
+ <para>It is highly recommended to use
+ <literal>insecure</literal>, even for terminals that
+ are behind locked doors. It is quite easy to login
+ and use <command>su</command> when superuser
+ privileges are needed.</para>
</callout>
</calloutlist>
</example>
@@ -1063,34 +1011,34 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<title>Force <command>init</command> to Reread
<filename>/etc/ttys</filename></title>
- <para>After making the necessary changes to the
- <filename>/etc/ttys</filename> file you should send a SIGHUP
+ <para>After making any changes to
+ <filename>/etc/ttys</filename>, send a SIGHUP
(hangup) signal to the <command>init</command> process to
- force it to re-read its configuration file. For
- example:</para>
+ force it to re-read its configuration file:</para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
<note>
<para><command>init</command> is always the first process
- run on a system, therefore it will always have PID
- 1.</para>
+ run on a system, therefore it will always have a process
+ ID of 1.</para>
</note>
<para>If everything is set up correctly, all cables are in
place, and the terminals are powered up, then a
<command>getty</command> process should be running on each
- terminal and you should see login prompts on your terminals
- at this point.</para>
+ terminal and login prompts should be available on each
+ terminal.</para>
</sect3>
</sect2>
<sect2 id="term-debug">
- <title>Troubleshooting Your Connection</title>
+ <title>Troubleshooting the Connection</title>
<para>Even with the most meticulous attention to detail,
something could still go wrong while setting up a terminal.
- Here is a list of symptoms and some suggested fixes.</para>
+ Here is a list of common symptoms and some suggested
+ fixes.</para>
<sect3>
<title>No Login Prompt Appears</title>
@@ -1101,14 +1049,14 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
port.</para>
<para>Make sure the cable is connected firmly to both the
- terminal and the FreeBSD computer. Make sure it is the
+ terminal and the &os; computer. Make sure it is the
right kind of cable.</para>
- <para>Make sure the terminal and FreeBSD agree on the bps rate
- and parity settings. If you have a video display terminal,
- make sure the contrast and brightness controls are turned
- up. If it is a printing terminal, make sure paper and ink
- are in good supply.</para>
+ <para>Make sure the terminal and &os; agree on the
+ <acronym>bps</acronym> rate and parity settings. For a
+ video display terminal, make sure the contrast and
+ brightness controls are turned up. If it is a printing
+ terminal, make sure paper and ink are in good supply.</para>
<para>Make sure that a <command>getty</command> process is
running and serving the terminal. For example, to get a
@@ -1117,46 +1065,44 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
- <para>You should see an entry for the terminal. For
- example, the following display shows that a
+ <para>There should be an entry for the terminal. For example,
+ the following display shows that a
<command>getty</command> is running on the second serial
- port <devicename>ttyu1</devicename> and is using the
+ port, <devicename>ttyu1</devicename>, and is using the
<literal>std.38400</literal> entry in
<filename>/etc/gettytab</filename>:</para>
<screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1</screen>
<para>If no <command>getty</command> process is running, make
- sure you have enabled the port in
- <filename>/etc/ttys</filename>. Also remember to run
- <command>kill -HUP 1</command> after modifying the
- <filename>ttys</filename> file.</para>
+ sure the port is enabled in
+ <filename>/etc/ttys</filename>. Remember to run
+ <command>kill -HUP 1</command> after modifying
+ <filename>/etc/ttys</filename>.</para>
<para>If the <command>getty</command> process is running
but the terminal still does not display a login prompt,
- or if it displays a prompt but will not allow you to
- type, your terminal or cable may not support hardware
- handshaking. Try changing the entry in
- <filename>/etc/ttys</filename> from
- <literal>std.38400</literal> to
- <literal>3wire.38400</literal> (remember to run
+ or if it displays a prompt but will not accept typed input,
+ the terminal or cable may not support hardware handshaking.
+ Try changing the entry in <filename>/etc/ttys</filename>
+ from <literal>std.38400</literal> to
+ <literal>3wire.38400</literal>, then run
<command>kill -HUP 1</command> after modifying
- <filename>/etc/ttys</filename>). The
+ <filename>/etc/ttys</filename>. The
<literal>3wire</literal> entry is similar to
<literal>std</literal>, but ignores hardware
- handshaking. You may need to reduce the baud rate or
- enable software flow control when using
- <literal>3wire</literal> to prevent buffer
- overflows.</para>
+ handshaking. The baud rate may need to be reduced or
+ software flow control enabled when using
+ <literal>3wire</literal> to prevent buffer overflows.</para>
</sect3>
<sect3>
<title>If Garbage Appears Instead of a Login Prompt</title>
- <para>Make sure the terminal and FreeBSD agree on the bps rate
- and parity settings. Check the <command>getty</command>
- processes to make sure the correct
+ <para>Make sure the terminal and &os; agree on the
+ <acronym>bps</acronym> rate and parity settings. Check the
+ <command>getty</command> processes to make sure the correct
<replaceable>getty</replaceable> type is in use. If not,
edit <filename>/etc/ttys</filename> and run <command>kill
-HUP 1</command>.</para>
@@ -1164,10 +1110,10 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
</sect3>
<sect3>
- <title>Characters Appear Doubled; the Password Appears When
+ <title>Characters Appear Doubled and the Password Appears When
Typed</title>
- <para>Switch the terminal (or the terminal emulation software)
+ <para>Switch the terminal, or the terminal emulation software,
from <quote>half duplex</quote> or <quote>local echo</quote>
to <quote>full duplex.</quote></para>
@@ -1194,50 +1140,34 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
</sect1info>
<title>Dial-in Service</title>
- <warning>
- <para>As of &os; 8.0, device nodes for serial ports have been
- renamed from
- <filename>/dev/cuad<replaceable>N</replaceable></filename> to
- <filename>/dev/cuau<replaceable>N</replaceable></filename> and
- from
- <filename>/dev/ttyd<replaceable>N</replaceable></filename> to
- <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
- &os;&nbsp;7.X users will have to adapt the following
- documentation according to these changes.</para>
- </warning>
-
<indexterm><primary>dial-in service</primary></indexterm>
- <para>Configuring your FreeBSD system for dial-in service is very
- similar to connecting terminals except that you are dealing with
- modems instead of terminals.</para>
+ <para>Configuring a &os; system for dial-in service is similar
+ to connecting terminals except that modems are used instead of
+ terminal devices.</para>
<sect2>
<title>External Versus Internal Modems</title>
- <para>External modems seem to be more convenient for dial-up,
- because external modems 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. Blinking lights impress visitors,
- but lights are also very useful to see whether a modem is
- operating properly.</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,
+ indicating whether the modem is operating properly.</para>
<para>Internal modems usually lack non-volatile RAM, so their
- configuration may be limited only to setting DIP switches.
- If your internal modem has any signal indicator lights, it is
- probably difficult to view the lights when the system's cover
- is in place.</para>
+ configuration may be limited to setting DIP switches. If the
+ internal modem has any signal indicator lights, they are
+ difficult to view when the system's cover is in place.</para>
<sect3>
<title>Modems and Cables</title>
<indexterm><primary>modem</primary></indexterm>
- <para>If you are using an external modem, then you will of
- course need the proper cable. A standard RS-232C serial
- cable should suffice as long as all of the normal signals
- are wired:</para>
+ <para>When using an external modem, a proper cable is needed.
+ A standard RS-232C serial cable should suffice as long as
+ all of the normal signals are wired:</para>
<table frame="none" pgwide="1" id="serialcomms-signal-names">
<title>Signal Names</title>
@@ -1295,39 +1225,38 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
</tgroup>
</table>
- <para>FreeBSD needs the <acronym>RTS</acronym> and
+ <para>&os; needs the <acronym>RTS</acronym> and
<acronym>CTS</acronym> signals for flow control at speeds
above 2400&nbsp;bps, the <acronym>CD</acronym> signal to
detect when a call has been answered or the line has been
hung up, and the <acronym>DTR</acronym> signal to reset the
modem after a session is complete. Some cables are wired
- without all of the needed signals, so if you have problems,
- such as a login session not going away when the line hangs
- up, you may have a problem with your cable.</para>
+ 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>
- <para>Like other &unix; like operating systems, FreeBSD uses
+ <para>Like other &unix;-like operating systems, &os; uses
the hardware signals to find out when a call has been
answered or a line has been hung up and to hangup and reset
- the modem after a call. FreeBSD avoids sending commands to
- the modem or watching for status reports from the modem. If
- you are familiar with connecting modems to PC-based bulletin
- board systems, this may seem awkward.</para>
+ the modem after a call. &os; avoids sending commands to
+ the modem or watching for status reports from the
+ modem.</para>
</sect3>
</sect2>
<sect2>
<title>Serial Interface Considerations</title>
- <para>FreeBSD supports NS8250-, NS16450-, NS16550-, and
+ <para>&os; supports the NS8250-, NS16450-, NS16550-, and
NS16550A-based EIA RS-232C (CCITT 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
+ 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
+ 16550A's 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 much preferred. If the system has many active serial
+ 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>
@@ -1339,18 +1268,18 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<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>, the command
+ 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 <acronym>CD</acronym> (Carrier Detect) line is reported by
- the modem. The kernel notices that carrier has been detected
- and completes <command>getty</command>'s open of the port.
- <command>getty</command> sends a <prompt>login:</prompt>
- prompt at the specified initial line speed.
- <command>getty</command> watches to see if legitimate
+ the Carrier Detect (<acronym>CD</acronym>) line 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
+ <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),
@@ -1360,7 +1289,7 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<indexterm>
<primary><command>/usr/bin/login</command></primary>
</indexterm>
- <para>After the user enters his/her login name,
+ <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
@@ -1371,17 +1300,17 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<sect2>
<title>Configuration Files</title>
- <para>There are three system configuration files in the
- <filename>/etc</filename> directory that you will probably
- need to edit to allow dial-up access to your FreeBSD system.
- The first, <filename>/etc/gettytab</filename>, contains
- configuration information for the
- <filename>/usr/libexec/getty</filename> daemon. Second,
- <filename>/etc/ttys</filename> holds information that tells
- <filename>/sbin/init</filename> what <filename>tty</filename>
- devices should have <command>getty</command> processes running
- on them. Lastly, you can place port initialization commands
- in the <filename>/etc/rc.d/serial</filename> script.</para>
+ <para>There are three system configuration files in
+ <filename class="directory">/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
+ <devicename>tty</devicename>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
@@ -1395,7 +1324,7 @@ 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 school configures their modems' RS-232 interface
+ <para>The other group configures their modems' RS-232 interface
to vary its speed based on the remote user's connection speed.
For example, V.32bis (14.4&nbsp;Kbps) connections to the modem
might make the modem run its RS-232 interface at
@@ -1406,17 +1335,15 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
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
- the <keycap>Enter</keycap> key 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 again. This procedure can
- continue ad nauseam, but normally only takes a keystroke
- or two before the user sees a good prompt. Obviously, this
- login sequence does not look as clean as the former
- <quote>locked-speed</quote> method, but a user on a low-speed
- connection should receive better interactive response from
- full-screen programs.</para>
+ <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
+ 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,
+ 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
@@ -1430,28 +1357,27 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
</indexterm>
<para><filename>/etc/gettytab</filename> is a
&man.termcap.5;-style file of configuration information for
- &man.getty.8;. Please see the &man.gettytab.5; manual page
- for complete information on the format of the file and the
- list of capabilities.</para>
+ &man.getty.8;. Refer to &man.gettytab.5; for complete
+ information on the format of the file and the list of
+ capabilities.</para>
<sect4>
<title>Locked-speed Config</title>
- <para>If you are locking your modem's data communications
- rate at a particular speed, you probably will not need to
- make any changes to
- <filename>/etc/gettytab</filename>.</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>
</sect4>
<sect4>
<title>Matching-speed Config</title>
- <para>You will need to set up an entry in
+ <para>Set up an entry in
<filename>/etc/gettytab</filename> to give
- <command>getty</command> information about the speeds you
- wish to use for your modem. If you have a 2400&nbsp;bps
- modem, you can probably use the existing
- <literal>D2400</literal> entry.</para>
+ <command>getty</command> information about the speeds to
+ use for the modem. For a 2400&nbsp;bps modem, use the
+ existing <literal>D2400</literal> entry.</para>
<programlisting>#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
@@ -1463,11 +1389,10 @@ D2400|d2400|Fast-Dial-2400:\
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:</programlisting>
- <para>If you have a higher speed modem, you will probably
- need to add an entry in
- <filename>/etc/gettytab</filename>; here is an entry you
- could use for a 14.4&nbsp;Kbps modem with a top interface
- speed of 19.2&nbsp;Kbps:</para>
+ <para>For a higher speed modem, add an entry in
+ <filename>/etc/gettytab</filename>. This entry is for a
+ 14.4&nbsp;Kbps modem with a top interface speed of
+ 19.2&nbsp;Kbps:</para>
<programlisting>#
# Additions for a V.32bis Modem
@@ -1497,12 +1422,11 @@ uq|V19200|High Speed Modem at 19200,8-bit:\
entry to pick up the rest of the <quote>standard</quote>
settings for a particular data rate.</para>
- <para>If you have a 28.8&nbsp;Kbps modem and/or you want to
- take advantage of compression on a 14.4&nbsp;Kbps modem,
- you need to use a higher communications rate than
- 19.2&nbsp;Kbps. Here is an example of a
- <filename>gettytab</filename> entry starting a
- 57.6&nbsp;Kbps:</para>
+ <para>For a 28.8&nbsp;Kbps modem or to take advantage of
+ compression on a 14.4&nbsp;Kbps modem, use a higher
+ communications rate than 19.2&nbsp;Kbps. Here is an
+ example of a <filename>gettytab</filename> entry starting
+ a 57.6&nbsp;Kbps:</para>
<programlisting>#
# Additions for a V.32bis or V.34 Modem
@@ -1519,8 +1443,8 @@ 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>If you have a slow CPU or a heavily loaded system and
- do not have 16550A-based serial ports, you may receive
+ <para>For a slow CPU or a heavily loaded system without
+ 16550A-based serial ports, there may be
<errorname>sio</errorname>
<quote>silo</quote> errors at 57.6&nbsp;Kbps.</para>
</sect4>
@@ -1533,59 +1457,54 @@ vq|VH57600|Very High Speed Modem at 57600,8-bit:\
<primary><filename>/etc/ttys</filename></primary>
</indexterm>
- <para>Configuration of the <filename>/etc/ttys</filename> file
- was covered in <xref linkend="ex-etc-ttys"/>.
- Configuration for modems is similar but we must pass a
- different argument to <command>getty</command> and specify a
- different terminal type. The general format for both
- locked-speed and matching-speed configurations is:</para>
+ <para>Configuration of <filename>/etc/ttys</filename>
+ is covered in <link linkend="ex-etc-ttys"></link>.
+ 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>
<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 &mdash; <devicename>ttyu0</devicename>
- means <filename>/dev/ttyu0</filename> is the file that this
- <command>getty</command> will be watching. The second item,
- <literal>"/usr/libexec/getty
- <replaceable>xxx</replaceable>"</literal>
- (<replaceable>xxx</replaceable> will be replaced by the
- initial <filename>gettytab</filename> capability) 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>,
+ file for this entry. <literal>ttyu0</literal> indicates
+ that <command>getty</command> is watching
+ <devicename>/dev/ttyu0</devicename>. 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>
+ terminals which are physically secure, such as the system
+ console.</para>
- <para>The default terminal type (<literal>dialup</literal> in
- the example above) may depend on local preferences.
+ <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. However, the author finds it easier at his
- site to specify <literal>vt102</literal> as the default
- terminal type, since the users just use VT102 emulation on
+ terminal type. Setting <literal>vt102</literal> as the
+ default terminal type allows users to use VT102 emulation on
their remote systems.</para>
- <para>After you have made changes to
- <filename>/etc/ttys</filename>, you may send the
+ <para>After editing <filename>/etc/ttys</filename>, send the
<command>init</command> process a <acronym>HUP</acronym>
- signal to re-read the file. You can use the command
+ signal to re-read the file:</para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
- to send the signal. If this is your first time setting up
- the system, you may want to wait until your modem(s) are
- properly configured and connected before signaling
- <command>init</command>.</para>
+ <para>Wait until the modem is properly configured and
+ connected before signaling <command>init</command>.</para>
<sect4>
<title>Locked-speed Config</title>
- <para>For a locked-speed configuration, your
+ <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&nbsp;Kbps,
@@ -1594,26 +1513,24 @@ vq|VH57600|Very High Speed Modem at 57600,8-bit:\
<programlisting>ttyu0 "/usr/libexec/getty std.19200" dialup on</programlisting>
- <para>If your modem is locked at a different data rate,
+ <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 that
- you use a valid type listed in
+ instead of <literal>std.19200</literal>. Make sure to use
+ a valid type listed in
<filename>/etc/gettytab</filename>.</para>
</sect4>
<sect4>
<title>Matching-speed Config</title>
- <para>In a matching-speed configuration, your
+ <para>In a matching-speed configuration, the
<filename>ttys</filename> entry needs to reference the
- appropriate beginning <quote>auto-baud</quote> (sic) entry
- in <filename>/etc/gettytab</filename>. For example, if
- you added the above suggested entry for a matching-speed
- modem that starts at 19.2&nbsp;Kbps (the
- <filename>gettytab</filename> entry containing the
- <literal>V19200</literal> starting point), your
- <filename>ttys</filename> entry might look like
+ 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&nbsp;Kbps, the
+ <filename>/etc/ttys</filename> entry might look like
this:</para>
<programlisting>ttyu0 "/usr/libexec/getty V19200" dialup on</programlisting>
@@ -1630,16 +1547,16 @@ vq|VH57600|Very High Speed Modem at 57600,8-bit:\
<para>High-speed modems, like V.32, V.32bis, and V.34 modems,
need to use hardware (<literal>RTS/CTS</literal>) flow
- control. You can add <command>stty</command> commands to
- <filename>/etc/rc.d/serial</filename> to set the hardware
- flow control flag in the FreeBSD kernel for the modem
+ 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 serial port #1's
- (<devicename>COM2</devicename>) dial-in and dial-out
+ <para>For example, to set the <literal>termios</literal> flag
+ <varname>crtscts</varname> on
+ <devicename>COM2</devicename>'s dial-in and dial-out
initialization devices, the following lines could be added
to <filename>/etc/rc.d/serial</filename>:</para>
+
<programlisting># Serial port initial configuration
stty -f /dev/ttyu1.init crtscts
stty -f /dev/cuau1.init crtscts</programlisting>
@@ -1650,67 +1567,65 @@ stty -f /dev/cuau1.init crtscts</programlisting>
<sect2>
<title>Modem Settings</title>
- <para>If you have a modem whose parameters may be permanently
- set in non-volatile RAM, you will need to use a terminal
- program (such as <application>Telix</application> under
- &ms-dos; or <command>tip</command> under FreeBSD) to set the
- parameters. Connect to the modem using the same
- communications speed as the initial speed
- <command>getty</command> will use and configure the modem's
- non-volatile RAM to match these requirements:</para>
+ <para>For a modem whose parameters may be permanently set in
+ non-volatile RAM, a terminal program such as
+ <command>tip</command> can be used to set the parameters.
+ Connect to the modem using the same communications speed as
+ the initial speed <command>getty</command> will use and
+ configure the modem's non-volatile RAM to match these
+ requirements:</para>
<itemizedlist>
<listitem>
- <para><acronym>CD</acronym> asserted when connected</para>
+ <para><acronym>CD</acronym> asserted when connected.</para>
</listitem>
<listitem>
- <para><acronym>DTR</acronym> asserted for operation;
- dropping DTR hangs up line and resets modem</para>
+ <para><acronym>DTR</acronym> asserted for operation and
+ dropping DTR hangs up the line and resets the
+ modem.</para>
</listitem>
<listitem>
<para><acronym>CTS</acronym> transmitted data flow
- control</para>
+ control.</para>
</listitem>
<listitem>
<para>Disable <acronym>XON/XOFF</acronym> flow
- control</para>
+ control.</para>
</listitem>
<listitem>
<para><acronym>RTS</acronym> received data flow
- control</para>
+ control.</para>
</listitem>
<listitem>
- <para>Quiet mode (no result codes)</para>
+ <para>Quiet mode (no result codes).</para>
</listitem>
<listitem>
- <para>No command echo</para>
+ <para>No command echo.</para>
</listitem>
</itemizedlist>
- <para>Please read the documentation for your modem to find out
- what commands and/or DIP switch settings you need to give
- it.</para>
+ <para>Read the documentation for the modem to find out
+ which commands and/or DIP switch settings are needed.</para>
<para>For example, to set the above parameters on a &usrobotics;
- &sportster; 14,400 external modem, one could give these
- commands to the modem:</para>
+ &sportster; 14,400 external modem, give these commands to
+ the modem:</para>
<programlisting>ATZ
AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
- <para>You might also want to take this opportunity to adjust
- other settings in the modem, such as whether it will use
- V.42bis and/or MNP5 compression.</para>
+ <para>Other settings can be adjusted in the modem, such as
+ whether it will use V.42bis and/or MNP5 compression.</para>
<para>The &usrobotics; &sportster; 14,400 external modem also
- has some DIP switches that need to be set; for other modems,
- perhaps you can use these settings as an example:</para>
+ has some DIP switches that need to be set. Other modems,
+ may need these settings:</para>
<itemizedlist>
<listitem>
@@ -1753,19 +1668,19 @@ AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
<command>getty</command> mistakenly gives a
<prompt>login:</prompt> prompt to a modem that is in command
mode and the modem echoes the command or returns a result
- code. This sequence can result in a extended, silly
+ code. This sequence can result in an extended, silly
conversation between <command>getty</command> and the
modem.</para>
<sect3>
<title>Locked-speed Config</title>
- <para>For a locked-speed configuration, you will need to
- configure the modem to maintain a constant modem-to-computer
- data rate independent of the communications rate. On a
- &usrobotics; &sportster; 14,400 external modem, these
- commands will lock the modem-to-computer data rate at the
- speed used to issue the commands:</para>
+ <para>For a locked-speed configuration, configure the modem to
+ maintain a constant modem-to-computer data rate independent
+ of the communications rate. On a &usrobotics; &sportster;
+ 14,400 external modem, these commands will lock the
+ modem-to-computer data rate at the speed used to issue the
+ commands:</para>
<programlisting>ATZ
AT&amp;B1&amp;W</programlisting>
@@ -1774,12 +1689,12 @@ AT&amp;B1&amp;W</programlisting>
<sect3>
<title>Matching-speed Config</title>
- <para>For a variable-speed configuration, you will need to
- configure your modem to adjust its serial port data rate to
- match the incoming call rate. On a &usrobotics; &sportster;
- 14,400 external modem, these commands will lock the modem's
- error-corrected data rate to the speed used to issue the
- commands, but allow the serial port rate to vary for
+ <para>For a variable-speed configuration, configure the modem
+ to adjust its serial port data rate to match the incoming
+ call rate. On a &usrobotics; &sportster; 14,400 external
+ modem, these commands will lock the modem's error-corrected
+ data rate to the speed used to issue the commands, while
+ allowing the serial port rate to vary for
non-error-corrected connections:</para>
<programlisting>ATZ
@@ -1792,73 +1707,70 @@ AT&amp;B2&amp;W</programlisting>
<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;
- 14,400 external modems, the command
- <command>ATI5</command> displays the settings that are
- stored in the non-volatile RAM. To see the true operating
- parameters of the modem (as influenced by the modem's DIP
- switch settings), use the commands <command>ATZ</command>
+ 14,400 external modem, <command>ATI5</command> displays the
+ settings that are stored in the non-volatile RAM. To see
+ the true operating parameters of the modem, as influenced by
+ the modem's DIP switch settings, use <command>ATZ</command>
and then <command>ATI4</command>.</para>
- <para>If you have a different brand of modem, check your
- modem's manual to see how to double-check your modem's
- configuration parameters.</para>
+ <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>
<title>Troubleshooting</title>
- <para>Here are a few steps you can follow to check out the
- dial-up modem on your system.</para>
+ <para>Here are a few steps for troubleshooting a dial-up modem
+ on a &os; system.</para>
<sect3>
- <title>Checking Out the FreeBSD System</title>
+ <title>Checking Out the &os; System</title>
- <para>Hook up your modem to your FreeBSD system, boot the
- system, and, if your modem has status indication lights,
+ <para>Hook up the modem to the &os; system, boot the
+ system, and, if the modem has status indication lights,
watch to see whether the modem's <acronym>DTR</acronym>
indicator lights when the <prompt>login:</prompt> prompt
- appears on the system's console &mdash; if it lights up,
- that should mean that FreeBSD has started a
+ appears on the system's console. If it lights up, that
+ should mean that &os; has started a
<command>getty</command> process on the appropriate
communications port and is waiting for the modem to accept a
call.</para>
<para>If the <acronym>DTR</acronym> indicator does not light,
- login to the FreeBSD system through the console and issue a
- <command>ps ax</command> to see if FreeBSD is trying to run
- a <command>getty</command> process on the correct port. You
- should see lines like these among the processes
- displayed:</para>
+ login to the &os; system through the console and type
+ <command>ps ax</command> to see if &os; is trying to run
+ a <command>getty</command> process on the correct
+ port:</para>
<screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu1</screen>
- <para>If you see something different, like this:</para>
+ <para>If something like this is displayed instead:</para>
<screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyu0</screen>
<para>and the modem has not accepted a call yet, this means
that <command>getty</command> has completed its open on the
communications port. This could indicate a problem with the
- cabling or a mis-configured modem, because
+ cabling or a misconfigured modem, because
<command>getty</command> should not be able to open the
- communications port until <acronym>CD</acronym> (carrier
- detect) has been asserted by the modem.</para>
+ communications port until carrier detect has been asserted
+ by the modem.</para>
- <para>If you do not see any <command>getty</command> processes
- waiting to open the desired
+ <para>If no <command>getty</command> processes are waiting to
+ open the desired
<devicename>ttyu<replaceable>N</replaceable></devicename>
- port, double-check your entries in
+ port, double-check the entries in
<filename>/etc/ttys</filename> to see if there are any
- mistakes there. Also, check the log file
+ mistakes. Also, check
<filename>/var/log/messages</filename> to see if there are
any log messages from <command>init</command> or
- <command>getty</command> regarding any problems. If there
- are any messages, triple-check the configuration files
- <filename>/etc/ttys</filename> and
+ <command>getty</command>. If there are any messages,
+ triple-check <filename>/etc/ttys</filename> and
<filename>/etc/gettytab</filename>, as well as the
- appropriate device special files
+ appropriate device special files,
<filename>/dev/ttyuN</filename>, for any mistakes, missing
entries, or missing device special files.</para>
</sect3>
@@ -1866,53 +1778,49 @@ AT&amp;B2&amp;W</programlisting>
<sect3>
<title>Try Dialing In</title>
- <para>Try dialing into the system; be sure to use 8 bits, no
- parity, and 1 stop bit on the remote system. If you do not
- get a prompt right away, or get garbage, try pressing
- <keycap>Enter</keycap> about once per second. If you still
- do not see a <prompt>login:</prompt> prompt after a while,
- try sending a <command>BREAK</command>. If you are using a
- high-speed modem to do the dialing, try dialing again after
- locking the dialing modem's interface speed (via
- <command>AT&amp;B1</command> on a &usrobotics; &sportster;
- modem, for example).</para>
-
- <para>If you still cannot get a <prompt>login:</prompt>
+ <para>Try dialing into the system. Be sure to use 8 bits, no
+ parity, and 1 stop bit on the remote system. If a prompt
+ does not appear right away, or the prompt shows garbage, try
+ pressing <keycap>Enter</keycap> about once per second. If
+ there is still no <prompt>login:</prompt> prompt after a
+ while, try sending a <command>BREAK</command>. When using a
+ high-speed modem, try dialing again after locking the
+ dialing modem's interface speed.</para>
+
+ <para>If there is still no <prompt>login:</prompt>
prompt, check <filename>/etc/gettytab</filename> again and
- double-check that</para>
+ double-check that:</para>
<itemizedlist>
<listitem>
- <para>The initial capability name specified in
- <filename>/etc/ttys</filename> for the line matches a
- name of a capability in
- <filename>/etc/gettytab</filename></para>
+ <para>The initial capability name specified in the entry
+ in <filename>/etc/ttys</filename> matches the name of
+ a capability in
+ <filename>/etc/gettytab</filename>.</para>
</listitem>
<listitem>
<para>Each <literal>nx=</literal> entry matches another
- <filename>gettytab</filename> capability name</para>
+ <filename>gettytab</filename> capability name.</para>
</listitem>
<listitem>
<para>Each <literal>tc=</literal> entry matches another
- <filename>gettytab</filename> capability name</para>
+ <filename>gettytab</filename> capability name.</para>
</listitem>
</itemizedlist>
- <para>If you dial but the modem on the FreeBSD system will not
- answer, make sure that the modem is configured to answer the
- phone when <acronym>DTR</acronym> is asserted. If the modem
- seems to be configured correctly, verify that the
+ <para>If the modem on the &os; system will not answer, make
+ sure that the modem is configured to answer the phone when
+ <acronym>DTR</acronym> is asserted. If the modem seems to
+ be configured correctly, verify that the
<acronym>DTR</acronym> line is asserted by checking the
- modem's indicator lights (if it has any).</para>
-
- <para>If you have gone over everything several times and it
- still does not work, take a break and come back to it later.
- If it still does not work, perhaps you can send an
- electronic mail message to the &a.questions; describing your
- modem and your problem, and the good folks on the list will
- try to help.</para>
+ modem's indicator lights.</para>
+
+ <para>If it still does not work, take a break and come back to
+ it later. If it still does not work, try sending an
+ email message to the &a.questions; describing the modem
+ and the problem.</para>
</sect3>
</sect2>
@@ -1921,115 +1829,98 @@ AT&amp;B2&amp;W</programlisting>
<sect1 id="dialout">
<title>Dial-out Service</title>
- <warning>
- <para>As of &os; 8.0, device nodes for serial ports have been
- renamed from
- <filename>/dev/cuad<replaceable>N</replaceable></filename> to
- <filename>/dev/cuau<replaceable>N</replaceable></filename>.
- &os;&nbsp;7.X users will have to adapt the following
- documentation according to these changes.</para>
- </warning>
-
<indexterm><primary>dial-out service</primary></indexterm>
- <para>The following are tips for getting your host to be able to
- connect over the modem to another computer. This is appropriate
- for establishing a terminal session with a remote host.</para>
-
- <para>This is useful to log onto a BBS.</para>
+ <para>The following are tips for getting the host to connect over
+ the modem to another computer. This is appropriate for
+ establishing a terminal session with a remote host.</para>
- <para>This kind of connection can be extremely helpful to get a
- file on the Internet if you have problems with PPP. If you need
- to FTP something and PPP is broken, use the terminal session to
- FTP it. Then use zmodem to transfer it to your machine.</para>
+ <para>This kind of connection can be helpful to get a file on the
+ Internet if there are problems using PPP. If PPP is not
+ working, use the terminal session to FTP the needed file. Then
+ use zmodem to transfer it to the machine.</para>
<sect2 id="hayes-unsupported">
- <title>My Stock Hayes Modem Is Not Supported, What Can I
- Do?</title>
+ <title>Using a Stock Hayes Modem</title>
- <para>Actually, the manual page for <command>tip</command> is
- out of date. There is a generic Hayes dialer already built
- in. Just use <literal>at=hayes</literal> in your
- <filename>/etc/remote</filename> file.</para>
+ <para>A generic Hayes dialer is built into
+ <command>tip</command>. Use <literal>at=hayes</literal> in
+ <filename>/etc/remote</filename>.</para>
<para>The Hayes driver is not smart enough to recognize some of
- the advanced features of newer modems&mdash;messages like
+ the advanced features of newer modems messages like
<literal>BUSY</literal>, <literal>NO DIALTONE</literal>, or
- <literal>CONNECT 115200</literal> will just confuse it. You
- should turn those messages off when you use
- <command>tip</command> (using
- <command>ATX0&amp;W</command>).</para>
-
- <para>Also, the dial timeout for <command>tip</command> is 60
- seconds. Your modem should use something less, or else tip
- will think there is a communication problem. Try
- <command>ATS7=45&amp;W</command>.</para>
+ <literal>CONNECT 115200</literal>. Turn those messages off
+ when using <command>tip</command> with
+ <command>ATX0&amp;W</command>.</para>
+
+ <para>The dial timeout for <command>tip</command> is 60
+ seconds. The modem should use something less, or else
+ <command>tip</command> will think there is a communication
+ problem. Try <command>ATS7=45&amp;W</command>.</para>
</sect2>
<sect2 id="direct-at">
- <title>How Am I Expected to Enter These <literal>AT</literal>
- Commands?</title>
+ <title>Using <literal>AT</literal> Commands</title>
<indexterm>
<primary><filename>/etc/remote</filename></primary>
</indexterm>
- <para>Make what is called a <quote>direct</quote> entry in your
- <filename>/etc/remote</filename> file. For example, if your
+ <para>Create a <quote>direct</quote> entry in
+ <filename>/etc/remote</filename>. For example, if the
modem is hooked up to the first serial port,
- <filename>/dev/cuau0</filename>, then put in the following
+ <filename>/dev/cuau0</filename>, use the following
line:</para>
<programlisting>cuau0:dv=/dev/cuau0:br#19200:pa=none</programlisting>
- <para>Use the highest bps rate your modem supports in the br
- capability. Then, type <command>tip cuau0</command> and you
- will be connected to your modem.</para>
+ <para>Use the highest <acronym>bps</acronym> rate the modem
+ supports in the <literal>br</literal> capability. Then, type
+ <command>tip cuau0</command> to connect to the modem.</para>
- <para>Or use <command>cu</command> as <username>root</username>
+ <para>Or, use <command>cu</command> as <username>root</username>
with the following command:</para>
<screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
- <para><replaceable>line</replaceable> is the serial port
- (e.g., <filename>/dev/cuau0</filename>) and
- <replaceable>speed</replaceable> is the speed (e.g.,
- <literal>57600</literal>). When you are done entering the AT
- commands type <command>~.</command> to exit.</para>
+ <para><replaceable>line</replaceable> is the serial port, such
+ as <filename>/dev/cuau0</filename>, and
+ <replaceable>speed</replaceable> is the speed, such as
+ <literal>57600</literal>. When finished entering the AT
+ commands, type <command>~.</command> to exit.</para>
</sect2>
<sect2 id="gt-failure">
- <title>The <literal>@</literal> Sign for the pn Capability Does
- Not Work!</title>
+ <title>The <literal>@</literal> Sign Does Not Work</title>
<para>The <literal>@</literal> sign in the phone number
- capability tells tip to look in
- <filename>/etc/phones</filename> for a phone number. But the
+ capability tells <command>tip</command> to look in
+ <filename>/etc/phones</filename> for a phone number. But, the
<literal>@</literal> sign is also a special character in
- capability files like <filename>/etc/remote</filename>.
- Escape it with a backslash:</para>
+ capability files like <filename>/etc/remote</filename>, so it
+ needs to be escaped with a backslash:</para>
<programlisting>pn=\@</programlisting>
</sect2>
<sect2 id="dial-command-line">
- <title>How Can I Dial a Phone Number on the Command
- Line?</title>
+ <title>Dialing from the Command Line</title>
- <para>Put what is called a <quote>generic</quote> entry in your
- <filename>/etc/remote</filename> file. For example:</para>
+ <para>Put a <quote>generic</quote> entry in
+ <filename>/etc/remote</filename>. For example:</para>
<programlisting>tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:</programlisting>
- <para>Then you can do things like:</para>
+ <para>This should now work:</para>
<screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>
- <para>If you prefer <command>cu</command> over
- <command>tip</command>, use a generic <literal>cu</literal>
- entry:</para>
+ <para>Users who prefer <command>cu</command> over
+ <command>tip</command>, can use a generic
+ <literal>cu</literal> entry:</para>
<programlisting>cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:</programlisting>
@@ -2040,26 +1931,31 @@ tip57600|Dial any phone number at 57600 bps:\
</sect2>
<sect2 id="set-bps">
- <title>Do I Have to Type in the bps Rate Every Time I Do
- That?</title>
+ <title>Setting the <acronym>bps</acronym> Rate</title>
<para>Put in an entry for <literal>tip1200</literal> or
- <literal>cu1200</literal>, but go ahead and use whatever bps
- rate is appropriate with the br capability.
+ <literal>cu1200</literal>, but go ahead and use whatever
+ <acronym>bps</acronym> rate is appropriate with the
+ <literal>br</literal> capability.
<command>tip</command> thinks a good default is 1200&nbsp;bps
which is why it looks for a <literal>tip1200</literal> entry.
- You do not have to use 1200&nbsp;bps, though.</para>
+ 1200&nbsp;bps does not have to be used, though.</para>
</sect2>
<sect2 id="terminal-server">
- <title>I Access a Number of Hosts Through a Terminal
+ <title>Accessing a Number of Hosts Through a Terminal
Server</title>
- <para>Rather than waiting until you are connected and typing
+ <para>Rather than waiting until connected and typing
<command>CONNECT <replaceable>host</replaceable></command>
- each time, use tip's <literal>cm</literal> capability. For
- example, these entries in
- <filename>/etc/remote</filename>:</para>
+ each time, use <command>tip</command>'s <literal>cm</literal>
+ capability. For example, these entries in
+ <filename>/etc/remote</filename> will let you type
+ <command>tip pain</command> or
+ <command>tip muffin</command> to connect to the hosts
+ <hostid>pain</hostid> or <hostid>muffin</hostid>, and
+ <command>tip deep13</command> to connect to the terminal
+ server.</para>
<programlisting>pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
@@ -2068,30 +1964,26 @@ muffin|muffin.deep13.com|Frank's machine:\
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
- <para>will let you type <command>tip pain</command> or
- <command>tip muffin</command> to connect to the hosts
- <hostid>pain</hostid> or <hostid>muffin</hostid>, and
- <command>tip deep13</command> to get to the terminal
- server.</para>
</sect2>
<sect2 id="tip-multiline">
- <title>Can Tip Try More Than One Line for Each Site?</title>
+ <title>Using More Than One Line with
+ <command>tip</command></title>
<para>This is often a problem where a university has several
modem lines and several thousand students trying to use
them.</para>
- <para>Make an entry for your university in
- <filename>/etc/remote</filename> and use <literal>@</literal>
- for the <literal>pn</literal> capability:</para>
+ <para>Make an entry in <filename>/etc/remote</filename> and use
+ <literal>@</literal> for the <literal>pn</literal>
+ capability:</para>
<programlisting>big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuau3:br#9600:at=courier:du:pa=none:</programlisting>
- <para>Then, list the phone numbers for the university in
+ <para>Then, list the phone numbers in
<filename>/etc/phones</filename>:</para>
<programlisting>big-university 5551111
@@ -2099,38 +1991,31 @@ big-university 5551112
big-university 5551113
big-university 5551114</programlisting>
- <para><command>tip</command> will try each one in the listed
- order, then give up. If you want to keep retrying, run
- <command>tip</command> in a while loop.</para>
+ <para><command>tip</command> will try each number in the listed
+ order, then give up. To keep retrying, run
+ <command>tip</command> in a <literal>while</literal>
+ loop.</para>
</sect2>
<sect2 id="multi-controlp">
- <title>Why Do I Have to Hit
- <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>P</keycap>
- </keycombo>
- Twice to Send
- <keycombo action="simul">
+ <title>Using the Force Character</title>
+
+ <para><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>P</keycap>
- </keycombo>
- Once?</title>
-
- <para><keycombo
- action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
- is the default <quote>force</quote> character, used to tell
- <command>tip</command> that the next character is literal
- data. You can set the force character to any other character
- with the <command>~s</command> escape, which means <quote>set
- a variable.</quote></para>
+ </keycombo> is the default <quote>force</quote> character,
+ used to tell <command>tip</command> that the next character is
+ literal data. The force character can be set to any other
+ character with the <command>~s</command> escape, which means
+ <quote>set a variable.</quote></para>
<para>Type
<command>~sforce=<replaceable>single-char</replaceable></command>
followed by a newline. <replaceable>single-char</replaceable>
- is any single character. If you leave out
- <replaceable>single-char</replaceable>, then the force
- character is the nul character, which you can get by typing
+ is any single character. If
+ <replaceable>single-char</replaceable> is left out, then the
+ force character is the null character, which is accessed by
+ typing
<keycombo action="simul">
<keycap>Ctrl</keycap><keycap>2</keycap>
</keycombo>
@@ -2145,37 +2030,35 @@ big-university 5551114</programlisting>
</keycombo>, which is only used on some terminal
servers.</para>
- <para>You can have the force character be whatever you want by
- specifying the following in your
- <filename>&#36;HOME/.tiprc</filename> file:</para>
+ <para>To change the force character, specify the following in
+ <filename>~/.tiprc</filename>:</para>
<programlisting>force=<replaceable>single-char</replaceable></programlisting>
</sect2>
<sect2 id="uppercase">
- <title>Suddenly Everything I Type Is in Upper Case??</title>
+ <title>Upper Case Characters</title>
- <para>You must have pressed
+ <para>This happens when
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>A</keycap>
- </keycombo>, <command>tip</command>'s
- <quote>raise character,</quote> specially designed for people
- with broken caps-lock keys. Use <command>~s</command> as
- above and set the variable <literal>raisechar</literal> to
- something reasonable. In fact, you can set it to the same as
- the force character, if you never expect to use either of
- these features.</para>
-
- <para>Here is a sample <filename>.tiprc</filename> file perfect
- for <application>Emacs</application> users who need to type
+ </keycombo> is pressed, which is <command>tip</command>'s
+ <quote>raise character</quote>, specially designed for people
+ with broken caps-lock keys. Use <command>~s</command> to set
+ <literal>raisechar</literal> to something reasonable. It can
+ be set to be the same as the force character, if neither
+ feature is used.</para>
+
+ <para>Here is a sample <filename>~/.tiprc</filename> for
+ <application>Emacs</application> users who need to type
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>2</keycap>
</keycombo> and <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>A</keycap>
- </keycombo> a lot:</para>
+ </keycombo>:</para>
<programlisting>force=^^
raisechar=^^</programlisting>
@@ -2188,12 +2071,11 @@ raisechar=^^</programlisting>
</sect2>
<sect2 id="tip-filetransfer">
- <title>How Can I Do File Transfers with
- <command>tip</command>?</title>
+ <title>File Transfers with <command>tip</command></title>
- <para>If you are talking to another &unix; system, you can send
- and receive files with <command>~p</command> (put) and
- <command>~t</command> (take). These commands run
+ <para>When talking to another &unix;-like operating system,
+ files can be sent and received using <command>~p</command>
+ (put) and <command>~t</command> (take). These commands run
<command>cat</command> and <command>echo</command> on the
remote system to accept and send files. The syntax is:</para>
@@ -2209,12 +2091,12 @@ raisechar=^^</programlisting>
<arg choice="opt">local-file</arg>
</cmdsynopsis>
- <para>There is no error checking, so you probably should use
- another protocol, like zmodem.</para>
+ <para>There is no error checking, so another protocol, like
+ zmodem, should probably be used.</para>
</sect2>
<sect2 id="zmodem-tip">
- <title>How Can I Run <application>zmodem</application> with
+ <title>Using <application>zmodem</application> with
<command>tip</command>?</title>
<para>To receive files, start the sending program on the remote
@@ -2247,46 +2129,35 @@ raisechar=^^</programlisting>
</sect1info>
<title>Setting Up the Serial Console</title>
- <warning>
- <para>As of &os; 8.0, device nodes for serial ports have been
- renamed from
- <filename>/dev/ttyd<replaceable>N</replaceable></filename> to
- <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
- &os;&nbsp;7.X users will have to adapt the following
- documentation according to these changes.</para>
- </warning>
-
<indexterm><primary>serial console</primary></indexterm>
<sect2 id="serialconsole-intro">
<title>Introduction</title>
- <para>FreeBSD has the ability to boot on a system with only
- a dumb terminal on a serial port as a console. Such a
- configuration should be useful for two classes of people:
- system administrators who wish to install FreeBSD on machines
- that have no keyboard or monitor attached, and developers who
- want to debug the kernel or device drivers.</para>
+ <para>&os; has the ability to boot a system with a dumb
+ terminal on a serial port as a console. This configuration is
+ useful for system administrators who wish to install &os; on
+ machines that have no keyboard or monitor attached, and
+ developers who want to debug the kernel or device
+ drivers.</para>
- <para>As described in <xref linkend="boot"/>, FreeBSD employs a
- three stage bootstrap. The first two stages are in the boot
- block code which is stored at the beginning of the FreeBSD
- slice on the boot disk. The boot block will then load and run
- the boot loader (<filename>/boot/loader</filename>) as the
- third stage code.</para>
+ <para>As described in <link linkend="boot"></link>, &os; employs
+ a three stage bootstrap. The first two stages are in the boot
+ block code which is stored at the beginning of the &os;
+ slice on the boot disk. The boot block then loads and runs
+ the boot loader as the third stage code.</para>
- <para>In order to set up the serial console you must configure
- the boot block code, the boot loader code and the
- kernel.</para>
+ <para>In order to set up booting from a serial console, the
+ boot block code, the boot loader code, and the kernel need to
+ be configured.</para>
</sect2>
<sect2 id="serialconsole-howto-fast">
- <title>Serial Console Configuration, Terse Version</title>
+ <title>Quick Serial Console Configuration</title>
- <para>This section assumes that you are using the default setup
- and just want a fast overview of setting up the serial
- console.</para>
+ <para>This section assumes the default setup and provides a fast
+ overview of setting up the serial console.</para>
<procedure>
@@ -2297,9 +2168,9 @@ raisechar=^^</programlisting>
</step>
<step>
- <para>To see all boot messages on the serial console, issue
- the following command while logged in as the
- superuser:</para>
+ <para>To see all the boot messages on the serial console,
+ issue the following command as the superuser:</para>
+
<screen>&prompt.root; echo 'console="comconsole"' &gt;&gt; /boot/loader.conf</screen>
</step>
@@ -2307,7 +2178,7 @@ raisechar=^^</programlisting>
<para>Edit <filename>/etc/ttys</filename> and change
<literal>off</literal> to <literal>on</literal> and
<literal>dialup</literal> to <literal>vt100</literal> for
- the <devicename>ttyu0</devicename> entry. Otherwise a
+ the <devicename>ttyu0</devicename> entry. Otherwise, a
password will not be required to connect via the serial
console, resulting in a potential security hole.</para>
</step>
@@ -2319,50 +2190,47 @@ raisechar=^^</programlisting>
</procedure>
- <para>If a different configuration is required, a more in depth
- configuration explanation exists in
- <xref linkend="serialconsole-howto"/>.</para>
+ <para>If a different configuration is required, see the next
+ section for a more in-depth configuration explanation.</para>
</sect2>
<sect2 id="serialconsole-howto">
- <title>Serial Console Configuration</title>
+ <title>In-Depth Serial Console Configuration</title>
<procedure>
<step>
<para>Prepare a serial cable.</para>
<indexterm><primary>null-modem cable</primary></indexterm>
- <para>You will need either a null-modem cable or a standard
- serial cable and a null-modem adapter. See <xref
- linkend="serial-cables-ports"/> for a discussion on
- serial cables.</para>
+
+ <para>Use either a null-modem cable or a standard serial
+ cable and a null-modem adapter. See <link
+ linkend="serial-cables-ports"></link> for a discussion
+ on serial cables.</para>
</step>
<step>
- <para>Unplug your keyboard.</para>
+ <para>Unplug the keyboard.</para>
- <para>Most PC systems probe for the keyboard during the
- Power-On Self-Test (POST) and will generate an error if
- the keyboard is not detected. Some machines complain
- loudly about the lack of a keyboard and will not continue
- to boot until it is plugged in.</para>
+ <para>Many PC systems probe for the keyboard during the
+ Power-On Self-Test (<acronym>POST</acronym>) and will
+ generate an error if the keyboard is not detected. Some
+ machines will refuse to boot until the keyboard is plugged
+ in.</para>
- <para>If your computer complains about the error, but boots
- anyway, then you do not have to do anything special.
- (Some machines with Phoenix BIOS installed merely say
- <errorname>Keyboard failed</errorname> and continue to
- boot normally.)</para>
+ <para>If the computer complains about the error, but boots
+ anyway, no further configuration is needed.</para>
- <para>If your computer refuses to boot without a keyboard
- attached then you will have to configure the BIOS so that
- it ignores this error (if it can). Consult your
- motherboard's manual for details on how to do this.</para>
+ <para>If the computer refuses to boot without a keyboard
+ attached, the BIOS needs to be configured so that it
+ ignores this error (if it can). Consult the motherboard's
+ manual for details on how to do this.</para>
<tip>
- <para>Set the keyboard to <quote>Not installed</quote> in
- the BIOS setup. You will still be able to use your
- keyboard. All this does is tell the BIOS not to probe
- for a keyboard at power-on. Your BIOS should not
+ <para>Try setting the keyboard to <quote>Not
+ installed</quote> in the BIOS. The keyboard can still
+ be used as this setting just tells the BIOS not to probe
+ for a keyboard at power-on. The BIOS should not
complain if the keyboard is absent. You can leave the
keyboard plugged in even with this flag set to
<quote>Not installed</quote> and the keyboard will still
@@ -2374,16 +2242,12 @@ raisechar=^^</programlisting>
</tip>
<note>
- <para>If your system has a &ps2; mouse, chances are very
- good that you may have to unplug your mouse as well as
- your keyboard. This is because &ps2; mice share some
- hardware with the keyboard and leaving the mouse plugged
- in can fool the keyboard probe into thinking the
- keyboard is still there. It is said that a Gateway 2000
- Pentium 90&nbsp;MHz system with an AMI BIOS that behaves
- this way. In general, this is not a problem since the
- mouse is not much good without the keyboard
- anyway.</para>
+ <para>If the system has a &ps2; mouse, chances are good
+ that both the mouse and keyboard need to be unplugged.
+ This is because &ps2; mice share some hardware with the
+ keyboard and leaving the mouse plugged in can fool the
+ keyboard probe into thinking the keyboard is still
+ there.</para>
</note>
</step>
@@ -2392,30 +2256,23 @@ raisechar=^^</programlisting>
<devicename>COM1</devicename>
(<devicename>sio0</devicename>).</para>
- <para>If you do not have a dumb terminal, you can use an old
- PC/XT with a modem program, or the serial port on another
- &unix; box. If you do not have a
+ <para>If a dumb terminal is not available, use an old
+ computer with a modem program, or the serial port on
+ another &unix; box. If there is no
<devicename>COM1</devicename>
(<devicename>sio0</devicename>), get one. At this time,
there is no way to select a port other than
<devicename>COM1</devicename> for the boot blocks without
- recompiling the boot blocks. If you are already using
- <devicename>COM1</devicename> for another device, you will
- have to temporarily remove that device and install a new
- boot block and kernel once you get FreeBSD up and running.
- (It is assumed that <devicename>COM1</devicename> will
- be available on a file/compute/terminal server anyway; if
- you really need <devicename>COM1</devicename> for
- something else (and you cannot switch that something else
- to <devicename>COM2</devicename>
- (<devicename>sio1</devicename>)), then you probably should
- not even be bothering with all this in the first
- place.)</para>
+ recompiling the boot blocks. If
+ <devicename>COM1</devicename> is being used by another
+ device, temporarily remove that device and install a new
+ boot block and kernel once &os; is up and running.</para>
</step>
<step>
- <para>Make sure the configuration file of your kernel has
- appropriate flags set for <devicename>COM1</devicename>
+ <para>Make sure the configuration file of the custom kernel
+ has appropriate flags set for
+ <devicename>COM1</devicename>
(<devicename>sio0</devicename>).</para>
<para>Relevant flags are:</para>
@@ -2428,10 +2285,10 @@ raisechar=^^</programlisting>
<para>Enables console support for this unit. The
other console flags are ignored unless this is set.
Currently, at most one unit can have console
- support; the first one (in config file order) with
+ support. The first one, in config file order, with
this flag set is preferred. This option alone will
not make the serial port the console. Set the
- following flag or use the <option>-h</option> option
+ following flag or use <option>-h</option> as
described below, together with this flag.</para>
</listitem>
</varlistentry>
@@ -2440,11 +2297,11 @@ raisechar=^^</programlisting>
<term><literal>0x20</literal></term>
<listitem>
- <para>Forces this unit to be the console (unless there
- is another higher priority console), regardless of
- the <option>-h</option> option discussed below.
- The flag <literal>0x20</literal> must be used
- together with the <option>0x10</option> flag.</para>
+ <para>Forces this unit to be the console, unless there
+ is another higher priority console, regardless of
+ <option>-h</option> as discussed below. The flag
+ <literal>0x20</literal> must be used together with
+ the <option>0x10</option> flag.</para>
</listitem>
</varlistentry>
@@ -2454,27 +2311,25 @@ raisechar=^^</programlisting>
<listitem>
<para>Reserves this unit (in conjunction with
<literal>0x10</literal>) and makes the unit
- unavailable for normal access. You should not set
- this flag to the serial port unit which you want to
- use as the serial console. The only use of this
- flag is to designate the unit for kernel remote
- debugging. See <ulink
- url="&url.books.developers-handbook;/index.html">The
+ unavailable for normal access. This flag should
+ not be set to the serial port to use as the serial
+ console. The only use of this flag is to designate
+ the unit for kernel remote debugging. See <ulink
+ url="&url.books.developers-handbook;/index.html">The
Developer's Handbook</ulink> for more information on
remote debugging.</para>
</listitem>
</varlistentry>
</variablelist>
- <para>Example:</para>
+ <para>Here is an example setting:</para>
<programlisting>device sio0 flags 0x10</programlisting>
- <para>See the &man.sio.4; manual page for more
- details.</para>
+ <para>Refer to &man.sio.4; for more details.</para>
- <para>If the flags were not set, you need to run UserConfig
- (on a different console) or recompile the kernel.</para>
+ <para>If the flags were not set, run UserConfig on a
+ different console or recompile the kernel.</para>
</step>
<step>
@@ -2482,26 +2337,26 @@ raisechar=^^</programlisting>
directory of the <literal>a</literal> partition on the
boot drive.</para>
- <para>This file will instruct the boot block code how you
- would like to boot the system. In order to activate the
- serial console, you need one or more of the following
- options&mdash;if you want multiple options, include them
- all on the same line:</para>
+ <para>This file instructs the boot block code how to boot
+ the system. In order to activate the serial console,
+ one or more of the following options are needed. When
+ using multiple options, include them all on the same
+ line:</para>
<variablelist>
<varlistentry>
<term><option>-h</option></term>
<listitem>
- <para>Toggles internal and serial consoles. You can
- use this to switch console devices. For instance,
- if you boot from the internal (video) console, you
- can use <option>-h</option> to direct the boot
- loader and the kernel to use the serial port as its
- console device. Alternatively, if you boot from the
- serial port, you can use the <option>-h</option> to
- tell the boot loader and the kernel to use the video
- display as the console instead.</para>
+ <para>Toggles between the internal and serial
+ consoles. Use this to switch console devices. For
+ instance, to boot from the internal (video) console,
+ use <option>-h</option> to direct the boot loader
+ and the kernel to use the serial port as its console
+ device. Alternatively, to boot from the serial
+ port, use <option>-h</option> to tell the boot
+ loader and the kernel to use the video display as
+ the console instead.</para>
</listitem>
</varlistentry>
@@ -2509,19 +2364,19 @@ raisechar=^^</programlisting>
<term><option>-D</option></term>
<listitem>
- <para>Toggles single and dual console configurations.
- In the single configuration the console will be
- either the internal console (video display) or the
- serial port, depending on the state of the
- <option>-h</option> option above. In the dual
- console configuration, both the video display and
- the serial port will become the console at the same
- time, regardless of the state of the
- <option>-h</option> option. However, note that the
- dual console configuration takes effect only during
- the boot block is running. Once the boot loader
- gets control, the console specified by the
- <option>-h</option> option becomes the only
+ <para>Toggles between the single and dual console
+ configurations. In the single configuration, the
+ console will be either the internal console (video
+ display) or the serial port, depending on the state
+ of <option>-h</option>. In the dual console
+ configuration, both the video display and the
+ serial port will become the console at the same
+ time, regardless of the state of
+ <option>-h</option>. However, the dual console
+ configuration takes effect only while the boot
+ block is running. Once the boot loader gets
+ control, the console specified by
+ <option>-h</option> becomes the only
console.</para>
</listitem>
</varlistentry>
@@ -2537,56 +2392,53 @@ raisechar=^^</programlisting>
<note>
<para>Due to space constraints in the current
- version of the boot blocks, the
- <option>-P</option> option is capable of
- detecting extended keyboards only. Keyboards with
- less than 101 keys (and without F11 and F12 keys)
- may not be detected. Keyboards on some laptop
- computers may not be properly found because of
- this limitation. If this is the case with your
- system, you have to abandon using the
- <option>-P</option> option. Unfortunately there
- is no workaround for this problem.</para>
+ version of the boot blocks,
+ <option>-P</option> is capable of detecting
+ extended keyboards only. Keyboards with less
+ than 101 keys and without F11 and F12 keys may
+ not be detected. Keyboards on some laptops
+ may not be properly found because of this
+ limitation. If this is the case, do not use
+ <option>-P</option>. Unfortunately there is no
+ workaround for this problem.</para>
</note>
</listitem>
</varlistentry>
</variablelist>
- <para>Use either the <option>-P</option> option to select
- the console automatically, or the <option>-h</option>
- option to activate the serial console.</para>
-
- <para>You may include other options described in
- &man.boot.8; as well.</para>
-
- <para>The options, except for <option>-P</option>, will be
- passed to the boot loader
- (<filename>/boot/loader</filename>). The boot loader will
- determine which of the internal video or the serial port
- should become the console by examining the state of the
- <option>-h</option> option alone. This means that if you
- specify the <option>-D</option> option but not the
- <option>-h</option> option in
- <filename>/boot.config</filename>, you can use the
- serial port as the console only during the boot block;
- the boot loader will use the internal video display as the
+ <para>Use either <option>-P</option> to select the
+ console automatically, or <option>-h</option> to
+ activate the serial console.</para>
+
+ <para>Other options are described in &man.boot.8;.</para>
+
+ <para>The options, except for <option>-P</option>, are
+ passed to the boot loader. The boot loader will
+ determine whether the internal video or the serial port
+ should become the console by examining the state of
+ <option>-h</option>. This means that if
+ <option>-D</option> is specified but
+ <option>-h</option> is not specified in
+ <filename>/boot.config</filename>, the serial port can
+ be used as the console only during the boot block as the
+ boot loader will use the internal video display as the
console.</para>
</step>
<step>
<para>Boot the machine.</para>
- <para>When you start your FreeBSD box, the boot blocks will
- echo the contents of <filename>/boot.config</filename> to
- the console. For example:</para>
+ <para>When &os; starts, the boot blocks echo the contents of
+ <filename>/boot.config</filename> to the console. For
+ example:</para>
<screen>/boot.config: -P
Keyboard: no</screen>
- <para>The second line appears only if you put
- <option>-P</option> in <filename>/boot.config</filename>
- and indicates presence/absence of the keyboard. These
- messages go to either serial or internal console, or both,
+ <para>The second line appears only if <option>-P</option> is
+ in <filename>/boot.config</filename> and indicates the
+ presence or absence of the keyboard. These messages go
+ to either the serial or internal console, or both,
depending on the option in
<filename>/boot.config</filename>.</para>
@@ -2633,54 +2485,53 @@ Keyboard: no</screen>
</tgroup>
</informaltable>
- <para>After the above messages, there will be a small pause
- before the boot blocks continue loading the boot loader
- and before any further messages printed to the console.
- Under normal circumstances, you do not need to interrupt
- the boot blocks, but you may want to do so in order to
- make sure things are set up correctly.</para>
+ <para>After the message, there will be a small pause before
+ the boot blocks continue loading the boot loader and
+ before any further messages are printed to the console.
+ Under normal circumstances, there is no need to interrupt
+ the boot blocks, but one can do so in order to make sure
+ things are set up correctly.</para>
- <para>Hit any key, other than <keycap>Enter</keycap>, at the
- console to interrupt the boot process. The boot blocks
- will then prompt you for further action. You should now
- see something like:</para>
+ <para>Press any key, other than <keycap>Enter</keycap>, at
+ the console to interrupt the boot process. The boot
+ blocks will then prompt for further action:</para>
<screen>&gt;&gt; FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:</screen>
- <para>Verify the above message appears on either the serial
- or internal console or both, according to the options you
- put in <filename>/boot.config</filename>. If the message
- appears in the correct console, hit <keycap>Enter</keycap>
- to continue the boot process.</para>
-
- <para>If you want the serial console but you do not see the
- prompt on the serial terminal, something is wrong with
- your settings. In the meantime, you enter
- <option>-h</option> and hit <keycap>Enter</keycap> or
- <keycap>Return</keycap> (if possible) to tell the boot
- block (and then the boot loader and the kernel) to choose
- the serial port for the console. Once the system is up,
- go back and check what went wrong.</para>
+ <para>Verify that the above message appears on either the
+ serial or internal console, or both, according to the
+ options in <filename>/boot.config</filename>. If the
+ message appears in the correct console, press
+ <keycap>Enter</keycap> to continue the boot
+ process.</para>
+
+ <para>If there is no prompt on the serial terminal,
+ something is wrong with the settings. Enter
+ <option>-h</option> then <keycap>Enter</keycap> or
+ <keycap>Return</keycap> to tell the boot block (and then
+ the boot loader and the kernel) to choose the serial port
+ for the console. Once the system is up, go back and check
+ what went wrong.</para>
</step>
</procedure>
- <para>After the boot loader is loaded and you are in the third
- stage of the boot process you can still switch between the
- internal console and the serial console by setting appropriate
- environment variables in the boot loader. See <xref
- linkend="serialconsole-loader"/>.</para>
+ <para>During the third stage of the boot process, one can still
+ switch between the internal console and the serial console by
+ setting appropriate environment variables in the boot loader.
+ See <link linkend="serialconsole-loader"></link> for more
+ information.</para>
</sect2>
<sect2 id="serialconsole-summary">
<title>Summary</title>
- <para>Here is the summary of various settings discussed in this
- section and the console eventually selected.</para>
+ <para>Here is the summary of the various settings discussed in
+ this section:</para>
<sect3>
- <title>Case 1: You Set the Flags to 0x10 for
+ <title>Case 1: Set the Flags to 0x10 for
<devicename>sio0</devicename></title>
<programlisting>device sio0 flags 0x10</programlisting>
@@ -2744,7 +2595,7 @@ boot:</screen>
</sect3>
<sect3>
- <title>Case 2: You Set the Flags to 0x30 for
+ <title>Case 2: Set the Flags to 0x30 for
<devicename>sio0</devicename></title>
<programlisting>device sio0 flags 0x30</programlisting>
@@ -2814,45 +2665,41 @@ boot:</screen>
<sect3>
<title>Setting a Faster Serial Port Speed</title>
- <para>By default, the serial port settings are: 9600 baud, 8
- bits, no parity, and 1 stop bit. If you wish to change the
- default console speed, you have the following
- options:</para>
+ <para>By default, the serial port settings are 9600 baud, 8
+ bits, no parity, and 1 stop bit. To change the default
+ console speed, the following options are available:</para>
<itemizedlist>
<listitem>
- <para>Recompile the boot blocks
- with <makevar>BOOT_COMCONSOLE_SPEED</makevar> set to the
- new console speed. See <xref
- linkend="serialconsole-com2"/> for detailed
+ <para>Recompile the boot blocks with
+ <makevar>BOOT_COMCONSOLE_SPEED</makevar> set to the
+ new console speed. See <link
+ linkend="serialconsole-com2"></link> for detailed
instructions about building and installing new boot
blocks.</para>
<para>If the serial console is configured in some other
way than by booting with <option>-h</option>, or if the
serial console used by the kernel is different from the
- one used by the boot blocks, then you must also add the
- following option to the kernel configuration file and
- compile a new kernel:</para>
+ one used by the boot blocks, add the following option
+ to a custom kernel configuration file and compile a
+ new kernel:</para>
<programlisting>options CONSPEED=19200</programlisting>
</listitem>
<listitem>
- <para>Use the <option>-S</option> boot option of the
- kernel. The <option>-S</option> command line option can
- be added to <filename>/boot.config</filename>. See the
- &man.boot.8; manual page for a description of how to add
- options to <filename>/boot.config</filename> and a list
- of the supported options.</para>
+ <para>Add the <option>-S</option> boot option to
+ <filename>/boot.config</filename>. See &man.boot.8; for
+ a description of how to add options to
+ <filename>/boot.config</filename> and a list of the
+ supported options.</para>
</listitem>
<listitem>
- <para>Enable the <varname>comconsole_speed</varname>
- option in your <filename>/boot/loader.conf</filename>
- file.</para>
-
- <para>This option depends on <varname>console</varname>,
+ <para>Enable <varname>comconsole_speed</varname> in
+ <filename>/boot/loader.conf</filename>. This option
+ depends on <varname>console</varname>,
<varname>boot_serial</varname>, and
<varname>boot_multicons</varname> being set in
<filename>/boot/loader.conf</filename> too. An example
@@ -2868,37 +2715,35 @@ console="comconsole,vidconsole"</programlisting>
</sect3>
<sect3 id="serialconsole-com2">
- <title>Using Serial Port Other Than
+ <title>Using a Serial Port Other Than
<devicename>sio0</devicename> for the Console</title>
<para>Using a port other than <devicename>sio0</devicename> as
- the console requires some recompiling. If you want to use
- another serial port for whatever reasons, recompile the boot
- blocks, the boot loader and the kernel as follows.</para>
+ the console requires the boot blocks, the boot loader, and
+ the kernel to be recompiled as follows.</para>
<procedure>
<step>
- <para>Get the kernel source. (See <xref
- linkend="updating-upgrading"/>)</para>
+ <para>Get the kernel source as described in <link
+ linkend="updating-upgrading"></link>.</para>
</step>
<step>
<para>Edit <filename>/etc/make.conf</filename> and set
<literal>BOOT_COMCONSOLE_PORT</literal> to the address
- of the port you want to use (0x3F8, 0x2F8, 0x3E8 or
- 0x2E8). Only <devicename>sio0</devicename> through
+ of the port to use: 0x3F8, 0x2F8, 0x3E8 or 0x2E8. Only
+ <devicename>sio0</devicename> through
<devicename>sio3</devicename>
(<devicename>COM1</devicename> through
- <devicename>COM4</devicename>) can be used; multiport
+ <devicename>COM4</devicename>) can be used as multiport
serial cards will not work. No interrupt setting is
needed.</para>
</step>
<step>
<para>Create a custom kernel configuration file and add
- appropriate flags for the serial port you want to use.
- For example, if you want to make
- <devicename>sio1</devicename>
+ appropriate flags for the serial port to use. For
+ example, to make <devicename>sio1</devicename>
(<devicename>COM2</devicename>) the console:</para>
<programlisting>device sio1 flags 0x10</programlisting>
@@ -2935,11 +2780,11 @@ console="comconsole,vidconsole"</programlisting>
<sect3 id="serialconsole-ddb">
<title>Entering the DDB Debugger from the Serial Line</title>
- <para>If you wish to drop into the kernel debugger from the
- serial console (useful for remote diagnostics, but also
- dangerous if you generate a spurious BREAK on the serial
- port!) then you should compile your kernel with the
- following options:</para>
+ <para>To drop into the kernel debugger from the serial
+ console, compile a custom kernel with the following options.
+ Note that while this is useful for remote diagnostics, it is
+ also dangerous if a spurious BREAK is generated on the
+ serial port.</para>
<programlisting>options BREAK_TO_DEBUGGER
options DDB</programlisting>
@@ -2948,14 +2793,14 @@ options DDB</programlisting>
<sect3>
<title>Getting a Login Prompt on the Serial Console</title>
- <para>While this is not required, you may wish to get a
- <emphasis>login</emphasis> prompt over the serial line, now
- that you can see boot messages and can enter the kernel
- debugging session through the serial console. Here is how
- to do it.</para>
+ <para>While this is not required, it is possible to get a
+ <emphasis>login</emphasis> prompt over the serial line.
+ First, make sure that the boot messages are displayed and it
+ is possible to enter the kernel debugging session through
+ the serial console.</para>
- <para>Open the file <filename>/etc/ttys</filename> with an
- editor and locate the lines:</para>
+ <para>Open <filename>/etc/ttys</filename> with a text editor
+ and locate the lines:</para>
<programlisting>ttyu0 "/usr/libexec/getty std.9600" unknown off secure
ttyu1 "/usr/libexec/getty std.9600" unknown off secure
@@ -2963,20 +2808,19 @@ ttyu2 "/usr/libexec/getty std.9600" unknown off secure
ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<para><devicename>ttyu0</devicename> through
- <devicename>ttyu3</devicename> corresponds to
+ <devicename>ttyu3</devicename> correspond to
<devicename>COM1</devicename> through
<devicename>COM4</devicename>. Change
<literal>off</literal> to <literal>on</literal> for the
- desired port. If you have changed the speed of the serial
- port, you need to change <literal>std.9600</literal> to
- match the current setting, e.g.,
- <literal>std.19200</literal>.</para>
+ desired port. If the speed of the serial port has been
+ changed, change <literal>std.9600</literal> to match the
+ new setting.</para>
- <para>You may also want to change the terminal type from
- <literal>unknown</literal> to the actual type of your serial
+ <para>The terminal type can also be changed from
+ <literal>unknown</literal> to the actual type of the serial
terminal.</para>
- <para>After editing the file, you must <command>kill -HUP
+ <para>After editing the file, type <command>kill -HUP
1</command> to make this change take effect.</para>
</sect3>
</sect2>
@@ -2985,18 +2829,18 @@ ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<title>Changing Console from the Boot Loader</title>
<para>Previous sections described how to set up the serial
- console by tweaking the boot block. This section shows that
- you can specify the console by entering some commands and
+ console by tweaking the boot block. This section shows how to
+ specify the console by entering some commands and
environment variables in the boot loader. As the boot loader
- is invoked at the third stage of the boot process, after the
- boot block, the settings in the boot loader will override the
- settings in the boot block.</para>
+ is invoked at the third stage of the boot process, the
+ settings in the boot loader will override the settings in the
+ boot block.</para>
<sect3>
<title>Setting Up the Serial Console</title>
- <para>You can easily specify the boot loader and the kernel to
- use the serial console by writing just one line in
+ <para>The boot loader and the kernel to use the serial console
+ can be specified by writing one line in
<filename>/boot/loader.conf</filename>:</para>
<programlisting>console="comconsole"</programlisting>
@@ -3004,19 +2848,18 @@ ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<para>This will take effect regardless of the settings in the
boot block discussed in the previous section.</para>
- <para>You had better put the above line as the first line of
+ <para>This line should be the first line of
<filename>/boot/loader.conf</filename> so as to see boot
messages on the serial console as early as possible.</para>
- <para>Likewise, you can specify the internal console
- as:</para>
+ <para>Likewise, to specify the internal console:</para>
<programlisting>console="vidconsole"</programlisting>
- <para>If you do not set the boot loader environment variable
- <envar>console</envar>, the boot loader, and subsequently
- the kernel, will use whichever console indicated by the
- <option>-h</option> option in the boot block.</para>
+ <para>If the boot loader environment variable
+ <envar>console</envar> is not set, the boot loader, and
+ subsequently the kernel, will use whichever console is
+ indicated by <option>-h</option> in the boot block.</para>
<para>The console can be specified in
<filename>/boot/loader.conf.local</filename> or in
@@ -3026,10 +2869,10 @@ ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<note>
<para>At the moment, the boot loader has no option
- quivalent to the <option>-P</option> option in the boot
- block, and there is no provision to automatically select
- the internal console and the serial console based on the
- presence of the keyboard.</para>
+ equivalent to <option>-P</option> in the boot block, and
+ there is no provision to automatically select the internal
+ console and the serial console based on the presence of
+ the keyboard.</para>
</note>
</sect3>
@@ -3037,32 +2880,29 @@ ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<title>Using a Serial Port Other Than
<devicename>sio0</devicename> for the Console</title>
- <para>You need to recompile the boot loader to use a serial
- port other than <devicename>sio0</devicename> for the serial
- console. Follow the procedure described in <xref
- linkend="serialconsole-com2"/>.</para>
+ <para>The boot loader needs to be compiled in order to use a
+ serial port other than <devicename>sio0</devicename> for the
+ serial console. Follow the procedure described in <link
+ linkend="serialconsole-com2"></link>.</para>
</sect3>
</sect2>
<sect2 id="serialconsole-caveats">
<title>Caveats</title>
- <para>The idea here is to allow people to set up dedicated
- servers that require no graphics hardware or attached
- keyboards. Unfortunately, while most systems will let you
- boot without a keyboard, there are quite a few that will not
- let you boot without a graphics adapter. Machines with AMI
- BIOSes can be configured to boot with no graphics adapter
+ <para>While most systems will boot without a keyboard, quite a
+ few will not boot without a graphics adapter. Machines with
+ AMI BIOSes can be configured to boot with no graphics adapter
installed by changing the <quote>graphics adapter</quote>
setting in the CMOS configuration to <quote>Not
installed.</quote></para>
<para>However, many machines do not support this option and will
- refuse to boot if you have no display hardware in the system.
- With these machines, you will have to leave some kind of
- graphics card plugged in, (even if it is just a junky mono
- board) although you will not have to attach a monitor. You
- might also try installing an AMI BIOS.</para>
+ refuse to boot if there is no display hardware in the system.
+ With these machines, leave some kind of graphics card plugged
+ in, even if it is just a junky mono board. A monitor does not
+ need to be attached. One might also try installing an AMI
+ BIOS.</para>
</sect2>
</sect1>
</chapter>