<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 >