ppp afetando as portas seriais para que elas não possam ser usadas se o modem for redefinido

1

Eu tenho um sistema embarcado baseado em Buildroot que usa um modem 3G (Cinterion PH8-P) e PPP para se conectar à Internet. O modem 3G é um dispositivo USB que fornece 4 portas ttyUSB. Um deles é usado para PPP, enquanto outro é usado para GPS.

Ocasionalmente, o modem 3G irá parar de funcionar e precisará ser reiniciado. Eu faço isso primeiro parando os daemons PPP e GPSd, depois reiniciando o modem e, em seguida, reiniciando os daemons novamente. Infelizmente, parece que se o PPP é executado de antemão, parece afetar as portas seriais de alguma forma para que outros programas não possam mais usá-las.

Por exemplo, se eu executar o seguinte em um sistema recém-inicializado em que o PPP ainda não foi executado:

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

Eu recebo a resposta OK AT esperada de volta. Se eu então executar o PPP por um pouco (chamando pon), pare-o (chamando poff), reinicie o modem e tente enviar o mesmo comando AT novamente, o terminal apenas parece retornar exatamente o que enviei para o modem e não obtenho a resposta OK . Como resultado, o GPS não funcionará, já que eu paro de receber mensagens NMEA da porta GPS tty. É quase como se o PPP estivesse configurando todas as portas seriais para redirecionar suas saídas para algum outro lugar. Apesar disso, o PPP não tem nenhum problema em inicializar novamente após o reinício do modem - de acordo com os logs, os scripts de chat enviam seus comandos AT alegremente e obtêm as respostas esperadas de volta.

O que poderia estar causando esse problema?

    
por Amr Bekhit 05.04.2016 / 18:14

1 resposta

1

Acontece que o PPP está afetando sua própria porta serial, e como esse é o que é usado para configurar o GPS, é isso que está causando o problema.

Comparando os resultados de stty -F /dev/ttyUSB3 antes e depois de executar o PPP, ficou aparente que o PPP estava configurando a porta serial no modo raw, o que significava que eu não poderia usá-lo para configurar a porta do GPS. O interessante é que essas configurações persistiram mesmo depois que os nós do dispositivo ttyUSBx foram removidos e recriados devido ao reset do modem.

A simples execução de stty sane -F /dev/ttyUSB3 para voltar às configurações padrão permitiu que eu configurasse a porta do GPS sem problemas.

    
por 05.04.2016 / 18:35