ppp는 직렬 포트에 영향을 미치므로 모뎀을 재설정할 때 직렬 포트를 사용할 수 없습니다.

ppp는 직렬 포트에 영향을 미치므로 모뎀을 재설정할 때 직렬 포트를 사용할 수 없습니다.

저는 3G 모뎀(Cinterion PH8-P)과 PPP를 사용하여 인터넷에 연결하는 Buildroot 기반 임베디드 시스템을 가지고 있습니다. 3G 모뎀은 4개의 ttyUSB 포트를 제공하는 USB 장치입니다. 그 중 하나는 PPP용이고 다른 하나는 GPS용입니다.

3G 모뎀이 작동을 멈추고 다시 시작해야 하는 경우가 있습니다. 이를 위해 먼저 PPP 및 GPSd 데몬을 중지한 다음 모뎀을 다시 시작한 다음 데몬을 다시 시작했습니다. 안타깝게도 미리 PPP를 실행하면 직렬 포트에 어떤 식으로든 영향을 주어 다른 프로그램에서 더 이상 사용할 수 없게 되는 것 같습니다.

예를 들어, 아직 PPP를 실행하지 않고 새로 부팅한 시스템에서 다음 명령을 실행한다면:

cat /dev/ttyUSB3&
echo "AT" > /dev/ttyUSB3

예상되는 AT 응답을 받았습니다 OK. 그런 다음 잠시 동안 PPP를 실행하고(pon을 호출하여) PPP를 중지하고(poff를 호출하여) 모뎀을 다시 시작한 다음 동일한 AT 명령을 다시 보내려고 하면 터미널은 내가 모뎀에 보낸 내용을 에코하는 것처럼 보입니다. 응답이 없습니다 OK. 결과적으로 GPS tty 포트에서 NMEA 메시지 수신이 중단되므로 GPS가 작동하지 않습니다. PPP가 모든 직렬 포트를 구성하여 출력을 다른 곳으로 리디렉션하는 것과 거의 같습니다. 그래도 모뎀이 다시 시작된 후 PPP는 완벽하게 작동했습니다. 로그에 따르면 채팅 스크립트는 AT 명령을 행복하게 보내고 예상한 응답을 받았습니다.

이 문제의 원인은 무엇입니까?

답변1

PPP인 것으로 밝혀졌습니다.자체 직렬 포트에 영향을 미치며, 이것이 GPS를 구성하는 데 사용되는 직렬 포트이기 때문에 이것이 문제의 원인입니다.

stty -F /dev/ttyUSB3PPP 실행 전과 후의 결과를 비교해 보면 PPP가 직렬 포트를 원시 모드로 구성한다는 것이 분명합니다. 즉, PPP를 사용하여 GPS 포트를 구성할 수 없다는 의미입니다. 흥미롭게도 이러한 설정은 모뎀 재설정으로 인해 ttyUSBx 장치 노드가 삭제되고 다시 생성되는 경우에도 지속됩니다.

간단히 기본 설정으로 복원을 실행하여 stty sane -F /dev/ttyUSB3아무런 문제 없이 GPS 포트를 구성할 수 있었습니다 .

관련 정보