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을 사용하여 irq1-irq15에서 다른 irq로 irq를 변경할 수 없습니다. 그러나 이를 irq0으로 설정하면 장치가 작동할 수 있었습니다. 그러나 irq0은 시스템 시간용으로 예약되어야 하므로 사용하지 않는 것이 좋습니다.