首先,安装串口工具setserial ,命令: sudo apt-get install setserial,利用setserial工具查看串口情况,
-
$ sudo setserial /dev/ttyS0 -a
/dev/ttyS0, Line 0, UART: unknown, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test
$ sudo setserial /dev/ttyS3 -a
/dev/ttyS3, Line 3, UART: 16550A, Port: 0xb800, IRQ: 18
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal
目的主要是对主机自带串口及PCI扩展串口的区别。区别在于第二次显示的内容中UART:未unknow。不过若您检测这一步的时候 UART为16550A而不是unknow,证明你的系统已经认识了扩展的串口,不需要进一步设置。
其后,利用lspci查看pci设备情况,命令:lspci -v。输出:
01:06.0 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02) Subsystem: Device a000:1000 Flags: medium devsel, IRQ 17 I/O ports at bc00 [size=8] Memory at fd7ff000 (32-bit, non-prefetchable) [size=4K] Memory at fd7fe000 (32-bit, non-prefetchable) [size=4K] Capabilities: <access denied>
01:06.1 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02) Subsystem: Device a000:1000 Flags: medium devsel, IRQ 18 I/O ports at b800 [size=8] Memory at fd7fd000 (32-bit, non-prefetchable) [size=4K] Memory at fd7fc000 (32-bit, non-prefetchable) [size=4K] Capabilities: <access denied>
|
在输出中找到“Serial controller:”,即串口控制器,后面是设备信息,比如我的是9865控制芯片,下面的是串口详细信息,比如irq 是17,I/O地址是0xbc00。
最后,设置串口设备文件,根据实际情况对下面命令行修改。
$sudo setserial /dev/ttyS2 port 0xbc00 UART 16550A irq 17 Baud_base 115200 $sudo setserial /dev/ttyS3 port 0xb800 UART 16550A irq 18 Baud_base 115200 |
可以再利用 setserial查看串口情况。