diff options
author | Dru Lavigne <dru@FreeBSD.org> | 2013-02-27 20:38:17 +0000 |
---|---|---|
committer | Dru Lavigne <dru@FreeBSD.org> | 2013-02-27 20:38:17 +0000 |
commit | 21bfcedf4e29a47968afd9beafb40e22fba47247 (patch) | |
tree | dc79a030a2c2b9fc27ca37696e900cc2eb764bfe /en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml | |
parent | e4dfe979c4edfb556b845f3693b061be61be4f30 (diff) | |
download | doc-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.xml | 1904 |
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 — 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 — 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 — 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; 8.0 or higher, or <literal>sio</literal> for - &os; 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; 8.0 or + higher, or <literal>sio</literal> for &os; 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; 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 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; 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—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 bps. The 286 PC uses no parity and connects at 19200 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; 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 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 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 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 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 Kbps modem with a top interface - speed of 19.2 Kbps:</para> + <para>For a higher speed modem, add an entry in + <filename>/etc/gettytab</filename>. This entry is for a + 14.4 Kbps modem with a top interface speed of + 19.2 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 Kbps modem and/or you want to - take advantage of compression on a 14.4 Kbps modem, - you need to use a higher communications rate than - 19.2 Kbps. Here is an example of a - <filename>gettytab</filename> entry starting a - 57.6 Kbps:</para> + <para>For a 28.8 Kbps modem or to take advantage of + compression on a 14.4 Kbps modem, use a higher + communications rate than 19.2 Kbps. Here is an + example of a <filename>gettytab</filename> entry starting + a 57.6 Kbps:</para> <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 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 — <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 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 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 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&C1&D2&H1&I0&R2&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&C1&D2&H1&I0&R2&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&B1&W</programlisting> @@ -1774,12 +1689,12 @@ AT&B1&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&B2&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 — 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&B2&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&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&B2&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; 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—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&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&W</command>.</para> + <literal>CONNECT 115200</literal>. Turn those messages off + when using <command>tip</command> with + <command>ATX0&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&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 bps which is why it looks for a <literal>tip1200</literal> entry. - You do not have to use 1200 bps, though.</para> + 1200 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>$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; 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"' >> /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 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—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>>> 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> |