列出 FreeBSD 上的串行设备

列出 FreeBSD 上的串行设备

在 FreeBSD 上,我正在寻找一种列出串行通信设备的方法。

计算机安装了其中两个:板载串行控制台 ( ttyS0) 和内部模拟调制解调器。

我可以通过以下方式找到有关内部调制解调器的信息pciconf

# pciconf -lbcevV pci0:5:8:0
none0@pci0:5:8:0:   class=0x078000 card=0x8d881043 chip=0x270214f1 rev=0x01 hdr=0x00
    vendor     = 'Conexant Systems, Inc.'
    class      = simple comms
    bar   [10] = type Memory, range 32, base 0xd1000000, size 65536, enabled
    bar   [14] = type I/O Port, range 32, base 0xa800, size 8, enabled
    cap 01[40] = powerspec 2  supports D0 D3  current D0

因此,这显然是调制解调器,我可以通过供应商 ID 来判断,它与我的 Conexant RD01-D270 内部模拟调制解调器上的芯片一致。

dmidecode -t connector让我找到这个:

Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
    Internal Reference Designator: COM1
    Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
    External Reference Designator:  
    External Connector Type: DB-9 male
    Port Type: Serial Port 16450 Compatible

所以这显然是板载串行接口。

问题是:它们是什么设备?我可以相当安全地假设板载串行接口是/dev/ttyS0,但这只是一个猜测。事实上,因为这是 FreeBSD,所以很可能是/dev/console。但调制解调器是哪一个呢?我认为这将是一个串行控制台或拨号器,但这/dev/cuau0只是一个猜测。

有没有一种可靠的方法可以找出这个问题,而无需猜测等?

答案1

使用pstat(8)。它将显示所有终端,然后您可以从中减去虚拟终端 (ttyv*) 和 ptys,留下串行终端 - 在本例中为 ttyu0 和 ttyu1,如 中所述uart(4):

% pstat -t
      LINE   INQ  CAN  LIN  LOW  OUTQ  USE  LOW   COL  SESS  PGID STATE
     ttyu0     0    0    0    0     0    0    0     0     0     0 IC
     ttyu1     0    0    0    0     0    0    0     0     0     0 IC
     ttyv0  1920    0    0  192  1984    0  199 37695 87297 87297 Oicl
     ttyv1  1920    0    0  192  1984    0  199     7   852   852 Oil
     ttyv2  1920    0    0  192  1984    0  199     7   853   853 Oil
     ttyv3  1920    0    0  192  1984    0  199     7   854   854 Oil
     ttyv4  1920    0    0  192  1984    0  199     7   855   855 Oil
     ttyv5  1920    0    0  192  1984    0  199     7   856   856 Oil
     ttyv6  1920    0    0  192  1984    0  199     7   857   857 Oil
     ttyv7  1920    0    0  192  1984    0  199     7   858   858 Oil
     ttyv8     0    0    0    0     0    0    0     0     0     0 -
     ttyv9     0    0    0    0     0    0    0     0     0     0 -
     ttyva     0    0    0    0     0    0    0     0     0     0 -
     ttyvb     0    0    0    0     0    0    0     0     0     0 -
     pts/1  1920    0    0  192  1984    0  199 99999   874   882 Oi
     pts/3  1920    0    0  192  1984    0  199   104 79048 79048 Oi
     pts/2  1920    0    0  192  1984    0  199     3 19896 32414 Oi
     pts/4  1920    0    0  192  1984    0  199    38 46538 46538 Oi
     pts/0  1920    0    0  192  1984    0  199 65737 50951 50956 Oil
     pts/5  1920    0    0  192  1984    0  199     0 50987 50993 Oi

答案2

您在 dmesg 中没有看到该调制解调器的驱动程序,因为没有加载该驱动程序,这可能意味着 FreeBSD 没有相应的驱动程序。这是因为该调制解调器使用 CX11252-15 芯片组,并且不是硬件调制解调器,而是带有闭源驱动程序的“softmodem”或“winmodem”。 FreeBSD 不包括对任何 winmodem 的开箱即用支持。

另外,“isa”位并不像您想象的那么奇怪。许多(大多数?全部?)PC 仍然具有内部 PCI-ISA 桥来支持传统设备。板载调制解调器和串行端口、PS2 kb/鼠标、RTC 等都属于这一类。

相关内容