.png)
4 つのシリアル ポートを一緒に使用したいと考えていますCentos 5.3
(アプリケーションの制限により、新しいバージョンにアップグレードできませんでした)。
COM1 と COM2 は完璧に動作します。テストではエコーを使用して顧客のディスプレイに出力します。
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 はシステム時間用に予約する必要があるため、使用しないようアドバイスされました。