직렬 포트를 활성화/비활성화하는 방법은 무엇입니까?

직렬 포트를 활성화/비활성화하는 방법은 무엇입니까?

Java 프로그램 테스트를 위해 직렬 포트를 비활성화한 다음 활성화해야 합니다.

man페이지에 다음과 같이 적혀 있기 때문입니다 setserial.UART 유형 none을 사용하면 포트가 비활성화됩니다.", 포트를 비활성화하곤 했습니다 sudo setserial /dev/ttyS4 uart none. 이로 인해 직렬 포트가 성공적으로 비활성화되었습니다. 직렬 포트를 다시 활성화하기 위해 사용했고 sudo setserial /dev/ttyS4 -a autoconfig포트가 예상대로 시작되었습니다.

포트를 비활성화한 후 다음 명령을 사용하여 포트를 열려고 했습니다.자바 gnu.io.CommPortIdentifier기능. 함수를 실행한 후 포트를 활성화하려고 하면 gnu.io.CommPortIdentifier다음과 같은 출력이 나타납니다.

$ sudo setserial /dev/ttyS4 -a autoconfig
Cannot autoconfigure port: Device or resource busy

이 문제를 어떻게 해결할 수 있나요? 직렬 포트를 활성화/비활성화하는 더 좋은 방법이 있습니까? 아니면 포트에 대한 요청 목록을 지울 수 있나요?

분명히 내 테스트가 실행 중이기 때문에 프로세스를 직접 종료할 수는 없습니다.

답변1

직렬 포트를 비활성화한 후 /dev/ttySx를 제거하면 Java에서 gnu.io.CommPortIdentifier에 더 큰 문제가 발생할 것이라고 생각합니다.

다시 활성화해야 하는 경우 먼저 MAKEDEV 스크립트 또는 mknod 명령을 사용하여 노드를 생성해야 합니다.여기직렬 장치 생성에 대한 정보입니다.

답변2

/var/lock/LCK..ttyS4를 사용하여 제거해 볼 수 있습니다 rm. 제가 아는 한, 이 방법으로 장치를 잠금 해제해야 합니다.

관련 정보