Remote Serial Console HOWTO
Prev Chapter 2. Preparation Next

2.2. Select a serial port

2.2.1. Serial port names

Linux names its serial ports in the UNIX tradition. The first serial port has the file name /dev/ttyS0 , the second serial port has the file name /dev/ttyS1 , and so on.

This differs from the IBM PC tradition. The first serial port is named COM1: , the second serial port is named COM2: , and so on. Up to four serial ports can be present on a IBM PC/AT computer and its successors.

Most boot loaders have yet another naming scheme. The first serial port is numbered 0 , the second serial port is numbered 1 , and so on.

If your distribution of Linux uses the devfs device manager then the serial ports have yet another name. The first serial port is /dev/TT> , the second serial port is /dev/tts/1 , and so on.

The result is that the first serial port is labeled COM1: on the chassis of the IBM PC ; is known as /dev/ttyS0 to Linux ; is known as /dev/tts/0 to Linux when configured with devfs ; and is known as port 0 to many boot loaders.

The examples in this HOWTO use this first serial port, as that is the serial port which most readers will wish to use.

Table 2-1. Many names for the same serial port

IBM PC Linux kernel Linux kernel with devfs Most boot loaders
COM1: /dev/ttyS0 /dev/tts/0 0
COM2: /dev/ttyS1 /dev/tts/1 1
COM3: /dev/ttyS2 /dev/tts/2 2
COM4: /dev/ttyS3 /dev/tts/3 3

2.2.2. Cannot share interrupt used for console's serial port

When used for a console the serial port cannot share an interrupt with another device. The IBM PC devices are usually installed as shown in Table 2-2 . If you use the serial port /dev/ttyS0 for the console then you should avoid sharing interrupt 4 by not installing a serial port /dev/ttyS2 in your PC . If /dev/ttyS2 cannot be physically removed then disable it using the setserial command, as shown in Figure 2-1 .

Table 2-2. Interrupts used for IBM PC/AT RS-232 ports

Device Interrupt Port
/dev/ttyS0 4 0x3f8
/dev/ttyS1 3 0x2f8
/dev/ttyS2 4 0x3e8
/dev/ttyS3 3 0x2e8

Figure 2-1. Using the setserial command in /etc/rc.serial to disable the serial port /dev/ttyS2

# 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

Reading the source code suggests that the interrupt-sharing constraint applies to all computer architectures, not just Intel Architecture-32.


Prev Home Next
Create fallback position Up Select a serial speed and parameters