wvdial kann keine Modemantwort abrufen, Terminalprogramme kommunizieren problemlos

1980
Sdlion

Ich versuche, eine GPRS-Verbindung mit einem SIM800L und einem USB-Seriell-Kabel PL2303 herzustellen.

Wenn ich Bildschirm oder Minicom das Modems (bei 115200 8N1) bekomme ich sofort eine Antwort vom Modem, und ich auch nach dem PDP und GPRS Kontext einrichten kann ich erfolgreich ping Google - Server über AT - Befehle. Ich kann auch eine PPP-Verbindung über AT+CGDATA="PPP"oder herstellen ATDT*99***1#.

Bei wvdial reagiert das Modem jedoch nicht

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

Wenn ich ein wvdial mache cat /dev/ttyUSB0und gleichzeitig laufe, bekomme ich folgendes:

ATZ0 OK  OK  OK 

Nach wvdial ist beendet den Befehl und die erste OKerscheint, eine Sekunde später die beiden OKerscheint. Ich möchte auch beachten, dass ATZund ATQ0Befehle wurden überlappt .

Ich könnte die Ausgabe über cat hijacken, und das könnte der Grund sein, aber das Verhalten von wvdial ist dasselbe mit oder ohne cat .

Dies ist meine /etc/wvdial.conf

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

Modem Type = Analog Modemmacht keinen Unterschied Wenn ich einige Init#Parameter einstelle, werden sie auch keine Antwort bekommen. Das Überlappen von Befehlen wird auch bei den Init#Befehlen auftreten.

Abstraktionsebenen wie in 3G- und GPRS-Modems mit pppd herauszuarbeiten, was dazu führte, dass nur pppd verwendet wurde, funktionierte ebenfalls nicht. Klar ist, dass die Kommunikation mit der seriellen Schnittstelle durch den Systemprozess nicht nur über die seriellen Schnittstellenclients gehalten wird.

sakis3g kommuniziert erfolgreich mit dem Modem, kann jedoch keine Schnittstelle aufrufen .

[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.  

Das Ergebnis ist dasselbe, auch wenn ich den PDP-Kontext manuell eingerichtet und das Modem in einen aktiven GPRS-Kontext eingestellt habe

AT+CIPSTATUS IP STATUS 
1

2 Antworten auf die Frage

1
Sdlion

Lesen von sakis3g-Protokollen und Quellen Ich stelle fest, dass die Verwendung nocrtsctsvon ppp-Optionen mit diesem USB-Serial-Konverter PL2303 obligatorisch ist. Außerdem unterstützt der SIM800L den Befehl nicht AT+FCLASSund das Chat-Skript schlägt fehl. Daher musste ich es entfernen.

Mit dem Chat-Skript von 3G- und GPRS-Modems mit pppd habe ich die Zeile geändert:

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

zu

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

Mit AT+FCLASSwird der Faxmodus ausgewählt. Wenn Ihr GSM-Modul diesen Modus nicht unterstützt (oder standardmäßig auf 0 - Datenmodus eingestellt ist), scheint es sicher zu sein, diesen Teil aus dem Chat-Skript herauszulassen.

1
aib

Ich habe dieses Problem auf die RTS / CTS-Flusssteuerung zurückgeführt, die von libwvstreams (und damit von wvdial) standardmäßig verwendet wird, aber mein kleiner serieller USB-Dongle wird nicht unterstützt.

Sie können meinen Patch auf GitHub verwenden oder ihn in Hardware beheben. Wenn Ihr Dongle beispielsweise über RTS- und CTS-Pins verfügt (und Ihr Modem nicht), können Sie diese miteinander verbinden.