为什么有些 Linux 发行版仍然有 /dev/ttyS0、ttyS1 等,即使较新的计算机没有这样的串行端口?

cif*_*fer 39 linux udev serial-port

许多新的膝上型计算机和台式计算机没有 9 针/25 针串行端口。为什么许多 Linux 发行版仍然包含/dev/ttyS0,dev/ttyS1设备文件?

由于udev可以动态地创建设备文件,为什么/dev/ttyS0/dev/ttyS1还是静态创建?每次我开机,/dev/ttyS0/dev/ttyS1在那里。

顺便说一句:我正在使用 Debian 7.0。

War*_*ung 45

/dev出现这些节点是因为标准 PC 串行端口驱动程序已编译到您正在使用的内核中,并且它正在查找UARTs。这会导致/sys/devices/platform/serial8250(或兼容的)出现,因此udev创建相应的/dev节点。

这些 UART 很可能是主板芯片组的众多功能之一。芯片组中的串行 UART 仍然很常见,尽管 DB-9 连接器连接到这些 IC UART 引脚的情况越来越少。

在某些主板上,每个串行端口都有一个接头连接器,如果您想将该连接器连接到 PC 背面,则必须购买适配器电缆:

10 针接头转 DB-9M 适配器电缆

使用相同芯片组的其他主板甚至可能不会暴露插头连接器,即使该功能在硅中可用,纯粹是为了节省一些 PCB 空间和几美分的插头连接器。

几个串行 UART 为批量生产的 PC 芯片组 IC 增加的成本可以忽略不计,而将 DB-9 连接器连接到板边缘的主板的最终零售成本增加了几美元。PCB空间也有成本;板边的空间尤为宝贵。

没有标准方法可以探测连接到 RS-232 串行端口的设备是否存在。

对比 USB,在主板上仅仅存在端口不会导致/dev创建节点,但插入设备会导致创建,因为设备和主机操作系统之间存在相当复杂的协商。实际上,设备向操作系统宣布自己,因此udev可以通过/dev为设备创建适当的节点来做出反应。

  • 我还建议提到,许多笔记本电脑主板 - 确实 - 有一个串行控制器,它只是没有任何地方,所以不能在不拆卸笔记本电脑并焊接到测试点的情况下使用,许多制造商使用它对生产线进行一些基本检查在发货前确保主板的基本功能水平。然而,就 Linux 而言,这意味着有一个串行端口,它可以像任何带有串行控制器的板子预期的那样实例化它。 (11认同)