Updates for Red Hat Linux 7.3, corrections to serial port speeds and UARTs, ioctlsave - ready for publish

This commit is contained in:
gdt 2002-07-11 01:29:39 +00:00
parent 23ff138a26
commit 98a0b45947
1 changed files with 347 additions and 150 deletions

View File

@ -5,7 +5,7 @@
<title>Remote Serial Console HOWTO</title>
<pubdate>v2.1 2002-05-16</pubdate>
<pubdate>v2.2 2002-07-11</pubdate>
<authorgroup>
<author>
@ -30,7 +30,18 @@
<revhistory>
<revision>
<revnumber>2.1</revnumber> <date>2002-05-16</date>
<revnumber>2.2</revnumber> <date>2002-07-11</date>
<revremark>Updates for Red Hat Linux 7.3, corrections to serial
port speeds and UARTs, ioctlsave.</revremark>
</revision>
<revision>
<revnumber>2.2</revnumber>
<date>2002-05-22</date>
<revremark>Minor changes</revremark>
</revision>
<revision>
<revnumber>2.1</revnumber>
<date>2002-05-16</date>
<authorinitials>gdt</authorinitials>
<revremark>Corrections to kernel console syntax. Addition of USB
and devfs.</revremark>
@ -55,7 +66,7 @@
a terminal or modem attached to an asynchronous serial port. The
monitor, mouse and keyboard are no longer required for system
administration. Serial consoles are useful where <systemitem
class="osname">Linux</systemitem> systems are deployed in remote
class="osname">Linux</systemitem> systems are deployed at remote
sites or are deployed in high-density racks.</para>
<para>This <citetitle>HOWTO</citetitle> describes how to configure
@ -79,7 +90,7 @@
<para>Glen Turner would like to thank his family for allowing him to
work on this project for the surprisingly large number of evenings
which it took to write this <citetitle>HOWTO</citetitle>. Thanks
which it took to write this <citetitle>HOWTO</citetitle>. Thank you
Karen, Kayla and Ella.</para>
</dedication> <!-- dedication -->
@ -112,8 +123,9 @@
<para>On many older computers the console is an
<acronym>RS-232</acronym> link to a terminal such as a
<acronym>DEC</acronym> <productname>VT100</productname>. This
terminal is in a locked room and is continually observed by the
<acronym>DEC</acronym>
<productname><acronym>VT100</acronym></productname>. This terminal
is in a locked room and is continually observed by the
minicomputer's operators. Large systems from Sun, Hewlett-Packard
and <acronym>IBM</acronym> still use serial consoles.</para>
@ -125,6 +137,29 @@
the Command Line of Last Resort when faced with a misbehaving
system.</para>
<para>A formal, but somewhat less useful, definition of the system
console can be found in <xref linkend="intro-what-def">. This
<citetitle>HOWTO</citetitle> promises that you do not need to
understand this definition to configure <systemitem
class="osname">Linux</systemitem> to use a serial console
:-)</para>
<figure id="intro-what-def">
<title>System console, a formal definition</title>
<blockquote>
<title><wordasword>System console</wordasword></title>
<para>An implementation-defined device that receives messages
sent by the <function>syslog()</function> function, and the
<function>fmtmsg()</function> function when the
<constant>MM_CONSOLE</constant> flag is set.</para>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<citetitle><acronym>IEEE Std 1003.1-2001</acronym> Base Definitions</citetitle>
</literallayout>
</blockquote>
</figure>
</section> <!-- intro-what -->
@ -150,7 +185,7 @@
operating system for deployment at unstaffed sites. <systemitem
class="osname">Linux</systemitem> is also good at hosting
critical network infrastructure such as <acronym>DNS</acronym>
and <acronym>DHCP</acronym> servers. These servers are
and <acronym>DHCP</acronym> services. These services are
generally installed at every site of an organisation including
sites which may be too small or too remote to have information
technology staff.</para>
@ -215,7 +250,7 @@
machine can be used as the serial terminal.</para>
<para>Some secure installations require all security events to
be unalterably logged. A way to meet this requirement is to
be unalterably logged. One way to meet this requirement is to
print all console messages. Connecting the serial console to a
serial printer can achieve this.<footnote>
@ -233,7 +268,7 @@
<term>Embedded software development</term>
<listitem>
<para><systemitem class="osname">Linux</systemitem> is
increasingly being as the operating system in embedded
increasingly being used as an operating system for embedded
applications. These computers do not have keyboards or
screens.</para>
@ -266,28 +301,8 @@
status of reported faults, and so on. The terminal used by the
craft personnel is called the <wordasword>craft
terminal</wordasword>. The craft terminal plugs into the
<wordasword>craft interface</wordasword> on the
equipment.<footnote>
<para>The craft interface was originally specified in
Telcordia's <citetitle><acronym>LATA</acronym> Switching
Systems Generic Requirements</citetitle>. The wide variation
in craft interfaces can be attributed to this document costing
<acronym>US</acronym>$17,500 (in April
2002).</para></footnote></para>
<para>It is common, but not universal, industry practice for
craft terminals to be a <acronym>DEC</acronym>
<productname><acronym>VT100</acronym></productname> terminal (or
an emulator). The craft interface is commonly assumed to be an
<acronym>RS-232</acronym> <acronym>DCE</acronym> interface,
running at 9600<abbrev>bps</abbrev> with 8 data bits, no parity,
one stop bit, no handshaking and no status lines. An
<acronym>RJ45</acronym> connector is sometimes used in place of
<acronym>RS-232</acronym>'s standard 25-pin <acronym>D</acronym>
connector. The <acronym>DCE</acronym> interface allows the
craft terminal to be connected without a special null modem
cable.</para>
<wordasword>craft interface</wordasword> on the equipment. The
serial console makes an ideal craft interface.</para>
</listitem>
</varlistentry>
</variablelist>
@ -299,16 +314,16 @@
<para>Firstly, Power On Self-Test messages and Basic Input/Output
System (<acronym>BIOS</acronym>) messages are sent to the screen
and received from the keyboard. This makes it difficult to
reconfigure the <acronym>BIOS</acronym> and makes it impossible to
see Power On Self-Test errors.</para>
and received from the keyboard. This makes it difficult to use the
serial port to reconfigure the <acronym>BIOS</acronym> and
impossible to see Power On Self-Test errors.</para>
<para>An increasing number of manufacturers of rackable
<emphasis>server</emphasis> equipment are altering their
<acronym>BIOS</acronym>s to optionally use the
<acronym>RS-232</acronym> port for the BIOS's messages and
configuration. If you are buying a machine specifically for use
with serial console you should seek this feature. If you have an
<acronym>RS-232</acronym> port for BIOS configuration and test
messages. If you are buying a machine specifically for use with
serial console you should seek this feature. If you have an
existing machine that definitely requires access to the
<acronym>BIOS</acronym> from the serial port then there are
hardware solutions such as <ulink
@ -424,15 +439,16 @@
<para>Examples in this <citetitle>HOWTO</citetitle> are from
<productname>Red Hat Linux</productname> versions
<productnumber>7.1</productnumber> and
<productnumber>7.2</productnumber>, which were released in 2001.
The maintainer would appreciate updates for later versions of
<productname>Red Hat Linux</productname>. The maintainer would
very much appreciate examples for <systemitem
<productnumber>7.1</productnumber> through to
<productnumber>7.3</productnumber> (released 2001 through to 2002).
The maintainer would appreciate updates when new versions of
<productname>Red Hat Linux</productname> appear. The maintainer
would very much appreciate examples for <systemitem
class="osname">Linux</systemitem> distributions that are dissimilar
to <productname>Red Hat Linux</productname>; particularly
<productname>Debian GNU/Linux</productname> and
<productname>Slackware Linux</productname>.</para>
<productname>Slackware Linux</productname>. All contributors are
acknowledged in <xref linkend="about-credits">.</para>
</section> <!-- intro-config -->
@ -531,7 +547,7 @@
class="devicefile">/dev/ttyS0</filename> to <systemitem
class="osname">Linux</systemitem>; is known as <filename
class="devicefile">/dev/tts/0</filename> to <systemitem
class="osname">Linux</systemitem>'s running
class="osname">Linux</systemitem> when configured with
<application>devfs</application>; and is known as port
<literal>0</literal> to many boot loaders.</para>
@ -645,16 +661,16 @@
<title>Using the <command>setserial</command> command in
<filename>/etc/rc.serial</filename>to disable the serial port
<filename class="devicefile">/dev/ttyS2</filename></title>
<programlisting>
<programlisting>
# Disable /dev/ttyS2 so interrupt 4 is not shared,
# then /dev/ttyS0 can be used as a serial console.
setserial /dev/ttyS2 uart none port 0x0 irq 0
</programlisting>
</figure>
<para>Note that the interrupt-sharing constraint appears to apply
to all computer architectures, not just Intel Architecture
32.</para>
<para>Reading the source code suggests that the interrupt-sharing
constraint applies to all computer architectures, not just Intel
Architecture-32.</para>
</section> <!-- preparation-setport-interrupt -->
@ -690,11 +706,15 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<para>The speed of the serial link in bits per second.</para>
<para>The <systemitem class="osname">Linux</systemitem> kernel
on a modern <acronym>PC</acronym> supports 50, 75, 110, 134.5,
150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400,
57600 and 115200 bits per second for a serial port being used as
a console. Higher bit rates may be possible depending upon the
model of the serial port's semiconductor.</para>
on a modern <acronym>PC</acronym> supports a serial console
speeds of 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200
bits per second.</para>
<para>The kernel supports a much wider range of serial bit rates
when the serial interface is not being used as a serial
console.<footnote><para>There is no good reason for this
difference. Feel free to submit a patch to the linux-kernel
mailing list to correct this oddity.</para></footnote></para>
<para>Very recent <systemitem class="osname">Linux</systemitem>
kernels can also offer a serial console using a
@ -702,8 +722,9 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
4800, 9600, 19200, 38400, 57600 and 115200 bits per
second.</para>
<para>Most boot loaders only support a subset of the range
supported by the kernel. <productname>LILO</productname>
<para>Most boot loaders only support a different range of speeds
than are supported by the kernel.
<productname>LILO</productname>
<productnumber>21.7.5</productnumber> supports 110, 150, 300,
600, 1200, 2400, 4800, 9600, 19200, 38400, 56000, 57600 and
115200 bits per second. <productname>SYSLINUX</productname>
@ -736,27 +757,33 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
synchronize to the speed of the serial port.</para>
<para>The selected bit rate must also be supported by the serial
port's semiconductor. Early model <acronym>UART</acronym>s such
as the 8250 series and the 16450 could only reliably recieve at
up to 14400<abbrev>bps</abbrev>. The 16550 series and later
models will work at all bit rates.</para>
port's <acronym>UART</acronym> semiconductor chip. Early
<acronym>UART</acronym>s without on-chip receive buffers could
only reliably receive at up to 14400<abbrev>bps</abbrev>, this
includes models 8250A, 82510, 16450 and 16550 (with no
<wordasword>A</wordasword>). Recent <acronym>UART</acronym>s with
receive buffers will work at all serial console bit rates, this
includes models 16550A, 16552, 16650, 16654, 16750, 16850 and
16950.</para>
<para>Unless you have good reason, use the popular bit rate of
9600 bits per second. This is the default bit rate of a great
many devices.</para>
<para>The speeds that are supported by the kernel, the three
common boot loaders, and all IBM PCs capable of running Linux
are: 2400, 4800, 9600 and 19200 bits per second. This is a
depressingly small selection: not slow enough to support a call
over an international phone circuit and not fast enough to
upload large files. You may need to choose a speed that will
result in a less robust software configuration.</para>
common boot loaders, and all <productname><acronym>IBM</acronym>
<acronym>PC</acronym>s</productname> capable of running
<systemitem class="osname">Linux</systemitem> are: 2400, 4800,
9600 and 19200 bits per second. This is a depressingly small
selection: not slow enough to support a call over an
international phone circuit and not fast enough to upload large
files. You may need to choose a speed that will result in a
less robust software configuration.</para>
<figure id="preparation-setspeed-bps">
<title>Syntax for serial bits per second rate, in extended
Backus-Naur form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;speed&gt;</replaceable> ::= <replaceable>&lt;digits&gt;</replaceable>
<replaceable>&lt;digits&gt;</replaceable> ::= <replaceable>&lt;digit&gt;</replaceable> | <replaceable>&lt;digit&gt;</replaceable><replaceable>&lt;digits&gt;</replaceable>
<replaceable>&lt;digit&gt;</replaceable> ::= <literal>0</literal> | <literal>1</literal> | &hellip; | <literal>9</literal>
@ -790,7 +817,7 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<figure id="preparation-setspeed-parity">
<title>Syntax for serial parity, in extended Backus-Naur
form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;parity&gt;</replaceable> ::= <literal>n</literal> | <literal>e</literal> | <literal>o</literal>
</literallayout>
</figure>
@ -814,7 +841,7 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<figure id="preparation-setspeed-data">
<title>Syntax for serial data bits, in extended Backus-Naur
form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;data&gt;</replaceable> ::= <literal>7</literal> | <literal>8</literal>
</literallayout>
</figure>
@ -850,7 +877,7 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<figure id="preparation-setspeed-stop">
<title>Syntax for serial stop bits, in extended Backus-Naur
form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;stop&gt;</replaceable> ::= <literal>1</literal> | <literal>2</literal>
</literallayout>
</figure>
@ -890,19 +917,12 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
To Send, as the kernel is never recieves key strokes. Of
course, a user-space application such as
<application>getty</application> can set Ready To Send to
recieve keystrokes.</para>
<para>At present the <acronym>RS-232</acronym> status lines are
ignored by the kernel. A kernel message will be printed even if
Data Carrier Detect and Data Set Ready are not asserted. This
is a bug, which probably appeared because it is convenient for
kernel developers to avoid the hassle of configuring their
terminal emulators correctly.</para>
receive keystrokes.</para>
<figure id="preparation-setspeed-flow">
<title>Syntax for serial flow control, in extended Backus-Naur
form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;flow_control&gt;</replaceable> ::= <replaceable>&lt;nil&gt;</replaceable> | <literal>r</literal>
</literallayout>
</figure>
@ -910,6 +930,27 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
</varlistentry>
</variablelist>
<para>At present the <acronym>RS-232</acronym> status lines are
ignored by the kernel. A kernel message will be printed even if
Data Carrier Detect and Data Set Ready are not asserted. This
leads to the kernel messages being sent to a modem which is idle
and in command mode.<footnote>
<para>A programmer with some spare time may which to add a
<literal>console=</literal>&hellip;<literal>s</literal> option
and a to implement proper interpretation of the
<acronym>DSR</acronym> and <acronym>DCD</acronym> statuses. Lack
of <acronym>DSR</acronym> should cause all other signals to be
assumed to be unasserted. Console messages should only be
printed when <acronym>DCD</acronym> is
asserted.</para></footnote></para>
<para>The console's slack interpretation of <acronym>CTS</acronym>,
<acronym>DSR</acronym> and <acronym>DCD</acronym> makes it
impossible to connect a serial console to an
<acronym>RS-232</acronym> multi-drop circuit. Multi-drop circuits
have more than two computers on the circuit; they are traditionally
four-wire, satelite or wireless services.</para>
<para>The Linux kernel uses the syntax in <xref
linkend="preparation-setspeed-modesyntax"> to describe the serial
@ -919,14 +960,14 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<figure id="preparation-setspeed-modesyntax">
<title>Syntax for kernel serial parameters, in extended
Backus-Naur form</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;mode&gt;</replaceable> ::= <replaceable>&lt;speed&gt;</replaceable><replaceable>&lt;parity&gt;</replaceable><replaceable>&lt;data&gt;</replaceable><replaceable>&lt;flow_control&gt;</replaceable>
</literallayout>
</figure>
<para>Note that <replaceable>&lt;mode&gt;</replaceable> does not
include <replaceable>&lt;stop&gt;</replaceable>. The kernel
assumes the number of stop bits to be one. This shortcoming need
assumes the number of stop bits to be one. This shortcoming needs
to be considered when deploying long <acronym>RS-232</acronym>
cables.</para>
@ -1097,7 +1138,7 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<para>Some <acronym>BIOS</acronym>s which usually redirect all
keyboard and video output to the serial port can be configured in
only to redirect <acronym>BIOS</acronym> inpout and output. Look
only to redirect <acronym>BIOS</acronym> input and output. Look
for a <acronym>BIOS</acronym> configuration option similar to
<guimenuitem>Cease redirection after boot</guimenuitem>.</para>
@ -1211,7 +1252,8 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
from the <acronym>MBR</acronym> of the first hard disk&rdquo; is a
simplification. <acronym>BIOS</acronym> settings permitting, the
<acronym>MBR</acronym> can be loaded from the first two detected
hard disks of any particular disk technology. Thus the
hard disks of any controller card containing a
<acronym>BIOS</acronym> extension. Thus the
<acronym>MBR</acronym> can be loaded from one of the first two
detected <acronym>IDE</acronym> disks and one of the first two
detected <acronym>SCSI</acronym> disks.</para></footnote>
@ -1232,7 +1274,9 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
strictly necessary. For example, there are <ulink
url="http://www.acl.lanl.gov/linuxbios/">versions of Linux</ulink>
that run directly from the flash memory which usually contains the
<acronym>BIOS</acronym>.</para>
<acronym>BIOS</acronym>. Linux was originally designed to run
without an interactive boot loader, by placing the kernel at
particular sectors of the disk.</para>
<para>The benefits of using a boot loader are:</para>
@ -1305,13 +1349,13 @@ setserial /dev/ttyS2 uart none port 0x0 irq 0
<para>Set <application>LILO</application> to use the serial port.
The syntax of the serial line parameters follows that used by the
kernel, except that one stop bit is assumed.</para>
kernel.</para>
<figure id="configure-boot-loader-lilo-syntax">
<title>Syntax of <productname>LILO</productname>
<command>serial</command> command, in
<acronym>EBNF</acronym></title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
serial=<replaceable>&lt;port&gt;</replaceable>[,<replaceable>&lt;speed&gt;</replaceable>[<replaceable>&lt;parity&gt;</replaceable>[<replaceable>&lt;data&gt;</replaceable>]]]
</literallayout>
</figure>
@ -1322,7 +1366,7 @@ serial=<replaceable>&lt;port&gt;</replaceable>[,<replaceable>&lt;speed&gt;</repl
<figure id="configure-boot-loader-lilo-ebnf">
<title><productname>LILO</productname> <command>serial</command>
<acronym>EBNF</acronym> variables</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;port&gt;</replaceable> ::= <literal>0</literal> | <literal>1</literal>| &hellip; | <literal>3</literal>
</literallayout>
</figure>
@ -1397,9 +1441,9 @@ message=/boot/message</programlisting>
to view the documentation.</para>
<para>The <application>GRUB</application> configuration file is
<filename>/boot/grub/menu.lst</filename>, although some
distributions use another configuration file. For example,
<productname>Red Hat Linux</productname> uses the file
<filename>/boot/grub/menu.lst</filename>. Some distributions use
another configuration file; for example, <productname>Red Hat
Linux</productname> uses the file
<filename>/boot/grub/grub.conf</filename>.</para>
<para><application>GRUB</application> configuration files are
@ -1484,7 +1528,8 @@ terminal &hyphen;&hyphen;timeout=10 serial console</programlisting>
<para>When both the serial port and the attached monitor and
keyboard are configured they will both ask for a key to be pressed
until the timeout expires. If a key is pressed then the boot menu
is displayed to that device. The other device sees nothing.</para>
is displayed to that device. Disconcertingly, the other device
sees nothing.</para>
<para>If no key is pressed then the boot menu is displayed on the
whichever of <literal>serial</literal> or
@ -1493,7 +1538,9 @@ terminal &hyphen;&hyphen;timeout=10 serial console</programlisting>
<command>timeout</command> the default option set by
<command>default</command> is booted.</para>
<informalfigure id="configure-boot-loader-grub-press">
<figure id="configure-boot-loader-grub-press">
<title>GRUB output to default device when configured for serial
and attached monior output</title>
<screen format="linespecific">
<computeroutput>Press any key to continue.
Press any key to continue.
@ -1519,15 +1566,25 @@ Press any key to continue.
The highlighted entry will be booted automatically in 10 seconds.
</computeroutput></screen>
</informalfigure>
</figure>
<para>Note that there are two timeouts involved.
<computeroutput>Press any key to continue</computeroutput> is
printed for <command>terminal --timeout=10</command> seconds,
waiting for someone on the keyboard or terminal to press a key to
get the input focus. Then the menu is displayed for
<command>timeout 10</command> seconds before the default boot
option is taken.</para>
<para>If you are not using a <acronym>VT100</acronym> terminal then
the cursor keys may not work to select a
<application>GRUB</application> menu item. The instructions shown
in <xref linkend="configure-boot-loader-grub-press"> are literally
correct: <guilabel>Use the ^ and v keys</guilabel> means that the
caret key
(<keycombo><keycap>Shift</keycap><keycap>6</keycap></keycombo>)
moves the cursor up and letter vee key (<keycap>V</keycap>) moves
the cursor down.</para>
<para>Note when configuring <application>GRUB</application> that
there are two timeouts involved. <computeroutput>Press any key to
continue</computeroutput> is printed for <command>terminal
--timeout=10</command> seconds, waiting for someone on the keyboard
or terminal to press a key to get the input focus. Then the menu
is displayed for <command>timeout 10</command> seconds before the
default boot option is taken.</para>
<para>If the terminal attached to the serial port is not a real or
emulated <productname>VT100</productname>, then force
@ -1636,7 +1693,7 @@ title Red Hat Linux (2.4.9-21) single user mode
<title>Syntax of <productname>SYSLINUX</productname>
<command>serial</command> command, in
<acronym>EBNF</acronym></title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<literal>serial</literal> <replaceable>&lt;space&gt;</replaceable> <replaceable>&lt;port&gt;</replaceable> [ <replaceable>&lt;space&gt;</replaceable> <replaceable>&lt;speed&gt;</replaceable> [ <replaceable>&lt;space&gt;</replaceable> <replaceable>&lt;syslinux_flow_control&gt;</replaceable> ] ]
</literallayout>
</figure>
@ -1649,7 +1706,7 @@ title Red Hat Linux (2.4.9-21) single user mode
<figure id="configure-boot-loader-syslinux-ebnf">
<title><productname>SYSLINUX</productname>
<command>serial</command> <acronym>EBNF</acronym> variables</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;space&gt;</replaceable> ::= &lsquo;<literal> </literal>&rsquo;
<replaceable>&lt;syslinux_flow_control&gt;</replaceable> ::= <replaceable>&lt;hex_digits&gt;</replaceable>
<replaceable>&lt;hex_digits&gt;</replaceable> ::= <literal>0x</literal><replaceable>&lt;hex_digit&gt;</replaceable><replaceable>&lt;hex_digit&gt;</replaceable><replaceable>&lt;hex_digit&gt;</replaceable>
@ -1789,7 +1846,7 @@ serial 0 9600</programlisting>
<figure id="configure-kernel-syntax">
<title>Kernel <literal>console</literal> syntax, in EBNF</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<literal>console=ttyS</literal><replaceable>&lt;port&gt;</replaceable>[<literal>,</literal><replaceable>&lt;mode&gt;</replaceable>]
<literal>console=tty</literal><replaceable>&lt;virtual_terminal&gt;</replaceable>
<literal>console=lp</literal><replaceable>&lt;parallel_port&gt;</replaceable>
@ -1831,7 +1888,7 @@ serial 0 9600</programlisting>
for production use.</para></footnote>
For example, the serial port
<literal>console=ttyS00,9600n8r</literal> when moved to a
<literal>console=ttyS0,9600n8r</literal> when moved to a
<acronym>USB</acronym> serial dongle would be written as
<literal>console=ttyUSB0,9600n8r</literal>. The
<acronym>USB</acronym> subsystem is started rather late in the boot
@ -1954,7 +2011,6 @@ prompt
default=linux
# Changes for serial console on COM1: in global section
# Deleted: message=/boot/message
timeout=200
serial=0,9600n8
timeout=100
restricted
@ -2151,7 +2207,7 @@ APPEND console=tty0 console=ttyS0,9600n8r</programlisting>
<application>init</application>, based upon an entry in
<filename>/etc/inittab</filename></title>
<screen format="linespecific">
s0:2345:respawn:/sbin/getty ttyS0 CON9600</screen>
co:2345:respawn:/sbin/getty ttyS0 CON9600 vt102</screen>
</figure>
<para>Each field in <filename>inittab</filename> is separated by a
@ -2159,13 +2215,21 @@ s0:2345:respawn:/sbin/getty ttyS0 CON9600</screen>
<variablelist>
<varlistentry>
<term><literal>s0</literal></term>
<term><literal>co</literal></term>
<listitem>
<para>Arbitrary entry for <filename>inittab</filename>. As long
as this entry doesn't appear anywhere else in
<filename>inittab</filename>, you're okay. We named this entry
<literal>s0</literal> because it's for <filename
class="devicefile">/dev/ttyS0</filename>.</para>
<literal>co</literal> because it's for the console.</para>
<para><productname>Red Hat Linux</productname>
<productnumber>7.3</productnumber> has a program called
<application>kudzu</application> which configures the system
when it is booted. <application>kudzu</application> treats an
<filename>inittab</filename> entry of <literal>co</literal>
specially, setting it for the attached monitor and keyboard or
the serial console. Hardcoding the value of
<filename>co</filename> prevents this behaviour.</para>
</listitem>
</varlistentry>
@ -2219,6 +2283,17 @@ s0:2345:respawn:/sbin/getty ttyS0 CON9600</screen>
and actually kill <application>init</application> then your system
will suddenly halt.</para>
<note>
<title>Comments in <filename>inittab</filename> and Red Hat's
<application>kudzu</application></title>
<para><application>kudzu</application> uses comments to activate
and deactivate the <application>getty</application>s for the
attached monitor and keyboard and for the serial port. Red Hat
Linux uses wishing to have genuine comments should use
<literal>##</literal> to indicate a comment.</para>
</note>
</section> <!-- getty-init -->
@ -2255,7 +2330,7 @@ CON9600# B9600 CS8 -PARENB -ISTRIP CRTSCTS HUPCL # B9600 SANE CS8 -PARENB -ISTRI
<figure id="getty-getty-gettydefs-syntax">
<title>Syntax of entries in <filename>/etc/gettydefs</filename>,
in EBNF</title>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<replaceable>&lt;label&gt;</replaceable># <replaceable>&lt;initial_flags&gt;</replaceable> # <replaceable>&lt;final_flags&gt;</replaceable> #<replaceable>&lt;login_prompt&gt;</replaceable>#<replaceable>&lt;next_label&gt;</replaceable></literallayout>
</figure>
@ -2334,13 +2409,23 @@ s0:2345:respawn:/sbin/agetty -h -t 60 ttyS0 9600 vt102</programlisting>
<para><literal>-h</literal> activates CTS/RTS handshaking.</para>
<para><literal>-t 60</literal> allows 60 seconds for someone to
attempt to log in before the modem is hung up.</para>
attempt to log in before the modem is hung up. You should test
this feature to ensure that <application>init</application> is not
restarting <application>agetty</application> every 60 seconds when
the link is idle. Look for a continually changing process
identifier for <application>agetty</application>.</para>
<para><application>agetty</application> uses escape sequences in
<filename>/etc/issue</filename> to insert information. For
example, <literal>\n.\o \l</literal> will appear as
<literal>remote.example.edu.au ttyS0</literal>.</para>
<para>When you log out <application>agetty</application> does not
appear to lower the Data Terminal Ready signal to force the modme
to hang up. If having people automatically disconnected at the end
of their login session matters to you then you might consider
<application>mgetty</application> instead.</para>
</section> <!-- getty-agetty -->
@ -2588,6 +2673,15 @@ ttyS0</programlisting>
class="username">root</systemitem> user to log in and start
deleting the files that filled the disk.</para>
<note>
<title><filename>securetty</filename> and Red Hat's
<application>kudzu</application></title>
<para><application>kudzu</application> automatically adds the
device being used as the console to
<filename>securetty</filename>.</para>
</note>
</section> <!-- misc-securetty -->
@ -2616,6 +2710,16 @@ id:3:initdefault:</programlisting>
occassional <productname>X Windows</productname> session is
required upon an attached keyboard and monitor.</para>
<note>
<title>Run levels and Red Hat's
<application>kudzu</application></title>
<para><application>kudzu</application> automatically updates the
<literal>initdefault</literal> entry in
<filename>inittab</filename> to use run level 3 if a serial device
is being used as a console.</para>
</note>
</section> <!-- misc-init -->
@ -2787,7 +2891,9 @@ l systty ttyS0
&lt;console&gt; 0600 &lt;kbd&gt; 0600 root
&lt;console&gt; 0600 &lt;joystick&gt; 0600 root
&lt;console&gt; 0600 &lt;v4l&gt; 0600 root
&lt;console&gt; 0700 &lt;gpm&gt; 0700 root</programlisting>
&lt;console&gt; 0700 &lt;gpm&gt; 0700 root
&lt;console&gt; 0600 &lt;mainboard&gt; 0600 root
&lt;console&gt; 0600 &lt;rio500&gt; 0600 root</programlisting>
</figure>
<para>There are two types of devices listed above: those devices
@ -2841,7 +2947,9 @@ l systty ttyS0
&lt;sconsole&gt; 0600 &lt;scanner&gt; 0600 root
&lt;sconsole&gt; 0600 &lt;camera&gt; 0600 root
&lt;sconsole&gt; 0600 &lt;memstick&gt; 0600 root
&lt;sconsole&gt; 0600 &lt;flash&gt; 0600 root</programlisting>
&lt;sconsole&gt; 0600 &lt;flash&gt; 0600 root
&lt;sconsole&gt; 0600 &lt;mainboard&gt; 0600 root
&lt;sconsole&gt; 0600 &lt;rio500&gt; 0600 root</programlisting>
</figure>
</section> <!-- misc-pam -->
@ -2971,21 +3079,31 @@ remote.example.edu.au ttyS0 login:</screen>
modem may hang up whilst doing this and you may need to
re-connect.</para>
<para>Without a <filename>/etc/ioctl.save</filename> containing the
saved terminal settings, <application>init</application> assumes a
directly attached terminal running at 9600bps with 8 data bits, no
parity, 1 stop bit and no flow control. Configure your terminal
with these settings.</para>
<informalfigure id="recreate-ioctl-save-login">
<screen format="linespecific">
<prompt>remote.example.edu.au ttyS0 login:</prompt> <userinput>root</userinput>
<prompt>Password:</prompt> <userinput>&hellip;</userinput>
<prompt>sh#</prompt> <command>rm -f /etc/ioctl.save</command>
<prompt>bash#</prompt> <command>telinit 1</command>
&hellip;<computeroutput>
Telling INIT to go to single user mode.
INIT: Going single user
INIT: Sending processes the TERM signal</computeroutput>
<prompt>sh#</prompt> <command>rm -f /etc/ioctl.save</command>
<prompt>sh#</prompt> <command>stty sane -parenb cs8 crtscts brkint -istrip -ixoff -ixon</command></screen>
</informalfigure>
<para>As you use <command>stty</command> to alter the Linux's
terminal settings remember to also alter the settings of the
attached terminal.</para>
<para>Exiting from single user mode back to the default run level
will save the serial console configuration into
will save the serial console termnial configuration into
<filename>/etc/ioctl.save</filename>.</para>
<informalfigure id="recreate-ioctl-save-login-text">
@ -2996,8 +3114,29 @@ INIT: Sending processes the TERM signal</computeroutput>
<computeroutput>-rw------- 1 root root 60 Jan 1 00:00 /etc/ioctl.save</computeroutput></screen>
</informalfigure>
<para>This file will be used if the machine boots into single user
mode for any reason.</para>
<para>The terminal settings saved in
<filename>/etc/ioctl.save</filename> will be used if the machine
boots into single user mode for any reason.</para>
<para>If your attached terminal or modem cannot alter speed to
9600bps then the above procedure cannot be followed. <ulink
url="http://www.aarnet.edu.au/network/software/ioctlsave/"><command>ioctlsave</command></ulink>
has been written for this special case. It saves the current
terminal settings to a file in the same format as
<filename>ioctl.save</filename>. The procedure is shown in <xref
linkend="recreate-ioctl-save-ioctlsave">.</para>
<figure id="recreate-ioctl-save-ioctlsave">
<title>Using <command>ioctlsave</command> to create
<filename>/etc/ioctl.save</filename> without entering single user
mode</title>
<screen format="linespecific">
<prompt>remote.example.edu.au ttyS0 login:</prompt> <userinput>root</userinput>
<prompt>Password:</prompt> <userinput>&hellip;</userinput>
<prompt>bash#</prompt> <command>rm -f /etc/ioctl.save</command>
<prompt>bash#</prompt> <command>ioctlsave -t /dev/ttyS0 /etc/ioctl.save</command>
</screen>
</figure>
</section> <!-- recreate-ioctl-save -->
@ -3160,10 +3299,9 @@ isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
</blockquote>
<literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">
<citetitle>Crackers favour war dialling and weak passwords</citetitle>
John Leyden, <ulink url="http://www.theregister.co.uk/content/55/25044.html"><citetitle>The Register</citetitle></ulink>, 2002-04-26.
</literallayout>
John Leyden, <ulink url="http://www.theregister.co.uk/content/55/25044.html"><citetitle>The Register</citetitle></ulink>, 2002-04-26.</literallayout>
</figure>
@ -4279,18 +4417,45 @@ Transmit data ---------------------- Receive data</programlisting>
firm.</para>
<para>The <acronym>RS-232</acronym> standard will drive at least 15
meters of shielded cable. Longer distances are possible with
better cable; 100 meter cables are advertised by some specialty
firms. Distances longer than 15m are also be possible with the
high-quality unshielded twisted pair used for
<acronym>100Base-TX</acronym> ethernet. Be wary of long unshielded
cables, as the <acronym>RS-232</acronym> signals are not balanced and
thus pick up noise easily. For distances beyond 100m use an
<acronym>RS-232</acronym> line driver; these will typically drive up
to 2000 meters over category 3 <acronym>UTP</acronym> cable. For
greater distances consider using fiber optical modems, the global
telephony system, the mobile telephony system, satellite or
radio.</para>
metres of shielded cable. More precisely, an
<acronym>RS-232</acronym> line driver will operate against a
capacitance of up to 2500 picoFarad. So if you select a cable with
low capacitance you can drive further distances.</para>
<para>For example,
<citetitle><acronym>ANSI/TIA/EIA-568-A</acronym></citetitle>
unshielded twisted pair category 5 cable has a maximum capacitiance
of 55<acronym>pF</acronym> per metre, so this popular
&ldquo;<acronym>UTP</acronym> cat 5&rdquo; cable can be safely
driven up to 45m. Beyond that you should check the cable
manufacturers specifications for the actual &ldquo;shunt
capacitance&rdquo; (a common figure is 47.5
<acronym>pF/m</acronym>, giving a maximum cable length of about
50<acronym>m</acronym>). However long runs of unshielded cable
will pick up noise easily, as the <acronym>RS-232</acronym> signals
are not balanced. Some cable manufacturers offer shielded low
capacitance cables which can be driven up to
100<acronym>m</acronym>.</para>
<para>Attempt to minimise noise in your cabling design. Many BIOSs
and boot loaders will wait froever if they receive a single
character of line noise.</para>
<para>If you are comfortable in working beyond specifications then
you might note that the <acronym>RS-232</acronym> standard was
initially designed to operate at a synchronous
48<acronym>Kbps</acronym> and the cable requirements reflect this.
The experience of enterprise network operators has been that
structured cabling layout in buildings is limited by the 100m
distance limitation of fast ethernet over category 5 cable, not by
the practical distances achieved by RS-232 asynchronous signals at
9600bps over category 5 cable.</para>
<para>For longer distances use an <acronym>RS-232</acronym> line
driver; these will typically drive up to 2000 meters over category
3 <acronym>UTP</acronym> cable. For greater distances consider
using fiber optical modems, the global telephony system, the mobile
telephony system, satellite or radio.</para>
<para>If the environment has a lot of radio frequency noise then
use shielded cable and connectors. Connect the shield in the cable
@ -5208,7 +5373,7 @@ KLOGD_OPTIONS="-2 -c 1"</programlisting>
<guilabel>[ascii upload - Press CTRL-C to quit]</guilabel>
</screen>
<literallayout>Wait for upload to complete&hellip;</literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">Wait for upload to complete&hellip;</literallayout>
<screen format="linespecific">
<guilabel>ASCII upload of "upload.txt"
@ -5239,7 +5404,7 @@ READY: press any key to continue...</guilabel>
<guilabel>[ascii upload - Press CTRL-C to quit]</guilabel>
</screen>
<literallayout>Wait for upload to complete&hellip;</literallayout>
<literallayout format="linespecific" linenumbering="unnumbered" class="normal">Wait for upload to complete&hellip;</literallayout>
<screen format="linespecific">
<guilabel>ASCII upload of "upload.txt"
@ -6857,9 +7022,10 @@ alias char-major-10-144 nvram
<title>Copyright</title>
<para>The first edition of this document is copyright &copy; 2001
Mark F. Komarinski and is distributed under the terms of the
<citetitle>Linux Documentation Project (LDP) License</citetitle>,
see <xref linkend="about-copyright-ldp">.</para>
Mark <abbrev>F.</abbrev> Komarinski and is distributed under the
terms of the <citetitle>Linux Documentation Project
(<acronym>LDP</acronym>) License</citetitle>, see <xref
linkend="about-copyright-ldp">.</para>
<para>The revisions to this document for the second edition are
copyright &copy; AARNet Pty Ltd (Australian Company Number 084 540
@ -6868,10 +7034,16 @@ alias char-major-10-144 nvram
of this work under the <citetitle>Copyright Act 1968 (Commonwealth
of Australia)</citetitle>. The Australian Academic and Research
Network and Glen Turner distribute these parts under the terms of
the <citetitle>Linux Documentation Project (LDP)
the <citetitle>Linux Documentation Project (<acronym>LDP</acronym>)
License</citetitle>, see <xref
linkend="about-copyright-ldp">.</para>
<para>This license meets the <ulink
url="http://www.debian.org/social_contract.html#guidelines">Debian
Free Software Guidelines</ulink>, so you should find this
<citetitle>HOWTO</citetitle> in the Debian package
<filename>doc-linux-html</filename>.</para>
<section id="about-copyright-ldp">
<title><citetitle>Linux Documentation Project
@ -6998,13 +7170,33 @@ alias char-major-10-144 nvram
<varlistentry>
<term>Thomas Lunde</term>
<listitem>
<para>For noticing errors of grammar and typography.</para>
<para>Noticed errors of grammar and typography.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Darren Young</term>
<listitem>
<para>Updates to
<filename>/etc/security/console.perms</filename> for
<productname>Red Hat Linux</productname>
<productnumber>7.2</productnumber>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Yasufumi Haga</term>
<listitem>
<para>Spotted many errors whilst translating this
<citetitle>HOWTO</citetitle> into Japanese for the
<acronym>JF</acronym> Linux documentation endeavour.</para>
</listitem>
</varlistentry>
</variablelist>
</section> <!-- about-credits -->
<section id="about-feedback">
<title>Comments and corrections</title>
@ -7018,9 +7210,9 @@ alias char-major-10-144 nvram
improving, so please also send those small alterations required for
your latest version of your <systemitem
class="osname">Linux</systemitem> distribution. The
<citetitle>HOWTO</citetitle>'s author is not a professional, so if
you find some text difficult to comprehend then let the maintainer
know.</para>
<citetitle>HOWTO</citetitle>'s author is not a professional writer,
so if you find some text difficult to comprehend then let the
maintainer know.</para>
</section> <!-- about-feedback -->
@ -7038,20 +7230,25 @@ alias char-major-10-144 nvram
generated from the DocBook source by the Linux Documentation
Project.</para>
<para>It appears that some character entities, such as quotes and
ellipses, do not appear correctly in the
<para>It appears that some character entities such as quotes
(&lsquo;&rsquo; &ldquo;&rdquo;) and ellipses (&hellip;), appear as
ampersands (&amp;) in the
<productname><acronym>PDF</acronym></productname> generated by the
Linux Documentation Project. In this case you may wish to download
the <productname>PostScript</productname> file and use
<application>GhostScript</application> to convert the
<productname>PostScript</productname> file to
the <ulink
url="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/Remote-Serial-Console-HOWTO.ps.gz"><productname>PostScript</productname>
file</ulink> and use <ulink
url="http://www.cs.wisc.edu/~ghost/"><application>GhostScript</application></ulink>
to convert the <productname>PostScript</productname> file to
<productname><acronym>PDF</acronym></productname> with the
command:</para>
<screen format="linespecific">
<prompt>bash$</prompt> <command>gs -q -dNOPAUSE -dBATCH -dSAFER \
-sPAPERSIZE=a4 -sDEVICE=pdfwrite -sOutputFile=Remote-Serial-Console-HOWTO.pdf \
-c .setpdfwrite -f Remote-Serial-Console-HOWTO.ps</command>
<screen format="linespecific" linenumbering="unnumbered">
<prompt>bash$</prompt> <userinput>gs -q -dNOPAUSE -dBATCH -dSAFER \
-dNOPLATFONTS dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true \
-sPAPERSIZE=a4 -sDEVICE=pdfwrite -dCompatibilityLevel=1.2 \
-sOutputFile=Remote-Serial-Console-HOWTO.pdf \
-c .setpdfwrite -f Remote-Serial-Console-HOWTO.ps</userinput>
</screen>
</colophon>