Уважаемый RSS, спасибо большое за сборку, которую Вы сделали и выложили, для ZTE MF 192. Сутки мучал девайсы, решение нашел. Правда, оно "кривое" - это не програмное решение, а "заплатка", однако, все работает в автономном режиме, а это мне и надо было.
Ваша версия прошивки определяет автоматом модем, и в веб-морде правильно прописаны параметры в секции 3G/CDMA Modem однако, чтобы в системе появилось /dev/usb/tts/0, надо вручную набрать из консоли:
rmmod option
rmmod usbserial
insmod usbserial vendor=0x19d2 product=0x1217
insmod option
после этого, система создает /dev/usb/tts/0
Далее, надо прописать это дело в /tmp/ppp/peers/wan0_pppd, потому, что там пустая строка стоит, ничего не вписано.
Code:
debug
/dev/usb/tts/0 <<<<==== этого нет !!!
921600
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 6
mtu 1492
mru 1492
usepeerdns
noauth
holdoff 5
maxfail 0
nodetach
persist
unit 0
novj nobsdcomp novjccomp nopcomp noaccomp
user 'mts'
password 'mts'
connect "/tmp/ppp/peers/wan0_chat.sh"
При этом, вот кусок лога pppd:
Code:
pppd: no device specified and stdin is not a tty
wan0_pppd exit code: 2, try to reconnect .
после чего, если прописать порт ручками, через vi, все работает и pppd поднимается автоматом.
Я решил, что можно использовать ошибку при первом запуске для того, чтобы запустить свой скрипт, сделает все указанные выше действия автоматом. И это работает, вот что сделал:
1. в Веб-морде в секции 3G/CDMA modem указал имя скрипта, которое надо запустить при ошибке, поле Failure event script name:
/tmp/local/sbin/post-boot
2. заходим телнетом в консоль, далее все ручками делаем.
3. создаем подменный файл для wan0_pppd, вот такой путь
/usr/local/wan0_back, там будет жестко прописан порт /dev/usb/tts/0
создаем файл
touch /usr/local/wan0_back
Используем редактор vi, чтобы внести в него текст: vi /usr/local/wan0_back
Code:
debug
/dev/usb/tts/0
921600
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 6
mtu 1492
mru 1492
usepeerdns
noauth
holdoff 5
maxfail 0
nodetach
persist
unit 0
novj nobsdcomp novjccomp nopcomp noaccomp
user 'mts'
password 'mts'
connect "/tmp/ppp/peers/wan0_chat.sh"
4. создаем сам скрипт, который при ошибке сделает все манипуляции:
mkdir -p /usr/local/sbin/
touch /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/*
echo "#!/bin/sh" >> /usr/local/sbin/post-boot
echo "rmmod option" >> /usr/local/sbin/post-boot
echo "rmmod usbserial" >> /usr/local/sbin/post-boot
echo "insmod usbserial vendor=0x19d2 product=0x1217" >> /usr/local/sbin/post-boot
echo "insmod option" >> /usr/local/sbin/post-boot
echo "sleep 5" >> /usr/local/sbin/post-boot
echo "cp /usr/local/wan0_back /tmp/ppp/peers/wan0_pppd" >> /usr/local/sbin/post-boot
5. далее сохраняем изменения и перезагружаемся:
flashfs save && flashfs commit && flashfs enable && reboot
Таким образом, при возникновении ошибки связи, будет вызван скрипт post-boot который сделает видимым /dev/usb/tts/0, и скопирует наш файл для pppd, в котором прописан этот порт.
При перезагрузке роутера, он сам поднимает связь по модему, что и требовалось сделать. Прошу прощения, что решение такое топорное, однако, на моем уровне понимания - это то, что я смог сделать. И оно работает.
syslog полной работы с момента запуска - прилагаю.
00:28 - момент, когда запущен скрипт post-boot