노트북에 직렬/RS232/COM1 포트가 없는데 Linux에 /dev/ttyS*가 있는 이유는 무엇입니까?

노트북에 직렬/RS232/COM1 포트가 없는데 Linux에 /dev/ttyS*가 있는 이유는 무엇입니까?

나는 Debian Wheezy를 실행하고 있는데 내 노트북에는 직렬 포트가 없습니다. 왜 이 있고 /dev/ttyS*, 이를 읽고 쓰려고 하면 어떻게 됩니까?

내 구성:

└──> ll /dev/ttyS*
crw-rw---T 1 root dialout 4, 64 Apr 30 09:21 /dev/ttyS0
crw-rw---T 1 root dialout 4, 65 Apr 30 09:21 /dev/ttyS1
crw-rw---T 1 root dialout 4, 66 Apr 30 09:21 /dev/ttyS2
crw-rw---T 1 root dialout 4, 67 Apr 30 09:21 /dev/ttyS3

└──> sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:unknown port:000002F8 irq:3
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

└──> stty -g
6d02:5:4bf:8a3b:3:1c:7f:15:4:0:1:ff:11:13:1a:ff:12:f:17:16:ff:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

└──> dmesg | grep tty
[    0.000000] console [tty0] enabled
[    0.653544] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.712718] 00:02: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

추신:여기사용자에게 포트가 하나 있고 /dev 아래에 포트가 4개 있지만 나에게는 포트가 하나도 없는 경우가 언급됩니다.

답변1

ttyS0 포트가 실제로 마더보드에 존재할 가능성이 매우 높습니다. 그리고 아마도 마더보드에도 이를 사용할 수 있는 커넥터가 있을 것입니다! 내가 마지막 보드를 구입했을 때 나도 그 결론에 도달했고(나열된 포트를 보고) 보드 설명서에서 모든 커넥터를 찾아보았습니다. 외부로 직접 연결되는 커넥터는 없었고 단지 작은 '헤더'만 있었습니다. 그래서 케이블을 db9 외부 커넥터에 연결했는데 모두 작동합니다!

다음 세 가지( ttyS1-S3)는 존재하지 않을 가능성이 높지만 직렬 포트 드라이버가 이를 테스트했기 때문에 나열되었습니다. 이는 많은 Linux에서 기본 동작입니다. setserialLinux가 부팅될 때 호출되는 함수인 에 대한 매뉴얼 페이지를 참조하십시오 . 그것은 말한다:

일반적인 부팅 프로세스 중에는 아래 나열된 기본 I/O 포트 및 IRQ 값을 사용하여 COM 포트 1-4만 초기화됩니다.

편집: 그런데 작업 ttyS*이 파일인지 아닌지 쉽게 알 수 있습니다. 콘솔 명령으로 무언가를 보내보세요:

cat <some_short_file> > /dev/ttyS1

I/O error연결된 드라이버가 없기 때문에 아마도 을 줄 것입니다 . 동일하게 ttyS0정상적으로 작동합니다. 명령의 명령 은 명령 >출력을 cat직렬 포트로 리디렉션합니다. cp shortfile /dev/ttyS0작동합니다.

편집: ttyS1-S3은 물리적으로 존재하지 않으므로 사용할 수 없습니다. 의사 터미널(pty) 및 루프 장치와 같이 가상 포트로 사용할 수 있는 다른 장치가 있습니다. 확인하다위키피디아그리고ptys 매뉴얼 페이지. ptys가 문자 장치인 경우 블록 전송(예: 가상 디스크)에 루프 장치를 사용할 수 있습니다.위키피디아그리고맨 페이지 문서.

답변2

이 포트는 실제로 마더보드에 존재합니다. (일부) 데스크탑처럼 외부 포트에 연결되어 있지 않습니다.

관련 정보