22 December 2010

Использование EVDO-модема BLESS UC165 в Ubuntu

Версия Ubuntu - 10.10 Maverick Meerkat.

При подключении устройство определяется как USB Mass Storage Device (вывод lsusb):

Bus 007 Device 002: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device


Соответственно, при попытке создать новое мобильное соединение, никакого устройства не доступно:



Чтобы оно заработало нужно: a) перевести его в режим wireless-модема b) загрузить usbserial.

Для изменения режима работы устройства используется usb_modeswitch, выполняем следующую команду:

sudo usb_modeswitch -v 05c6 -p 1000 -V 1d09 -P 4306 -m 0x00000008 -M 5553424328932a86000000000000061b000000020000000000000000000000

Магические значения параметров -m и -M найдены на форуме Ubuntu.

Теперь lsusb покажет что устройство изменилось:

Bus 007 Device 003: ID 1d09:4306 TechFaith Wireless Technology Limited

Далее, нужно загрузить usbserial, указав устройство:

sudo modprobe usbserial vendor=0x1d09 product=0x4306

После этого, про создании нового мобильного соединения, появится доступное устройство:



А теперь настроим систему так, чтобы не нужно было запускать usb_modeswitch и usbserial вручную.

usb_modeswitch: в каталоге /etc/usb_modeswitch.d создаём файл с именем "05c6:1000:uMa=Qualcomm". Имя файла состоит из идентификаторов вендора и продукта, а дальше указывается какая строка должна присутствовать в описании устройства, в нашем случае это "Qualcomm". Теперь usb_modeswitch будет автоматически реагировать на устройство с указанными ИД-ами и словом "Qualcomm" в описании.

Содержимое файла такое:

# Configuration for the usb_modeswitch package, a mode switching tool for
# USB devices providing multiple states or modes
#
# This file is evaluated by the wrapper script "usb_modeswitch_dispatcher"
# in /usr/sbin
# To enable an option, set it to "1", "yes" or "true" (case doesn't matter)
# Everything else counts as "disable"

DefaultVendor= 0x05c6
DefaultProduct= 0x1000

TargetVendor= 0x1d09
TargetProdct= 0x4306

MessageEndpoint= 0x00000008

MessageContent= "5553424328932a86000000000000061b000000020000000000000000000000"

Теперь режим нашего устройства будет переключаться автоматически.

Далее, необходимо выполнять команду для загрузки модуля usbserial. На многих форумах рекомендуется использовать /etc/modules.conf (modprobe.conf), однако этот вариант у меня не заработал.
Я прописал нужную команду в /etc/rc.local (прописывать нужно перед последней строкой, последняя строка должна содержать команду "exit 0"):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

modprobe usbserial vendor=0x1d09 product=0x4306

exit 0

Для применения изменений следует перезагрузить систему. Теперь модем будет обнаруживаться автоматически.

На формуах много тем с обсуждением подобных устройств, однако там либо вообще не описано как заставить usb_modeswitch и usbserial отрабатывать автоматически, либо описанные способы не работают, так что тут я описал способ, который работает для меня на Ubuntu 10.10.

7 comments

Jan 18, 2011, 5:36:00 PM

пролистал все ссылки но так и не понял, каким способом было найдено значение месседжа для переключения режима модема с сидюка на модем? вообще информации по этой теме нигде не нашел толковой.

Jan 18, 2011, 5:44:00 PM

Там есть ссылка в тексте: "Магические значения параметров -m и -M найдены на форуме Ubuntu" - http://forum.ubuntu.ru/index.php?topic=64765.0

Jan 21, 2011, 5:17:00 PM

ну да, походил я по этому форуму и собственно, ничего там не заметил. делал поиск заветной строки и не нашел ни ее ни описания способа получения.
Но, кстати, я нашел способ работать с смс-ками и телефонной книгой под линуксом с этим аппаратом.
методом перехвата юсб порта и анализа сообщений туда и назад мне удалось накатать программку которая пока что умеет лишь читать смс и удалять их. при этом смс читаются и в латинице и в юникоде. Если инетересует - пиши в скайп switnj !

Jan 21, 2011, 5:20:00 PM

P.S.: Мой мопед зовется Jet TechFaith EV-DO

для него небольшая модификация нужна,
TargetVendor= 0x1d09
TargetProduct= 0x4316

потому как код устройства 1d09:4316

Jan 31, 2011, 10:26:00 AM

повесил адаптированную под свой модем и доработанную версию читалки смс здесь: http://www.pharscape.org/forum/index.php/topic,883.0.html

Feb 25, 2011, 1:30:00 PM

У меня lsusb показывает что модем уже успешно и так определен.

Bus 002 Device 021: ID 1d09:4306 TechFaith Wireless Technology Limited


После ввода

overlife@overlife-T101MT:~$ sudo usb_modeswitch -v 05c6 -p 1000 -V 1d09 -P 4306 -m 0x00000008 -M 5553424328932a86000000000000061b000000020000000000000000000000
[sudo] password for overlife:

Looking for target devices ...
Found devices in target mode or class (1)
Looking for default devices ...
No devices in default mode or class found. Nothing to do. Bye.

Но как он, этот самый модем, производит соединение для меня сущая загадка. При перезагрузке конектит сразу идет на автомате и с загрузкой рабочего стола он уже активен. Но потом NetworkManager может спокойно порвать конект, уйдя в автономный режим и хз какой алгоритм действий будет работать сто пудей что бы его снова восстановить. Иногда помогает включение и выключение самого NetworkManager, иногда отключение и включение галки "мобильная связь". А иногда ничего с этого не помогает и нужно только перезагружать. Стоит убунту 10.10. Комп нетбук asus eeepc T101MT.

Jul 19, 2012, 9:24:00 PM

спасибо большое автору! Если бы не нашёл данного поста, остался бы на маздае, а так буду человеком себя чувствовать :)

Post a Comment