通过检查串行文件夹@:\驱动器\tty\串行
有很多不同的串口驱动程序,哪个是x86的?
发布于 2019-01-24 11:33:17
发布于 2021-02-02 17:39:59
@玛格丽特·布鲁姆有一个很好的答案。8250/16550兼容的UART是普通x86 PCH机的基础,并集成到northbridge/southbridge /PCH芯片组中。如前所述,这并不意味着使用了集成的UART;可以添加第三方串行卡(请参阅下面的Maxim MAX310x串行驱动程序)。
那么,你怎么知道他们在用什么呢?下面是运行debian 10的QEMU会话中的一些命令:
q35ek:511> ls -l /dev/ttyS0
crw------- 1 dave tty 4, 64 Feb 2 12:09 /dev/ttyS0
q35ek:512> sudo cat /proc/tty/driver/serial | egrep '^0:'
0: uart:16550A port:000003F8 irq:4 tx:11291 rx:18 RTS|CTS|DTR|DSR|CD
q35ek:513> sudo cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
ttyprintk /dev/ttyprintk 5 3 console
max310x /dev/ttyMAX 204 209-224 serial
serial /dev/ttyS 4 64-111 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
unknown /dev/tty 4 1-63 console
q35ek:514> 第一个命令查找您感兴趣的tty的主要/次要数字。
第二个发现有关驱动程序的信息:它是一个uart:16550A ( 'A‘模型有一个字符fifo),它位于IO端口0x3F8上,使用IRQ 4、tx和rx字符计数,最后是可用的控制选项。
第三部分显示每个设备的匹配驱动程序。4:64使用serial driver_name。有些开发人员并不擅长唯一定义driver_name,所以这可能是8250/16550兼容设备(在$K/drivers/tty/serial/8250下)、DECstation DZ芯片或GRLIB。我正在讨论一个分支,并说它是一个8250/16550接口,如下面的代码片段所示:
static struct uart_driver serial8250_reg = {
.owner = THIS_MODULE,
.driver_name = "serial",
.dev_name = "ttyS",
.major = TTY_MAJOR,
.minor = 64,
.cons = SERIAL8250_CONSOLE,
};https://stackoverflow.com/questions/54341830
复制相似问题