
我們希望同時使用4個串列埠Centos 5.3
(由於應用限制無法升級到新版本)。
COM1 和 COM2 正常運作。我們使用echo輸出到客戶顯示器來測試:
echo "testing 123" > /dev/ttyS0
=> OK!
但是,我們無法讓 COM3、COM4 運作。請參閱下面的螢幕輸出/配置:
[root@station ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
serial8250: ttyS2 at I/O 0x3e8 (irq = 7) is a 16550A
serial8250: ttyS3 at I/O 0x2e8 (irq = 6) is a 16550A
00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:0b: ttyS2 at I/O 0x3e8 (irq = 7) is a 16550A
00:0c: ttyS3 at I/O 0x2e8 (irq = 6) is a 16550A
00:0d: ttyS4 at I/O 0x2e0 (irq = 10) is a 16550A
00:0e: ttyS5 at I/O 0x2f0 (irq = 11) is a 16550A
vim /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:16380 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 RTS|CTS|DTR|DSR
2: uart:16550A port:000003E8 irq:7 tx:16 rx:0 RTS|CTS|DTR|DSR
3: uart:16550A port:000002E8 irq:6 tx:0 rx:0 RTS|CTS|DTR|DSR
4: uart:16550A port:000002E0 irq:10 tx:0 rx:0
5: uart:16550A port:000002F0 irq:11 tx:0 rx:0
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
vim /etc/rc.local
setserial /dev/ttyS2 port 0x3e8 UART 16550A irq 7
setserial /dev/ttyS3 port 0x2e8 UART 16550A irq 6
然而,當我們嘗試 Ubuntu 12.04 => 它可以工作(所以我們知道這不是硬體問題)
ttyS0: 3f8 (irq = 4)
ttyS1: 2f8 (irq = 3)
ttyS2: 3e8 (irq = 4) <= ubuntu auto set it to irq 4
ttyS3: 2e8 (irq = 3) <= ubuntu auto set it to irq 3
Centos 5.3 (cannot get output on COM3, COM4)
ttyS0: 3f8 (irq = 4)
ttyS1: 2f8 (irq = 3)
ttyS2: 3e8 (irq = 7)
ttyS3: 2e8 (irq = 6)
我意識到這與上一篇文章有點相關 setserial /dev/ttyS4:無法設定串列訊息
[Q1] 如果 COM1(ttyS0) 和 COM2(ttyS1) 已經分別使用 irq4 和 irq3,COM3 和 COM4 可以再使用 irq4 和 irq3 嗎?
[Q2] 我們無法使用 SetSerial 將 irq 從 irq1-irq15 改為另一個 irq。然而,當我們設定為 irq0 時,我們能夠讓設備運作。但是,建議我們不要使用 irq0,因為它應該保留給系統時間。