Я пытаюсь заставить модем GPRS работать под Linux. Для некоторых провайдеров это работало нормально, но для одного из них процесс зависал сразу после запуска pppd.

Журнал выглядит так:

--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: AT
AT
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet.beeline.kz"
AT+CGDCONT=1,"IP","internet.beeline.kz"
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT
~[7f]}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&[10]FG"}#}%B#}%[08][~
--> Carrier detected.  Waiting for prompt.
~[7f]}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&[10]FG"}#}%B#}%[08][~
--> PPP negotiation detected.
--> Starting pppd at Wed Nov 19 03:05:44 2014
--> Pid of pppd: 17354

Он застрял в этой точке и больше ничего не делает. Даже не время ожидания соединения. Любые идеи о том, как отладить эту проблему?

Обновить:

Попытался добавить отладку в /etc /ppp /peers /wvdial, /etc /ppp /peers /wvdial-pipe; раскомментируйте его в /etc /ppp /options. Системный журнал по-прежнему содержит только сообщение о том, что соединение установлено, но больше ничего.

Также проверил ifconfig, интерфейс ppp0 там не появляется.

2 ответа2

1

Я не смог решить мою проблему с помощью wvdial.

Однако я использовал pppd напрямую, чтобы установить соединение, и оно работало нормально.

Если кому-то это понадобится, я выложу краткие инструкции о том, как это сделать.

Сначала создайте файл /etc /ppp /peers /{peername} со следующим содержимым:

/dev/{port device}
connect '/usr/sbin/chat -v -f /etc/chatscripts/gprs -T {APN}'

defaultroute
usepeerdns
unit {ppp interface number}
persist
chap-interval 60
ipparam {peername}
user "{login}"

nopcomp
novjccomp
nobsdcomp
nodeflate
noaccomp

lcp-echo-interval 2
lcp-echo-failure 3
noipdefault

Во-вторых, добавьте следующую строку в /etc /ppp /pap-secrets и /etc /ppp /chap-secrets:

"{login}"         {peername}         "{password}"

Соединение может быть установлено с помощью команды "pon {peername}" и закрыто с помощью команды "poff".

Вам необходимо заменить {peername} любой строкой, которую вы хотите использовать для идентификации этого соединения; {port device} с именем устройства вашего последовательного порта (ttyS0, ttyS1 ... для COM-портов и ttyUSB0, ttyUSB1 ... для USB-модемов); {login} и {пароль} с логином и паролем, используемыми для подключения к вашему провайдеру, и {APN} с APN вашего провайдера. Также вы можете выбрать любой {номер интерфейса ppp}. Например, 100, чтобы ваш интерфейс ppp назывался "ppp100".

0

Соединение установлено (странные символы, которые вы видите, это PPPD, пытающиеся договориться). Казалось бы, другая сторона пытается, но у тебя что-то не хватает.

Попробуйте добавить "debug" в pppd в качестве опции, чтобы вы могли подробно увидеть, что происходит. Обычно это делается в /etc/ppp/peers/<PEERNAME> (где <PEERNAME> в вашем случае может быть wvdial), просто поместите строку с отладкой внутрь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .