wvdial не может получить ответ модема, терминальные программы общаются без проблем

Я пытаюсь установить соединение GPRS с SIM800L и USB-последовательным кабелем PL2303.

Если я проверяю модем или миником (на 115200 8N1), я получаю немедленный ответ от модема, и даже после настройки контекста PDP и GPRS я могу успешно пропинговать серверы Google с помощью AT-команд. Я также могу инициировать соединение PPP через AT+CGDATA="PPP" или же ATDT*99***1#,

Но с wvdial модем не отвечает

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

Если я сделаю cat /dev/ttyUSB0 и одновременно запускаю wvdial:

ATZ0
OK

OK

OK

После того, как wvdial закончил команду и первый OK появляется, через секунду два OK будет появляться. Также хотелось бы отметить, что ATZ а также ATQ0 Команды стали перекрываться.

Я мог бы перехватить вывод через cat, и это может быть причиной, но поведение wvdial одинаково как с cat, так и без нее.

Это мой /etc/wvdial.conf

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

Modem Type = Analog Modem не имеет никакого значения. Если я положу некоторые Init# параметры они не получат никакого ответа либо. Перекрытие команд будет происходить с Init# команды тоже.

Получение слоев абстракции, как отмечалось в модемах 3G и GPRS, с pppd, в результате чего использовался только pppd, также не работало. Ясно, что связь с последовательным портом системным процессом не поддерживается, только через клиентов последовательного порта.

sakis3g успешно связывается с модемом, но не может вызвать интерфейс.

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

Результат тот же, даже если я вручную настроил контекст PDP и настроил модем в активном контексте GPRS

AT+CIPSTATUS
IP STATUS

2 ответа

Решение

Читая логи sakis3g и источник, я замечаю, что используя nocrtscts на опциях ppp с этим PL2303 USB последовательный конвертер обязателен. Кроме того, SIM800L не поддерживает AT+FCLASS команда и делает скрипт чата неудачным, поэтому мне пришлось его удалить.

Используя скрипт чата из 3G и GPRS модемов с pppd, я изменил строку:

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

в

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

AT+FCLASS используется для выбора режима факса. Если ваш GSM-модуль даже не поддерживает этот режим (или по умолчанию равен 0 - режим передачи данных), то кажется безопасным оставить эту часть вне сценария чата.

Я проследил эту проблему до управления потоком RTS/CTS, который libwvstreams (и, следовательно, wvdial) использует по умолчанию, но мой крошечный последовательный USB-ключ не поддерживает.

Вы можете использовать мой патч на GitHub или исправить его аппаратно. Например, если у вашего ключа есть контакты RTS и CTS (а у вашего модема нет), вы можете подключить их друг к другу.

Другие вопросы по тегам