Поговорим о 3G/EDGE/GPRS USB модемах, раздаваемых "большой тройкой". Сейчас речь пойдет о Huawei E1550, но, думаю, для других моделей все нижесказанное тоже актуально, за исключением разве что idProduct'а и idVendor'а, которые можно найти в Сети для каждой железки.
Проблема работы этих устройств в линуксах заключается, по большому счету, в том, что при подключении девайс определяется как CD-ROM, на котором лежит софт для подключения и работы в винде. После установки он сам переключает (flip-flop) девайс на "режим модема". У linux же такое переключение возможно, если работать с модемом софтинкой Mobile Partner от Huawei. Но она, на мой взгляд, уж сильно прожорливая и неторопливая, что особо нехорошо для мобильных устройств. Итак, основная задача - перевести девайс в режим модема, заимев в результате /dev/ttyUSB0, через который pppd и будет "звонить". В случае Ubuntu все просто:
sudo apt-get install usb-modeswitch
Свежие версии "знают" о Huawei E1550, поэтому добавлять ничего не придется.
Для того, чтобы модем переключался в нужный режим автоматически при подключении, создадим правило udev: /etc/udev/rules.d/45-huawei1550.rules следующего содержания:
SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch -v 0x12d1 -p 0x1446 -m 0x01 -M 55534243000000000000000000000011060000000000000000000000000000"
Таким образом, если udev видит подключенное устройство с совпадающими параметрами, он выполняет соответствующую команду.
Для проверки следует переподключить модем и поглядеть вывод lsusb, который должен отрапортовать о наличии модема.
lsusb | grep Huawei
Bus 003 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
В случае с Debian Lenny действий придется совершить чуть больше, ибо пакет usb-modeswitch доступен только для sid. Не беда, соберем сами. Алгоритм простой: качаем исходники, распаковываем, собираем и устанавливаем. Предварительно полезно прочитать информацию на страничке продукта, выяснив, к примеру, что для сборки необходимо установить пакеты tcl и libusb-dev, а также pppconfig для последующей настройки подключения.
apt-get install tcl libusb-dev pppconfigmkdir modswitch; cd modeswitchwget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.4.tar.bz2tar zjvf usb-modeswitch-1.1.4.tar.bz2cd usb-modeswitch-1.1.4make installcd ..wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100826.tar.bz2tar xjvf usb-modeswitch-data.tar.bz2cd usb-modeswitch-datamake install
Установщик сам "договорится" с udev-ом, поэтому переключение в режим модема при подключении девайса должно работать сразу, что и следует проверить после окончания установки usb-modeswitch.
Теперь осталось лишь настроить ppp-подключение. Запускаем pppconfig, отвечаем на вопросы, к примеру, так:
Create -> mts -> dynamic -> pap -> mts -> mts -> 115200 -> tone -> *99# -> Нет -> /dev/ttyUSB0 -> Finished
Все, осталось запустить соединение:
pppd call mts nodetach
Все должно работать.
Один раз, на убунте, столкнулся с ошибкой: pppd отключался с таким отлупом:
Protocol-Reject for 'Compression Control Protocol' (0x80fd) receivedПолечилось явным указанием точки входа в /etc/chatscripts/mts:
rcvd [IPCP ConfNak id=0x1]
sent [IPCP ConfReq id=0x2]
Modem hangup
Connection terminated.
# modeminitПроверка скорости на internet.yandex.ru:
'' ATZ
'' AT+CGDCONT=1,\"IP\",\"internet.mts.ru\"
Я.Интернет. Измерьте вашу скорость.
То бишь - HSDPA имеет место быть худо-бедно ;)
Комментариев нет:
Отправить комментарий