old-www/HOWTO/Remote-Serial-Console-HOWTO/preparation-setport.html

647 lines
8.7 KiB
HTML

<HTML
><HEAD
><TITLE
>Select a serial port </TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Remote Serial Console HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="Preparation"
HREF="preparation.html"><LINK
REL="PREVIOUS"
TITLE="Create fallback position"
HREF="preparation-fallback.html"><LINK
REL="NEXT"
TITLE="Select a serial speed and parameters"
HREF="preparation-setspeed.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Remote Serial Console HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="preparation-fallback.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. Preparation</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="preparation-setspeed.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="PREPARATION-SETPORT"
></A
>2.2. Select a serial port</H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="PREPARATION-SETPORT-NAME"
></A
>2.2.1. Serial port names</H2
><P
>Linux names its serial ports in the
<SPAN
CLASS="PRODUCTNAME"
>UNIX</SPAN
> tradition. The first serial port
has the file name <TT
CLASS="FILENAME"
>/dev/ttyS0</TT
>, the second serial port
has the file name <TT
CLASS="FILENAME"
>/dev/ttyS1</TT
>, and so on.</P
><P
>This differs from the <SPAN
CLASS="PRODUCTNAME"
><SPAN
CLASS="ACRONYM"
>IBM</SPAN
>
<SPAN
CLASS="ACRONYM"
>PC</SPAN
></SPAN
> tradition. The first serial
port is named <TT
CLASS="FILENAME"
>COM1:</TT
>, the
second serial port is named <TT
CLASS="FILENAME"
>COM2:</TT
>, and so on. Up to four serial
ports can be present on a <SPAN
CLASS="PRODUCTNAME"
><SPAN
CLASS="ACRONYM"
>IBM</SPAN
>
<SPAN
CLASS="ACRONYM"
>PC/AT</SPAN
></SPAN
> computer and its
successors.</P
><P
>Most boot loaders have yet another naming scheme. The first
serial port is numbered <TT
CLASS="LITERAL"
>0</TT
>, the second serial
port is numbered <TT
CLASS="LITERAL"
>1</TT
>, and so on.</P
><P
>If your distribution of <SPAN
CLASS="SYSTEMITEM"
>Linux</SPAN
> uses the
<SPAN
CLASS="APPLICATION"
>devfs</SPAN
> device manager then the serial
ports have yet another name. The first serial port is <TT
CLASS="FILENAME"
>/dev/tts/0</TT
>, the second serial port
is <TT
CLASS="FILENAME"
>/dev/tts/1</TT
>, and so
on.</P
><P
>The result is that the first serial port is labeled
<TT
CLASS="FILENAME"
>COM1:</TT
> on the chassis of
the <SPAN
CLASS="PRODUCTNAME"
><SPAN
CLASS="ACRONYM"
>IBM</SPAN
>
<SPAN
CLASS="ACRONYM"
>PC</SPAN
></SPAN
>; is known as <TT
CLASS="FILENAME"
>/dev/ttyS0</TT
> to <SPAN
CLASS="SYSTEMITEM"
>Linux</SPAN
>; is known as <TT
CLASS="FILENAME"
>/dev/tts/0</TT
> to <SPAN
CLASS="SYSTEMITEM"
>Linux</SPAN
> when configured with
<SPAN
CLASS="APPLICATION"
>devfs</SPAN
>; and is known as port
<TT
CLASS="LITERAL"
>0</TT
> to many boot loaders.</P
><P
>The examples in this <I
CLASS="CITETITLE"
>HOWTO</I
> use this
first serial port, as that is the serial port which most readers
will wish to use.</P
><DIV
CLASS="TABLE"
><A
NAME="PREPARATION-SETPORT-NAMES-MANY"
></A
><P
><B
>Table 2-1. Many names for the same serial port</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
><SPAN
CLASS="PRODUCTNAME"
>IBM PC</SPAN
></TH
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
><SPAN
CLASS="SYSTEMITEM"
>Linux</SPAN
> kernel</TH
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
><SPAN
CLASS="SYSTEMITEM"
>Linux</SPAN
> kernel with
<SPAN
CLASS="APPLICATION"
>devfs</SPAN
></TH
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
>Most boot loaders</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>COM1:</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS0</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/tts/0</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>0</TT
></TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>COM2:</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS1</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/tts/1</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>1</TT
></TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>COM3:</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS2</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/tts/2</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>2</TT
></TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>COM4:</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS3</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/tts/3</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>3</TT
></TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="PREPARATION-SETPORT-INTERRUPT"
></A
>2.2.2. Cannot share interrupt used for console's serial
port</H2
><P
>When used for a console the serial port cannot share an
interrupt with another device. The
<SPAN
CLASS="PRODUCTNAME"
><SPAN
CLASS="ACRONYM"
>IBM</SPAN
>
<SPAN
CLASS="ACRONYM"
>PC</SPAN
></SPAN
> devices are usually installed
as shown in <A
HREF="preparation-setport.html#PREPARATION-SETPORT-IBMPC"
>Table 2-2</A
>. If you
use the serial port <TT
CLASS="FILENAME"
>/dev/ttyS0</TT
> for the console then you
should avoid sharing interrupt 4 by not installing a serial port
<TT
CLASS="FILENAME"
>/dev/ttyS2</TT
> in your
<SPAN
CLASS="ACRONYM"
>PC</SPAN
>. If <TT
CLASS="FILENAME"
>/dev/ttyS2</TT
> cannot be physically
removed then disable it using the <B
CLASS="COMMAND"
>setserial</B
>
command, as shown in <A
HREF="preparation-setport.html#PREPARATION-SETPORT-SETSERIAL"
>Figure 2-1</A
>.</P
><DIV
CLASS="TABLE"
><A
NAME="PREPARATION-SETPORT-IBMPC"
></A
><P
><B
>Table 2-2. Interrupts used for <SPAN
CLASS="PRODUCTNAME"
><SPAN
CLASS="ACRONYM"
>IBM</SPAN
>
<SPAN
CLASS="ACRONYM"
>PC/AT</SPAN
></SPAN
> <SPAN
CLASS="ACRONYM"
>RS-232</SPAN
>
ports</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
>Device</TH
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
>Interrupt</TH
><TH
ALIGN="CENTER"
VALIGN="BOTTOM"
>Port</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS0</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>4</TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>0x3f8</TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS1</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>3</TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>0x2f8</TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS2</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>4</TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>0x3e8</TD
></TR
><TR
><TD
ALIGN="CENTER"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>/dev/ttyS3</TT
></TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>3</TD
><TD
ALIGN="CENTER"
VALIGN="TOP"
>0x2e8</TD
></TR
></TBODY
></TABLE
></DIV
><DIV
CLASS="FIGURE"
><A
NAME="PREPARATION-SETPORT-SETSERIAL"
></A
><P
><B
>Figure 2-1. Using the <B
CLASS="COMMAND"
>setserial</B
> command in
<TT
CLASS="FILENAME"
>/etc/rc.serial</TT
>to disable the serial port
<TT
CLASS="FILENAME"
>/dev/ttyS2</TT
></B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="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</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><P
>Reading the source code suggests that the interrupt-sharing
constraint applies to all computer architectures, not just Intel
Architecture-32.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="preparation-fallback.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="preparation-setspeed.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Create fallback position</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="preparation.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Select a serial speed and parameters</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>