Настройка usb_modeswitch для подключения 3g модема.
Приобрел новый модем от мтс.
Взял модель Huawei Vodafone K 3806 (14.4 Мбит/с).
Все свои предыдущие модемы я сразу же переводил в режим only modem, где не получалось — отключал zeroCd.
Первая проблема с которой мне пришлось столкнуться с новым модемом: отсутствие возможности отключить zeroCd либо перевести в режим «только модем».
Нужные AT команды неизвестны, прочесал весь интернет. Залезть внутрь модема тоже не получается QPST не поддерживает данный чипсет.
Выход был прост: воспользоваться стандартной утилитой — usb_modeswitch.
Установил. Вставляю модем — ttyUSB в каталоге /dev/ не появляются.
Начал разбираться:
Изначально устройство подключается как cd-rom и имеет следующие параметры:
v (vendor) 12d1, собственно он не меняется и обозначает производителя.
p (product id) — 1449
После запуска usb_modeswitch (а точнее после того как она автоматически сработала) id продукта стал равен 1448.
Необходимые файлы в каталоге /dev/ не появились.
Посмотрел в Windows после смены режима модема с cd-rom на модем id продукта стал 1001.
На лицо ошибка работы утилиты usb_modeswitch.
В файле /lib/udev/rules.d/40-usb_modeswitch.rules встречается упоминание моего модема следующими строками:
# Vodafone (Huawei) K3806
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14ad", RUN+="usb_modeswitch '%b/%k'"
Но в реальности idProduct моего модема не соответствует указанному 14ad.
К тому же если посмотреть содержимое файла /usr/share/usb_modeswitch/12d1:14ad (который будет использоваться как файл конфигурации для usb_modeswitch при подключении устройства с idVendor = 12d1 и idProduct = 14ad), то указанный TargetProduct, который должен появиться после использования usb_modeswitch не соответствует тому, что я получил в Windows.
########################################################
# Vodafone (Huawei) K3806
DefaultVendor= 0x12d1
DefaultProduct=0x14ad
TargetVendor= 0x12d1
TargetProduct= 0x14ae
CheckSuccess=20
MessageContent=»55534243123456780000000000000011062000000100000000000000000000″
Т.к. в файле /usr/share/usb_modeswitch/12d1:1449 (который используется для моего модема) указана модель Huawei E352, то и MessageContent для моего модема не подходит.
Поиски готового MessageContent для Huawei Vodafone K 3806 положительных результатов не дали.
Где-то на официальном сайте нашел пост в котором предлагалось выяснить необходимый MessageContent с помощью программы USBSnoop.
Данная затея омрачилась тем, что USBSnoop не поддерживает ОС Windows позднее XP.
Имея под рукой только Windows 7 поискал аналоги и выбрал USBlyzer.
Дальше делал так:
Для того чтобы выловить нужный мне запрос пришлось удалить мтс-коннект менеджер, т.к. он автоматически запускается при подключении модема и переводит его в режим модема.
Запустил USBlyzer, подключил модем. Он определился как cd-rom. В списке usb-устройств нашел свой модем и выбрал его для сканирования. Нажал «Capture» и нажал «Извлечь» на cd-rom’е моего модема.
Как только USBlyzer посыпал красными сообщениями нажал «Stop».
Т.к. я не знал какой именно запрос мне нужен, выбрал несколько последних, перед тем как потерялась связь с модемом. MessageContent запросы можно посмотреть на вкладке «Raw Data» внизу окна. Я выбирал только 32-битные сообщения, потому что они соответствовали нужному формату.
Долго тестировать не пришлось. Подставил в настройки usb_modeswitch MessageContent из последнего запроса к модему, установил правильный TargetProduct.
Вставил модем и счастью моему небыло предела. usb_modeswitch правильно обработал модем, после чего необходимые ttyUSB появились в /dev/.
В итоге мой конфигурационный файл (/usr/share/usb_modeswitch/12d1:1449) принял следующий вид:
########################################################
# Huawei K 3806
DefaultVendor= 0x12d1
DefaultProduct=0x1449
TargetVendor= 0x12d1
TargetProduct= 0x1001
MessageContent="5553424378D2AE86000000000000061B000000020000000000000000000000"
CheckSuccess=20
тоже модем K3806 от МТС, но конфиг другой получился.
DefaultVendor= 0x12d1
DefaultProduct=0x1449
TargetVendor= 0x12d1
TargetProduct= 0x144e
MessageContent=»55534243000000000000000000000011060000000100000000000000000000″
CheckSuccess=5
«Mode switch success» ответило, но инет пока не получилось настроить
а на винде есть способ ?
может попробовать стандартные программы идущие в комплекте с модемом? они все для винды