Показать сообщение отдельно
Старый 20.10.2009, 10:08   #5
Admin
Администратор
 
Аватар для Admin
 
Регистрация: 16.04.2007
Ресивер: .....
Адрес: Зимбабве
Сообщений: 3,167
Сказал(а) спасибо: 2,176
Поблагодарили 9,291 раз(а) в 2,273 сообщениях
Вес репутации: 56
Admin отключил(а) отображение уровня репутации
По умолчанию Общие положения о натройке 3-G модемов. Часть 1

Общие положения о натройке 3-G модемов


В данном посте будут рассматриваться общие вопросы о настройке 3-G модемов, а именно - вопросы открытия на модеме СОМ-портов

============================================ ==================
I. Определяем общую последовательность работы
============================================ ==================
Всю систему подключения 3-G модемов можно вывести в несколько пунктов:
- 1. Определение параметров перевода модема в рабочий режим (иными словами, собрать конфигурацию и последовательность команд для открытия USB-COM портов в системе).
- 2. Написание и сохранение скриптов дозвона - файлов с параметрами подключения к провайдеру и модему.
- 3. Написание и сохранение скрипта автозапуска (для автостарта дозвона по факту включения).
============================================ ==================
II. Определяем класс модема
============================================ ==================
Все 3-G модемы можно подразделить на три категории:
1) Модемы без встроенной флеши с драйверами.
Пример таких модемов - ZTE AC8700. Драйвера на данные аппараты поставляются на отдельном носителе. Их идентификаторы (Vendor ID, Product ID) неизменны в процессе подключения, и при самом подключении, как правило, верно определяются системой.
2) Модемы со встроенной флешь с драйверами (по системе EV-DO), без смены Vendor ID, Product ID в процессе смены режима работы модема.
3) Модемы со встроенной флешь с драйверами (по системе EV-DO), со сменой Vendor ID, Product ID в процессе смены режима работы модема.

Вот здесь сделаем небольшое отступление.
Суть технологии EV-DO заключается в том, что модем представляет собой два устройства - собственно, модем, и SCSI CD-ROM (грубо говоря, флешка), на которой лежат драйвера и программа для обслуживания модема (подключения к инету). При первой инициализации оборудования системой девайс видится как CD-ROM, с которого автостартует инсталляция ПО для модема с драйверами. Если данное ПО не было установлено, программный пакет инсталлируется в системе, после чего подается команда на переключение модема в режим модема (если клиентская часть уже стоит, то установка ПО, ессно, не производится).
Разница же между вторым и третьим классом модемов состоит в том, что для второго класса параметры Vendor ID, Product ID остаются неизменными (просто модем переводится в другой режим), а для третьего класса при переводе модема в другой режим данные параметры также меняются.
Однако: в Linux-системах и иже подобных им об автоматической установке дров на девайс можно забыть, и переводить модемы в режим модема надо определенной серией команд.
Отмечу, что не на каждый модем можно достаточно быстро найти нужные параметры по Vendor ID, Product ID. Кроме того, эти параметры для 2 и 3 класса модемов могут не выводиться в системном логе. И, плюс ко всему, для перевода модема в режим собственно модема, как правило, требуется наличие дополнительных параметров. И если параметры Vendor ID, Product ID можно определить из-под windows (банально отключив поддержку автозапуска на голой от сопровождающего модем ПО системе, т.е. где его не стоит), то по сервисным параметрам перевода модема в режим модема нужно гуглить, и преимущественно по темам, посвященным настройке этих девайсов на Linux, но уже на компьютерах.
============================================ ==================
III. Открываем USB-COM порты
============================================ ==================
1) Модемы первого типа
--------------------------------------------------------------------------------
Как правило, открытие портов для таких модемов сводятся к выполнению команды
insmod usbserial vendor=0xXXXX product=0xXXXX maxSize=XXXX,
где 0xXXXX - Vendor ID, product=0xXXXX - Product ID, maxSize=XXXX - дополнительный параметр (во многих мануалах этот параметр опускают, однако по практике могу сказать, что с данным параметром модем работает стабильнее). По умолчанию для большинства моделей его значение составляет 4096. Vendor ID, Product ID можно увидеть в системном логе роутера после подключения модема, как неизвестного девайса.
По факту выполнения команды в системном логе отмечается открытие новых (как правило 1-4-х) USB-COM портов. Этот же факт подтверждается путем просмотра открытых портов по команде
ls -l /dev/usb/*
--------------------------------------------------------------------------------
2) Модемы второго и третьего типов
--------------------------------------------------------------------------------
Примечание: разница в системе их настройки состоит лишь в наличии двух Vendor ID, Product ID в разных режимах*.
Примечание 2: Часто можно встретить предложение об изменении флагов в самом модеме с помощью спец ПО для прошивки CDMA. По возможности об этом постарайтесь забыть, если Вы не сервисник по данной аппаратуре, ибо:
- При недостатке знания модем можно просто грохнуть, а на его восстановление понадобиться много времени и, возможно, денег
- После такой процедуры модем нельзя будет уже использовать по системе, предоставленной провайдером и поставщиком
- Вы теряете гарантию на модем
---
* Опираясь на последние практические моменты, в качестве отдельной категории могут выступать модифицированные модемы (прошитые неродным ПО). Пример настройки такого модема описан ниже в теме.
--------------------------------------------------------------------------------
2.1) Дополнительные параметры (параметры сервисного плана)
--------------------------------------------------------------------------------
Нам потребуются дополнительные сервисные параметры - разные для разных модемов. Найти такую информацию более всего вероятно, выуживая доку по usb_modeswitch.conf
Могут потребоваться следующие параметры:
  • DefaultVendor, DefaultProduct - идентификаторы девайса по умолчанию (необходимы и для второго, и для третьего типа, но для третьего типа это параметры модема в режиме SCSI CD-ROM)
  • TargetVendor, TargetProduct - идентификаторы девайса в режиме модема (необходимы для третьего типа)
  • MessageEndpoint - сервисное сообщение модему о завершении чтения данных со SCSI CD-ROM (может понадобиться для обоих типов - в зависимости от модема)
  • MessageContent - сервисный код для отключения в модеме режима SCSI CD-ROM (может понадобиться для обоих типов - в зависимости от модема). Этот параметр может изменяться также в зависимости от ПО на модеме и особенностей подхода к настройке у провайдера
  • DetachStorageOnly - "общий режим модема" - 0 (диск) или 1 (модем)
  • Для некоторых производителей выделен отдельный параметр перевода режима модема (по аналогии с DetachStorageOnly):
    HuaweiMode (0, 1) - для модемов Huawei
    SierraMode (0, 1) - для модемов Sierra
    SonyMode (0, 1) - для модемов Sony
Для DetachStorageOnly и Mode чаще всего требуется использование одной команды переключения. Если имеется код перевода от производителя, то лучше использовать именно его.
Есть также другие параметры и команды, но о них буду писать позже. Пока - основное.
--------------------------------------------------------------------------------
2.2) Компонуем последовательность команд включения СОМ-портов
--------------------------------------------------------------------------------
Итак, сервисная информация у нас уже есть. В кратком мануале к ПО от Олега предлагается навинчивать модем, используя серию nvram set (аналогично инициализации D-LINK DIR-320 как Asus). Честно говоря, использование такой системы, быть может, и уместно, однако на практике у меня она не получилась (в будущем, если получится - обновлю информацию).
Я же предлагаю использовать один из двух вариантов, оба из которых основаны на первичной отработке модема утилитой usb_modeswitch: командно и через конфиг. В любом случае командный режим желателен при первичном опробовании модема, однако лучше работает настройка через конфиг (для третьей категории это единственный нормальный вариант).
--------------------------------------------------------------------------------
2.2-А) Командно
--------------------------------------------------------------------------------
При задействовании usb_modeswitch командно совместно с вызовом данной команды даются параметры к ней (с общими примерами):
Код:
DefaultVendor=0xXXXX => -v 0xXXXX
DefaultProduct=0xXXXX => -p 0xXXXX
TargetVendor=0xXXXX => -V 0xXXXX
TargetProduct=0xXXXX => -P 0xXXXX
MessageEndpoint=0xXX => -m 0xXX
MessageContent=0xX...... => -M 0xX......
DetachStorageOnly=X => -d X
HuaweiMode=X => -H X
SierraMode=X => -S X
SonyMode=X => -O X
К примеру*, имеем модем Option GlobeSurfer Icon 7.2:
Содержимое usb_modeswitch.conf:
DefaultVendor=0x0af0
DefaultProduct=0x6911
MessageEndpoint=0x05
MessageContent="5553424312345678000000000000 0601000000000000000000000000000000"

Команда отработки для него будет иметь вид:
usb_modeswitch -v 0x0af0 -p 0x6911 -m 0x05 -M 55534243123456780000000000000601000000000000 000000000000000000

Для Huawei E169:
Содержимое usb_modeswitch.conf:
DefaultVendor=0x12d1
DefaultProduct=0x1001
HuaweiMode=1

она будет иметь вид:
usb_modeswitch -v 0x12d1 -p 0x1001 -H 1
---
* Данные примеры представлены в показательных целях
---
Пробуем нашу комбинацию при открытом системном логе. По ходу выполнения usb_modeswitch должно быть выведено удачное выполнение команды, а в логах возможно отображение хода отключения диска на модеме и появление неизвестного системе девайса с идентификаторами модема (если говорить о третьем типе модемов).
Теперь пробуем навинтить модем на usbserial:
insmod usbserial vendor=0xXXXX product=0xXXXX maxSize=XXXX
Если в системном логе отображается появление новых USB-COM портов, проверяем их доступность командой
ls -l /dev/usb/*
Если появляется список портов - значит, можно приступать к написанию скриптов дозвона

--------------------------------------------------------------------------------
2.2-В) Конфигом
--------------------------------------------------------------------------------
Принцип такой постановки основан на обработке модема командой usb_modeswitch по параметрам, сведенным в файле конфигурации (и вся обработка тогда сводится в вызове собственно команды usb_modeswitch). По умолчанию файл конфигурации /etc/usb_modeswitch.conf в прошивке от Олега отсутствует, потому его надо добавить:
  • 1) Ваяем конфиг в Блокноте (например, для Huawei E169)
    DefaultVendor=0x12d1;
    DefaultProduct=0x1001
    HuaweiMode=1
  • 2) С помощью редактора vi вписываем его в роутер и записываем как /etc/usb_modeswitch.conf
  • 3) Сохраняем его как файл (замечу: эта строка должна висеть первой в списке):
    echo /tmp/local/.files > /etc/usb_modeswitch.conf
  • 4) Флешируем и ребутим роутер
    flashfs save && flashfs commit && flashfs enable
    reboot
После перезагрузки при открытом логе системы вызываем usb_modeswitch без параметров:
usb_modeswitch
И при удачной его отработке навинчиваем на usbserial (как уже было указано выше, для первого типа модемов).
Если все прошло нормально - запуск модема через файл конфигурации осуществлен.
__________________
DM500S, DM800HD, GI S8120 - 4W,5E,13E,36Е,75E (VIP)

Поминутный IPTV!

ThinkPad.com.ua - форум любителей техники ThinkPad
Admin вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо: