cat: /dev/ttyS0: 입력/출력 오류

cat: /dev/ttyS0: 입력/출력 오류

나는 글을 쓸 수도 읽을 수도 없다/dev/ttyS0

# cat /dev/ttyS0                
cat: /dev/ttyS0: Input/output error

장치가 존재하고 루트에 권한이 있습니다.

# ls -lAhF /dev/ttyS0
crw------- 1 root root 4, 64 Nov 18 12:09 /dev/ttyS0

# setserial -g /dev/ttyS0 
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

# dmesg | egrep -i 'serial|ttys'
[    1.243271] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 2703.151301] ttyS0: LSR safety check engaged!

# cat /proc/devices | grep tty  
  4 tty
  4 ttyS
  5 /dev/tty

커널에서 직렬을 활성화했습니다.

# grep SERIAL config
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_CORE=y

시리얼 작업을 하려면 어떻게 해야 하나요?

답변1

직렬 장치가 제대로 작동하려면 많은 구성(전송 속도, 정지 비트, 시작 비트, 패리티 등)이 필요합니다. 일반적으로 말하자면, cat/echo를 사용하여 액세스하려는 시도는 바로 작동하지 않으며 사용하기에 좋은 방법도 아닙니다.

직렬 장치 사용에 대한 사용 사례는 무엇입니까? 이런 앱을 쓸 수 있나요minicom(바라보다:https://www.youtube.com/watch?v=35gdWj94-lQ) 또는microcom장치에 액세스하고 필요한 구성을 제공하시겠습니까? 그렇지 않은 경우 사용해보십시오.sttyecho/cat을 시도하기 전에 장치에서 직렬 구성을 읽고 쓰십시오.

Python 경험이 있다면 시도해 보는 것이 좋습니다.py 직렬 포트(바라보다:https://pyserial.readthedocs.io/en/latest/pyserial_api.html) 도서관. 이를 통해 프로그래밍 방식으로 직렬 구성을 설정한 다음 직렬 포트 개체에 대한 읽기/쓰기를 호출할 수 있습니다.

관련 정보