Архив Апрель 2011

Debian + Flyer U2 3G USB-modem

| Нет комментариев
Попался в руки как то гордый китайский универсальный 3G модем Flyer U2. При цене в 1.4 тыс. руб., сей девайс помимо всеядности в плане SIM-карт имеет на борту картридер под microSD, ZeroCD (ну а куда без него?) и работает с HSUPA/HSDPA/UMTS/EDGE/GPRS/GSM сетями. Заявлена поддержка WinXP/Vista/Win7 а так же Linux/Mac OS. После вставки данного устройства в USB-порт моего ноутбука с Debian GNU/Linux на борту, это самое USB отвалилось вместе с модемом, и подниматься обратно без живительного ребута никак не соглашалось. Сразу подумалось, кому бы из знакомых линуксоидов подогреть сие чудо в качестве подарка :-) А все потому что udev назначал устройству неправильный режим. Некоторое время гугления показало что с данной проблемой столкнулись многие, только у них сей девайс либо не узнавался как модем, либо не узнавался вообще никак. Из обрывков информации получилось следующее кривое решение (которое не всем нужно, ибо на борту модема есть пакет с аналогом usb-modeswitch и скрипт лечения этой железки).
И так, ставим usb-modeswitch и правим правила для udev:
В /lib/udev/rules.d/40-usb_modeswitch.rules комментируем строчку с правилом для устройства  1c9e:f000
#ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="f000", RUN+="usb_modeswitch '%b/%k'"

Файл /etc/usb_modeswitch.d/1c9e:f000 приводим к следующему виду:
DefaultVendor=0x1c9e
DefaultProduct=0xf000
TargetVendor=0x1c9e
TargetProduct="9605"
WaitBefore=5
CheckSuccess=20
MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
В /etc/udev/rules.d/ создаем файл 45-flyer-u2.rules с следующим содержимым:
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="f000", RUN+="/etc/udev/scripts/mount-flyer-u2"

Ну и соответственно /etc/udev/scripts/mount-flyer-u2
#!/bin/sh
usb_modeswitch -c /etc/usb_modeswitch.d/1c9e:f000
rmmod -f -s usbserial
modprobe usbserial vendor=0x1c9e product=0x9605
Даем ему права на исполнение и ребутаем udev.После таких манипуляций железка узнается как модем и картридер и не ломает usb.