내 임베디드 PC의 모든 직렬 포트와 통신할 수 있도록 Centos 배포판에 직렬 포트 3개를 추가한 문제를 해결하려고 합니다. 누군가가 이 직렬 포트가 작동하도록 도와줄 수 있기를 바랍니다.
그런데 Ubuntu 20.04에는 기본적으로 충분한 직렬 포트가 있습니다(Ubuntu는 기본적으로 32개의 포트를 채웁니다).
Centos 7-9 2009에서 다음을 실행했습니다.
sudo mknod -m 660 /dev/ttyS4 c 4 68
sudo mknod -m 660 /dev/ttyS5 c 4 69
sudo mknod -m 660 /dev/ttyS6 c 4 70
sudo chgrp dialout /dev/ttyS4
sudo chgrp dialout /dev/ttyS5
sudo chgrp dialout /dev/ttyS6
그리고 직렬 장치를 봅니다.
[centos@localhost ~]$ ls /dev/ttyS* -al
crw-rw----. 1 root dialout 4, 64 Aug 22 08:17 /dev/ttyS0
crw-rw----. 1 root dialout 4, 65 Aug 22 08:58 /dev/ttyS1
crw-rw----. 1 root dialout 4, 66 Aug 22 08:58 /dev/ttyS2
crw-rw----. 1 root dialout 4, 67 Aug 22 08:17 /dev/ttyS3
crw-rw----. 1 root dialout 4, 68 Aug 22 08:28 /dev/ttyS4
crw-rw----. 1 root dialout 4, 69 Aug 22 08:28 /dev/ttyS5
crw-rw----. 1 root dialout 4, 70 Aug 22 08:28 /dev/ttyS6
/dev/ttyS4를 사용하려고 하면 다음과 같은 결과가 나타납니다.
[centos@localhost ~]$ sudo minicom -D /dev/ttyS4
minicom: cannot open /dev/ttyS4: No such device or address
또는 /dev/ttyS3 및 /dev/ttyS4에 대한 설정을 나열하면:
[centos@localhost ~]$ sudo setserial /dev/ttyS3
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
#/dev/ttyS0-3 all work.
[centos@localhost ~]$ sudo setserial /dev/ttyS4
/dev/ttyS4: No such device or address
#/dev/ttyS4-6 do not work
또한 재부팅 후 Centos는 새 직렬 포트 /dev/ttyS4-6을 삭제했습니다. 내가 시도한 것 중 하나는 커널을 재구축하여 "런타임에 등록된 8250/16550 직렬 포트 수" 옵션을 4 대신 8로 설정하는 것이었습니다. 그러나 나는 똑같은 문제를 겪었습니다. /dev에 4개의 직렬 포트만 나열되어 있었습니다.
답변1
커널을 빌드한 후 잘못된 커널을 실행하고 있다는 것을 깨달았습니다. 커널을 부팅할 때 8개의 /dev/ttyS* 장치가 모두 표시됩니다. SERIAL_8250_RUNTIME_UARTS = 8이 트릭을 수행한 것 같습니다.
비상 모드에서만 시작되는데, Centos 위키에는 설명되어 있지 않은 모듈 설치 단계에서 로캘이 설정되지 않았다는 경고가 빌드 중에 표시되기 때문인 것 같습니다. 이와 관련된 질문이 있는 항목입니다.