[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: как общаться с модемом при запущенном pppd?



Alexey Lobanov wrote:
29.05.2007 14:10, Ed пишет:

есть gprs-модем, на котором есть watchdog. этот watchdog надо
периодически дергать at-командой.

Именно AT-командой даже при *установленном* режиме передачи данных? То
есть надо делать "+++~ ATбла-бла ATO"? И недостаточно просто наличия
трафика в канале?

угу

теоретически всё просто - в chatscript пишем at&d1, после периодически
ставим 0 на dtr (указываем модему, что мы хотим команду послать, а
соединение рвать не надо), говорим at+wrst=xxxx (или смотрим уровень
сигнала или ещё что), ставим обратно 1 на dtr, pppd продолжает работать.

я правильно понимаю, что такой функциональности нет в pppd? решить
вопрос можно наверное с помощью простенького tty proxy, который будет
между модемом и pppd - но ничего готового не нашел.

Я бы "lcp-echo-interval" для начала попробовал. Просто гарантированно
пинать канал данными каждую минуту, не переходя в командный режим.

это не спасает от зависания модема (конечно надо статистику набирать - но похоже изредка оно таки нужно). тут проблема в том, что модем по идее должен быть совершенно необслуживаемый и ручная перезагрузка его даже раз в месяц очень неприятна.

к слову - у меня что-то с pppd из etch lcp-echo-interval не работает.
что-то типа такого:
$ pppd call bee debug nodetach lcp-echo-interval 5
Serial connection established.
using channel 17
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xada096b4> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <magic 0xada096b4>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <mru 1500> <asyncmap 0x0> <pcomp> <accomp> <auth pap>] sent [LCP ConfAck id=0x1 <mru 1500> <asyncmap 0x0> <pcomp> <accomp> <auth pap>]
sent [LCP EchoReq id=0x0 magic=0x0]
sent [PAP AuthReq id=0x1 user="beeline" password=<hidden>]
rcvd [LCP EchoRep id=0x0 magic=0x0]
rcvd [PAP AuthAck id=0x1 "Welcome!"]
Remote message: Welcome!
PAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 217.118.88.18>]
sent [IPCP ConfAck id=0x1 <addr 217.118.88.18>]
rcvd [IPCP ConfNak id=0x1 <addr 172.19.32.211>]
sent [IPCP ConfReq id=0x2 <addr 172.19.32.211>]
rcvd [IPCP ConfAck id=0x2 <addr 172.19.32.211>]
not replacing existing default route via 10.0.0.20
Cannot determine ethernet address for proxy ARP
local  IP address 172.19.32.211
remote IP address 217.118.88.18
Script /etc/ppp/ip-up started (pid 14115)
Script /etc/ppp/ip-up finished (pid 14115), status = 0x0
Terminating on signal 2
Connect time 1.3 minutes.
Sent 3084 bytes, received 1028 bytes.
Script /etc/ppp/ip-down started (pid 15067)
sent [LCP TermReq id=0x3 "User request"]
rcvd [LCP TermAck id=0x3 "User request"]
Connection terminated.
Script /etc/ppp/ip-down finished (pid 15067), status = 0x0

видно, что при установке соединения был раз послан LCP EchoReq и всё - за минуту соединения ни разу больше.



Reply to: