INTEL NUC DE3815TYBE에서 직렬 포트를 사용하는 데 문제가 있습니다. 커널 버전 3.16.0-0.bpo.4-amd64로 Debian Wheezy를 설치했습니다.
내가 할 때 :
setserial -g /dev/ttyS*
나는 얻다:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 19
/dev/ttyS2, UART: 16550A, Port: 0x0000, IRQ: 19
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
아무 문제 없이 ttyS0 - ttyS2에 연결할 수 있지만 ttyS3이 작동하지 않고 다음 오류가 발생합니다.
나는 다음 명령을 호출합니다.
stty -F /dev/ttyS3 9600 cs8 cread clocal
나는 얻다:
stty: /dev/ttyS3: Input/output error
이 문제를 해결하는 방법을 아시나요? ROOT로 명령을 실행합니다. 나는 또한 다음을 시도했습니다: setserial /dev/ttyS3 irq 3 uart 16550Askip_test 그러나 동일한 stty: /dev/ttyS3: input/output error가 발생합니다.
산출:
dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.952559] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.953593] 0000:00:1e.3: ttyS1 at MMIO 0xd0810000 (irq = 19, base_baud = 2764800) is a 16550A
[ 0.954072] 0000:00:1e.4: ttyS2 at MMIO 0xd080e000 (irq = 19, base_baud = 2764800) is a 16550A
[ 27.740208] ttyS2 - failed to request DMA
[ 27.746627] ttyS1 - failed to request DMA
[ 440.532070] ttyS3: LSR safety check engaged!
[ 443.700047] ttyS3: LSR safety check engaged!
[ 445.288960] ttyS3: LSR safety check engaged!
[ 452.796029] ttyS3: LSR safety check engaged!
[ 453.716441] ttyS3: LSR safety check engaged!
[ 463.732506] ttyS3: LSR safety check engaged!
[ 470.222491] ttyS3: LSR safety check engaged!
[ 470.222774] ttyS3: LSR safety check engaged!
[ 473.748363] ttyS3: LSR safety check engaged!
[ 474.359756] ttyS3: LSR safety check engaged!
[ 482.783201] ttyS3: LSR safety check engaged!
[ 483.763953] ttyS3: LSR safety check engaged!
[ 493.931641] ttyS3: LSR safety check engaged!
[ 503.982224] ttyS3: LSR safety check engaged!
[ 514.020686] ttyS3: LSR safety check engaged!
[ 524.074170] ttyS3: LSR safety check engaged!
[ 534.090644] ttyS3: LSR safety check engaged!
[ 544.110381] ttyS3: LSR safety check engaged!
lsof /dev/ttyS3은 아무것도 반환하지 않으므로 ttyS3에 연결된 것이 아무것도 없다는 뜻입니다. 하지만 Linux에 대한 경험이 많지 않아 틀릴 수도 있습니다.
Linux에서는 ttyS*가 4개로 표시되지만 실제로 마더보드에는 물리적 직렬 포트가 2개만 있는 이유는 무엇입니까?
답변1
물리적 직렬 포트가 2개만 있다고 말씀하셨는데, ttyS1과 ttyS2를 감지하셨습니다. ttyS3 및 ttyS4는 존재하지 않습니다. 노출되어 있지만 무시해야 합니다. 이것이 드라이버가 작동하는 방식입니다. 직렬 포트가 무엇인지 감지하여 사용자에게 노출하지만 드라이버가 100% 확신할 수 없기 때문에 실제 직렬 포트인지 확인해야 합니다. 이 줄은:
ttyS3: LSR 보안 검사가 시작되었습니다!
직렬 포트가 ttyS3
아직 준비되지 않았다는 메시지가 표시됩니다. 귀하의 경우에는 존재하지 않기 때문에 결코 준비되지 않습니다. 드라이버는 직렬 포트를 올바르게 감지하기 위해 최선을 다하지만 때로는 실패합니다. 이 경우 이미 수행하고 있는 노출된 인터페이스가 실제로 하드웨어에 수동으로 연결되어 있는지 찾아야 합니다.