Linux 依照 UNIX 传统命名其串口。第一个串口的文件名是/dev/ttyS0,第二个串口的文件名是/dev/ttyS1,依此类推。
这与 IBM PC 传统不同。第一个串口被命名为COM1,第二个串口被命名为COM2,依此类推。在 IBM PC/AT 计算机及其后继机型上最多可以有四个串口。
大多数引导加载程序还有另一种命名方案。第一个串口编号为01,依此类推。
如果你的 Linux 发行版使用 devfs 设备管理器,那么串口还有另一种名称。第一个串口是/dev/tts/0,第二个串口是/dev/tts/1,依此类推。
结果是,第一个串口在COM1IBM PC 的机箱上被标记为;被称为/dev/ttyS0在 Linux 中被称为;被称为/dev/tts/0在配置了 devfs 的 Linux 中被称为;在许多引导加载程序中被称为端口0。
本 HOWTO 中的示例使用第一个串口,因为那是大多数读者希望使用的串口。
当串口用作控制台时,不能与另一个设备共享中断。IBM PC 设备通常按照表 2-2 所示安装。如果你使用串口/dev/ttyS0作为控制台,那么你应该避免共享中断 4,方法是不安装串口/dev/ttyS2在你的 PC 中。如果/dev/ttyS2无法物理移除,那么可以使用 setserial 命令禁用它,如图 2-1 所示。
表 2-2. 用于 IBM PC/AT RS-232 端口的中断
设备 | 中断 | 端口 |
---|---|---|
/dev/ttyS0 | 4 | 0x3f8 |
/dev/ttyS1 | 3 | 0x2f8 |
/dev/ttyS2 | 4 | 0x3e8 |
/dev/ttyS3 | 3 | 0x2e8 |
图 2-1. 在/etc/rc.serial中使用 setserial 命令禁用串口/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 |
阅读源代码表明,中断共享约束适用于所有计算机架构,而不仅仅是 Intel Architecture-32。