Centos 5.3 - リソースの競合なしに 4 つの COM ポートを使用する必要があります (システムには 6 つの COM ポートがあります)

Centos 5.3 - リソースの競合なしに 4 つの COM ポートを使用する必要があります (システムには 6 つの COM ポートがあります)

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 はシステム時間用に予約する必要があるため、使用しないようアドバイスされました。

関連情報