|
|
Опции темы | Опции просмотра | Language |
![]() |
#6 |
Администратор
Регистрация: 16.04.2007
Ресивер: .....
Адрес: anywhere
Сообщений: 3,178
Сказал(а) спасибо: 2,206
Поблагодарили 9,361 раз(а) в 2,289 сообщениях
Вес репутации: 78 ![]() |
![]()
В данном посте будут рассматриваться вопросы составления скриптов дозвона и формирования скриптов автозапуска (для автоматического запуска подключения к Интернету по факту включения роутера)
Итак, мы добились перевода модема в режим модема, с открытием СОМ-портов. Теперь можно приступать к сборке скриптов дозвона. ============================================ ================== IV. Пишем скрипты дозвона ============================================ ================== Отмечу, что в большинстве источников предлагается начинать настройку подключения именно с написания данных скриптов, однако, на мой взгляд, более адекватным будет писать данные скрипты после того, как мы добились правильной инициализации модема в системе, т.к. только при условии открытия СОМ-портов, что дает возможность осуществить дозвон. Основными скриптами настроек дозвона являются: 1) /tmp/ppp/peers/dialup - скрипт основных параметров связи, включая учетную запись dialup-подключения и параметры СОМ-порта 2) /tmp/ppp/dialup.chat - скрипт собственно дозвона. Рассмотрим структуру этих скриптов: -------------------------------------------------------------------------------- /tmp/ppp/peers/dialup: Код:
debug /dev/usb/tts/0 921600 mtu 1400 mru 1400 crtscts noipdefault ipcp-accept-local lcp-echo-interval 30 lcp-echo-failure 5 usepeerdns noauth nodetach persist user 'Dialup_Login' password 'Dialup_Password' connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log" -------------------------------------------------------------------------------- Где: /dev/usb/tts/0 - номер USB-COM порта. Для большинства модемов он первый (0), однако могут быть и исключения, в зависимости от модели модема 921600 - скорость USB-COM порта. Может принимать различные значения (115200, 921600, 460800, 230400) - в зависимости от модели модема mtu 1400 - максимального размера блока (в байтах), который может быть передан на канальном уровне коммуникационного протокола. Хотя, как правило, этому параметру присваивают значение 1492, практика показывает, что лучше его значение принимать с некоторым учетом потерь (1400) mru 1400 - определяет размер (в байтах) максимального блока, который может быть принят на канальном уровне коммуникационного протокола. По тем же соображениям его желательно несколько уменьшить. user 'Dialup_Login' - логин аккаунта доступа в Internet. Его значение может быть как общим для всех пользователей провайдера (как у InterTelecom, Life), так и индивидуальным (PeopleNet) password 'Dialup_Password' - пароль аккаунта доступа в Internet. Его значение может быть как общим для всех пользователей провайдера (как у InterTelecom, Life), так и индивидуальным (PeopleNet) Примечание: Для некоторых провайдеров (например, MTC), требуется введение еще одного параметра: remotename Примечание 2: Для более корректного определения параметров СОМ-порта модема рекомендую вначале полностью установить модем на Windows, после чего посмотреть свойства модема через Диспетчер оборудования -------------------------------------------------------------------------------- /tmp/ppp/dialup.chat Код:
для CDMA-стандарта # ---------------------------------------------- '' '' '' 'ATZ' 'OK' 'ATD Dialup_Number' 'CONNECT' '' # для GSM-стандарта # ---------------------------------------------- '' '' '' 'ATZ' '' 'AT+CGDCONT=1,"IP","Dialup_Point"' 'OK' 'ATD Dialup_Number' 'CONNECT' '' Этот скрипт отличается для CDMA и GSM-стандартов связи. В нем используются параметры: Dialup_Number - номер дозвона. Может быть одинаков для целой группы провайдеров. Dialup_Point - точка входа в Internet. Нужен только для GSM-стандарта. У каждого провайдера она, как правило, своя. Возможно также, учитывая информацию по подключению от разных провайдеров, параметр AT+CGDCONT=1 также может быть изменен при подключении через мобильный телефон, однако на практике с DIR-320 этот вопрос проверить пока не было возможности. Последовательность действий:
--- * Добавлю, что в этом случае не обязательно перенастраивать все с нуля. Достаточно остановить скрипт дозвона (<Ctrl+C>), с помощью редактора vi изменить скрипт /tmp/ppp/peers/dialup, зафлешировать его связкой flashfs save && flashfs commit && flashfs enable без ребута, и снова пытаться позвонить по pppd call dialup. Если дозвон удался - переходим к написанию скрипта автозапуска. ============================================ ================== V. Пишем скрипт автозапуска ============================================ ================== Небольшое отступление. В ПО от Олега реализовано несколько вариантов скриптов, исполняемых в случае тех или иных состояний системы (данная информация взята с форума wl500g.info):
Отмечу также, что запись содержмого этих скриптов лучше организовывать не с помощью команды echo, как предлагается в большинстве источников, а с использованием Блокнота и возможностей встроенного текстового редактора vi, о котором уже неоднократно упоминалось выше. В данном случае нас интересует формовка скрипта /usr/local/sbin/post-boot для организации автозапуска коннекта по факту включения роутера в сеть. В его формировании в случае подключения модемов есть ряд особенностей: 1) Необходимо учитывать время задержки системы на обработку заданной нами команды. При этом необходимо учитывать и задержку системы самого роутера, и время обработки команды самого модема. 2) Необходимо учитывать, что использование только стандартной команды sleep X между строк касательно настройки оборудования не дает ожидаемого результата в плане требований к выполнению строгой последовательности команд. Это в основном касается модемов EVDO технологии. Так, стандартная схема построения скрипта автозапуска: usb_modeswitch insmod usbserial ...... pppd call dialup может отлично работать в случае ручного ввода, но в подавляющем большинстве случаев при формовке данной серии команд в скрипт автозапуска (при любых вариантах задержки по команде sleep) автостарт будет работать некорректно. Причину такой неполадки можно увидеть, читая системные логи непосредственно после старта роутера. Наиболее распространенными ошибками выполнения, насколько я заметил, являются: 1) Выполнение команды usb_modeswitch до инициализации модема в режиме CD-ROM. При этом usb_modeswitch пытается обработать устройство, никак не определенное в системе. 2) Выполнение команды insmod usbserial ... до обработки модема командой usb_modeswitch. При этом драйвер usb пытается обработать модем по параметрам, не соответствующим режиму модема (иными словами, модем еще не готов, он не переведен в состояние модема). 3) Выполнение команды дозвона до открытия COM-портов. Модем в системе еще не раскрыл порты, а ему дали команду соединения. Насколько я могу судить по поводу решения вопросов относительно таких "проблемных" модемов, именно несоблюдение условий строгой последовательности выполнения команд в большинстве случаев приводит к ошибкам подключения при написании скриптов автозапуска. Так, при первой настройке скрипта автозапуска (после проверки модема на дозвон) и следующем за ним ребуте роутера мы можем получить стабильный коннект. Однако, стоит лишь перезагрузить роутер из сети, как скрипт перестает работать (связь срабатывает после первичной настройки и последующего ребута роутера по причине того, что модем сохраняет свое состояние). В результате этого предлагаются различные варианты скриптов, вплоть до неоднократной перезагрузки роутера до появления корректного дозвона. Как показала практика, задача решается гораздо проще. Для этого достаточно между строкой задержки системы и следующей строкой обработки непосредственно интересующей нас конфигурации ввести "пустую" команду echo. Удобно, если эту команду закреплять за системным логом. При этом команда echo отрабатывается только в случае завершения предыдущей команды (т.е. мы даем системе правильно выполнить команду на роутере, и - дождаться ответа на нее от модема). К тому же отметки вывода в системный лог дополнительной пользовательской информации позволяет более детально отследить работу нашей конфигурации. Система постановки скрипта автозапуска в этом случае сводится к следущему: Структура скрипта автозапуска: Код:
# Инициализируем Shell в скрипте #!/bin/sh # Выводим в системный лог сообщение о старте скрипта автозапуска echo "LOG of post-boot: Started post-boot script" >> /usr/tmp/syslog.log # Даем время системе определить модем как диск sleep 10* # Выводим в системный лог сообщение о старте и запускаем его echo "LOG of post-boot: Started usb_modeswitch" >> /usr/tmp/syslog.log usb_modeswitch # Даем время системе определить модем как диск sleep 10* # После получения ответа от модема выводим в системный лог информацию о старте usbserial echo "LOG of post-boot: Started insmod usbserial" >> /usr/tmp/syslog.log # И запускаем драйвер insmod usbserial vendor=0xXXXX product=0xXXXX maxSize=XXXX # Даем время модему открыть СОМ-порты sleep 5 # Выводим в системный лог сообщение о старте программы дозвона echo "LOG of post-boot: pppd call started" >> /usr/tmp/syslog.log # Производим дозвон pppd call dialup --- * Для некоторых модемов, например Huawey, значение этого параметра может доходить до 20. Составив скрипт автозапуска в Блокноте, заносим его в роутер, предварительно создав папку /tmp/local/sbin: mkdir /tmp/local/sbin :w mkdir /tmp/local/sbin/post-boot :q задаем ему атрибуты на выполнение chmod 755 /tmp/local/sbin/post-boot и флешируем flashfs save && flashfs commit && flashfs enable После флеширования проверяем, все ли файлы сохранены по логу работы этой комбинации в самом окне Telnet. Затем перезагружаем роутер reboot и после перезагрузки командной перезагружаем роутер из сети, проверяя работу нашей конфигурации по записям в системном логе. --- PS: Проверял данную систему на пяти моделях модемов. Никаких програмных ребутов не надо. Несколько увеличено время соединения, но оно происходит в 100% случаев. После командного ребута на EVDO модемах связь теряется (надо перезагружать из сети).
__________________
DM500S, DM800HD, GI S8120 - 4W,5E,13E,36Е,75E (VIP) Поминутный IPTV! ThinkPad.com.ua - форум любителей техники ThinkPad |
![]() |
![]() |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь в настройке антенн | Vlad374 | Общий форум по спутниковой тематике | 552 | 16.02.2025 00:16 |
X403p HDMI выход работает только на старых прошивках | rivex | Globo HD X402p,X403p (HD Х4 , Q-Sat St-05) | 6 | 17.10.2015 10:31 |
Прошивка с mpcs для Asus WL-5x0xx,WL-3x0xx и D-Link DIR-320 (от Олега) | Admin | Прошивка роутеров Asus, D-Link, TP-Link, Acorp...) | 38 | 11.01.2014 21:00 |
FAQ по настройке dbox2 | Admin | Dbox2 | 15 | 27.01.2010 16:08 |
Правка ключей в новых прошивках | Roman1968 | Globo 7xx0CR (STI5119) | 3 | 10.08.2008 16:03 |