wvdial não pode recuperar a resposta do modem, programas de terminal se comunicam sem problemas

1

Estou tentando fazer uma conexão GPRS com um cabo serial USB SIM800L e PL2303.

Se eu seleciono ou minicom o modem (em 115200 8N1) recebo uma resposta imediata do modem e, mesmo depois de configurar o contexto PDP e GPRS, posso faça ping nos servidores do google através de comandos AT. Eu também sou capaz de iniciar uma conexão PPP através de AT+CGDATA="PPP" ou ATDT*99***1# .

Mas com o wvdial o modem não responde

--> WvDial: Internet dialer version 1.61
--> Cannot set information for serial port.
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
--> Re-Sending: ATZ
--> Modem not responding.

Se eu fizer um cat /dev/ttyUSB0 e executar wvdial ao mesmo tempo Eu entendo isso:

ATZ0
OK

OK

OK

Depois que wvdial terminar o comando e o primeiro OK aparecer, um segundo depois os dois OK aparecerão. Também gostaria de observar que os comandos ATZ e ATQ0 tornaram-se sobrepostos .

Eu posso estar seqüestrando a saída através de cat e essa pode ser a razão, mas o comportamento de wvdial é o mesmo com ou sem gato .

Este é o meu /etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 115200
Phone = *99***1#
Username = webgprs
Password = webgprs2002
New PPPD = yes

Modem Type = Analog Modem não faz diferença. Se eu colocar alguns parâmetros Init# , eles também não receberão nenhuma resposta. A sobreposição de comandos acontecerá com os comandos Init# também.

Obtendo camadas de abstração como observado em modems 3G e GPRS com pppd resultando no uso somente de pppd não funcionou também. O que está claro é que a comunicação com a porta serial pelo processo do sistema não está sendo mantida, somente através de clientes de porta serial.

sakis3g comunica com sucesso com o modem, mas não consegue abrir uma interface.

[13751] [11:45:56] Connection command that will be used is: /usr/bin/setsid /usr/sbin/pppd /dev/ttyUSB0 460800 modem crtscts -detach defaultroute dump noipdefault usepeerdns usehostname ktune logfd 2 noauth name sakis3g lock maxfail 3 connect "/usr/sbin/chat -v -f /tmp/pppd.tmp.13751" user "webgprs" password "webgprs2002"
[13751] [11:45:56] Verbosing: 28% Initializing modem
[13751] [11:45:56] Using default INITIALIZE.
[13751] [11:45:56] Command "INITIALIZE" refers to AT commands: ATZ OK 'AT&F' OK 'ATQ0 V1 E1' OK 'AT&D2 &C1' OK AT+FCLASS=0 OK ATS0=0 OK 'AT+CGDCONT=1,"IP","internet.itelcel.com"' OK
[13751] [11:45:56] Will send INITIALIZE commands to tty /dev/ttyUSB0: "" '\pAT' OK ATZ OK 'AT&F' OK 'ATQ0 V1 E1' OK 'AT&D2 &C1' OK AT+FCLASS=0 OK ATS0=0 OK 'AT+CGDCONT=1,"IP","internet.itelcel.com"' OK '\pAT' OK
[13751] [11:45:57] We are root already. Proceeding.
[13751] [11:45:57] Device /dev/ttyUSB0 is not busy.
[13751] [11:45:58] Got response from tty:
AT
OK
ATZ
OK
AT&F
OK
ATQ0 V1 E1
OK
AT&D2 &C1
OK
AT+FCLASS=0
ERROR
[13751] [11:45:58] Unknown command "STAGE7".
[13751] [11:45:58] Unknown command "STAGE8".
[13751] [11:45:58] We are root already. Proceeding.
/-------------------------------------------------------------------------------
[13751] [11:45:58] Will now run command: \'/bin/rm -f "/tmp/sakis3g.3gnet"\'
/-------------------------------------------------------------------------------
\-------------------------------------------------------------------------------
[13751] [11:45:58] Command returned 0.
\-------------------------------------------------------------------------------
[13751] [11:45:58] We are root already. Proceeding.
[13751] [11:45:58] Device /dev/ttyUSB0 is not busy.
[13751] [11:45:58] Verbosing: 35% Connecting
[13751] [11:45:58] PID 15625 is still running.
[13751] [11:45:59] Located "netstat" within PATH (/bin/netstat).
[13751] [11:45:59] Waiting for interface to go up (0 seconds passed).
[13751] [11:46:00] PID 15625 is still running.
[13751] [11:46:00] Waiting for interface to go up (1 seconds passed).
[13751] [11:46:01] PID 15625 is still running.
[13751] [11:46:01] Waiting for interface to go up (2 seconds passed).
... (truncated) ...
[13751] [11:46:56] Waiting for interface to go up (20 seconds passed).
[13751] [11:46:57] Giving up waiting for connection to occur.
[13751] [11:46:57] PID 16179 is still running.
[13751] [11:46:58] PID 16179 is not running any more.
[13751] [11:46:58] PID 16179 is not running any more.
[13751] [11:46:58] Failed to connect.
[13751] [11:46:58] Error: Failed to connect.
[13751] [11:46:58] Aborting execution chain due to actor "connect" returning 95. 

O resultado é o mesmo, mesmo que eu configure manualmente o contexto do PDP e configure o modem em um contexto ativo do GPRS

AT+CIPSTATUS
IP STATUS
    
por Sdlion 25.06.2015 / 18:00

2 respostas

1

Lendo os logs e fontes do sakis3g Percebo que usar nocrtscts nas opções do ppp com este conversor serial USB PL2303 é obrigatório. Além disso, o SIM800L não suporta o comando AT+FCLASS e faz com que o script falhe, por isso tive que removê-lo.

Usando o script de bate-papo dos modems 3G e GPRS com o pppd , alterei a linha:

'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'

para

'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2'

O AT+FCLASS é usado para selecionar o modo de fax. Se o seu módulo GSM nem sequer suporta este modo (ou o padrão é 0 - modo de dados) então parece seguro deixar essa parte fora do script de chat.

    
por 29.06.2015 / 18:59
1

Eu rastreei este problema para o controle de fluxo RTS / CTS, que libwvstreams (e, portanto, wvdial) usam por padrão, mas meu pequeno dongle serial USB não suporta.

Você pode usar o meu patch no GitHub ou consertá-lo no hardware. Se o seu dongle tiver pinos RTS e CTS, por exemplo (e o seu modem não), você poderá conectá-los um ao outro.

    
por 26.07.2017 / 21:20