我最近遇到了为PCIe 到串行适配器编译驱动程序的案例。(更具体地说,该卡上的 AX99100 芯片组)
为了快速测试,我并没有真正安装驱动程序,只是使用insmod
命令加载驱动程序。
调查后dmesg
,我发现它生成/dev/ttyF0
and/dev/ttyF1
而不是/dev/ttyS0
and很奇怪/dev/ttyS1
我想知道那个设备名称是怎么来的?
这是因为insmod
还是因为 PCIe 或操作系统?
司机工作正常。
我最近遇到了为PCIe 到串行适配器编译驱动程序的案例。(更具体地说,该卡上的 AX99100 芯片组)
为了快速测试,我并没有真正安装驱动程序,只是使用insmod
命令加载驱动程序。
调查后dmesg
,我发现它生成/dev/ttyF0
and/dev/ttyF1
而不是/dev/ttyS0
and很奇怪/dev/ttyS1
我想知道那个设备名称是怎么来的?
这是因为insmod
还是因为 PCIe 或操作系统?
司机工作正常。
在 Linux 上,
ttyS
并不是所有串行端口的通用名称——它是 PC 上 8250 UART 串行端口的名称,类似地是其他一些平台上的“内置”串行端口。因此,每个驱动程序在创建设备时决定自己的名称,并且许多“附加”串行卡(使用各种专有芯片)的驱动程序故意选择不同的前缀以避免混淆。在您的情况下,驱动程序的作者选择使用
ttyF
.(毕竟,PCI 卡实际上并不模拟 8250 串行端口。操作系统将其视为全新的不同设备——这就是为什么它首先需要自定义驱动程序的原因。)
以下是 Linux 内置的一些其他示例(我在 'grep' 中找到了这些示例):