Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
На главную -> MyLDP -> Тематический каталог -> Linux как клиент сети Internet

Как "приручить" МТС-модем Huawei E1550

Алексей Дмитриев. 2 апреля 2010

Человек, купивший набор МТС Коннект, или аналогичный от других мобильных операторов, сталкивается с невозможностью использовать его под Linux. Прекрасно работающий под Windows прибор, под Linux определяется не как модем, а как CD-ROM, выдавая соответствующий значок и уведомление.

Это не удивительно, ведь модем рассчитан на работу в среде Windows, где он автоматически устанавливает программное обеспечение необходимое для его работы. Именно благодаря эмуляции CD-ROM'а и возможна автоматическая установка. Модем виден в папке Windows "Мой компьютер" как CD-ROM и как флешка (съемный диск). Действительно, эта модель позволяет устанавливать микро-флешку MicroSD объемом до 4 Гб (больше нельзя). Сам же модем виден только системе, которая благодаря установленной программе "МТС Коннект" без труда находит его.

При подключении модема к Linux системе, происходит определение прибора как CD-ROM и дальнейшее определение не идет. Виртуальный CD, содержащий Windows программы, абсолютно бесполезен под Linux и мешает определиться модему, поэтому его необходимо каким-то образом отключить.

Мы рассмотрим несколько вариантов отключения эмуляции CD-ROM'а. Суть такой доработки одинакова для всех вариантов, а вот механизм различается в зависимости от платформы.

Способ первый: Доработка модема в среде Windows

Этот способ самый логичный и простой, предназначен для тех, кому поскорее нужен работающий модем, а лишние телодвижения не нужны.

Как уже говорилось выше, модем прекрасно виден в Windows системе, поэтому не приходится применять никаких хитростей. Просто втыкаем модем в USB разъем и устанавливаем согласно инструкции. Проще говоря, он сам себя устанавливает, вам нужно только соглашаться со всем, что появляется на экране. По окончании установки вы получаете программу "МТС Коннект" при помощи которой и подключаетесь к Интернету.

На всякий случай сохраняем содержимое виртуального CD в каком-нибудь укромном месте.

Затем следует отключиться от Интернета и запустить программу Hyper Terminal. Никогда не слышали о такой? Я тоже раньше не слышал. Однако такая программа есть. В Windows2000 и WindowsXP она находится в разделе Пуск --> Программы --> Стандартные --> Связь --> Hyper Terminal. А для Vist'ы и Windows7 ее придется скачать. Это можно сделать во множестве мест, например здесь. При этом нет никакой необходимости покупать ее, вполне достаточно пробной (trial) версии - вам она понадобится на один раз.

Вот как выглядит окно этой программы при запуске:

В окошке "Описание подключения" вводим любое слово, например "модем", и жмем ENTER.

Появляется другое окошко - "Подключение". В его последней графе "Подключаться через:" нужно выбрать "HUAWEI Mobile Connect - 3G Modem" и нажать ОК.

Появившееся после этого окошко (снова "Подключение") с номерами телефона и прочим нужно просто закрыть, нажав кнопку "Отмена".

Теперь на панели программы следует нажать последнюю кнопку "Свойства":

И в открывшемся окне "Свойства: модем" перейти на вкладку "Параметры:

Нажать кнопку "Параметры ASCII":

Поставить галочку во второй сверху графе "Отображать вводимые символы на экране". Нажать ОК. Верхнее окошко закроется. Нажать ОК. Последнее окошко закроется, и в главном окне программы замигает курсор. Включаем CAPS LOCK и печатаем команду АТ. Жмем ENTER. Появляется ответ: ОК. Значит связь с модемом установлена. Вводим одну из следующих команд:

AT^U2DIAG=0 	(устройство в режиме только модем)
AT^U2DIAG=1 	(устройство в режиме модем + CD-ROM)
AT^U2DIAG=255 	(устройство в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=256 	(устройство в режиме модем + Card Reader). 

Я советую воспользоваться командой AT^U2DIAG=0 и в дальнейшем отказаться от возможности использовать устройство как флешку. Это облегчит вам жизнь при настройке модемного соединения под Линукс.

Введя команду, смело жмем ENTER, и в ответ видим ОК. Модем доработан. Закрываем окно Hyper Terminal, ответив "ДА" на предложение прервать сеанс связи и отказавшись от сохранения подключения.

Теперь осталось убедиться, что эмуляция CD-ROM'а отключена. Для этого отсоединяем модем от USB порта и снова подсоединяем в тот же порт. В папке "Мой компьютер" не должно появиться "лишнего" CD-ROM - только столько, сколько есть физических приводов оптических дисков.

Задача решена. Можно переходить к настройке модемного соединения на Linux системе. Кстати и под Windows после этой процедуры модем станет работать стабильнее и быстрее. А если возникнет необходимость вернуть прибор в первобытное состояние, то никто не запрещает повторить всю процедуру, но уже с командой AT^U2DIAG=255 (устройство в режиме модем + CD-ROM + Card Reader).

Способ второй: Доработка модема в среде Linux

Для фанатиков Linux, считающих что "Виндоуз мастдай", и для тех, кто хочет неспеша повозиться в любимой системе, Паутина предлагает множество вариантов решения этой задачи. Ведь в Linux любая задача решается многими способами. Описанный ниже способ хорош тем, что не предполагает поиска и установки редких и новых программ.

Суть его все та же: передать на модем команду AT^U2DIAG=0, отключив все устройства, кроме модема. Для этого мы воспользуемся программой minicom. Это программа весьма древняя и имеется в репозиториях почти любого дистрибутива. Так что устанавливайте ее скорей, в любом случае без нее не обойтись.

Но для того, чтобы передать на модем какую-либо команду, нужно как минимум увидеть модем в своей системе. Для этого в вашем ядре должна быть включена поддержка эмуляции последовательных портов (usbserial или usb-serial). Это можно проверить командой:

# lsmod | grep usb | sort

ff_memless              9864  1 usbhid
hid                    67072  1 usbhid
usbcore               150896  8 libusual,option,usbserial,usbhid,uvcvideo,ehci_hcd,uhci_hcd
usbhid                 52096  0
usbserial              38632  1 option

Обратите внимание на последнюю строку вывода. У меня модуль usbserial подключен. Если у вас не так, то нужно его подключить. Как это сделать, зависит от вашего дистрибутива. Данная статья не может вместить инструкций по этому вопросу. Вы же хотели повозиться с любимой системой?

Дальнейшие действия зависят от вида вашего дистрибутива.

Для пользователей RPM дистрибутивов

Вам нужно установить программу usb_modeswitch. Эта программа не является редкой и имеет всего одну зависимость - libusb соответствующей версии.

После инсталляции программы в вашей системе, вам потребуется создать текстовой файл /etc/usb-modeswitch.conf. (Будьте внимательны с черточкой в имени файла и программы: программа называется usb_modeswitch, а файл usb-modeswitch.conf).

В этом файле нужно прописать следующее (лучше скопировать и вставить):

DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"

После этого следует подключить модем к USB порту, дождаться пока он будет определен системой как CD-ROM, а затем запустить команду (как root):

# usb_modeswitch

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 004 on bus 007 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("usb-storage")
OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
Vendor String: HUAWEI
Model String: Mass Storage
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Device is gone, skipping any further commands
-> Run lsusb to note any changes. Bye.

Немедленно после этого значок CD-ROM пропадает на некоторое время, а через 20-30 секунд снова появляется. Команда отключила эмуляцию CD-ROM, udev и hal тут же распознали собственно модем, а затем снова произошла эмуляция CD-ROM.

Но нам этих секунд достаточно чтобы в директории /dev появились три новых устройства: ttyUSB0-ttyUSB2. В этом нужно убедиться:

# ls /dev | grep ttyUSB

ttyUSB0
ttyUSB1
ttyUSB2 

Все идет по плану. Теперь нельзя вынимать модем из USB порта, иначе придется повторять все сначала.

Не пытайтесь сейчас наладить дозвон - это бесполезно. Нужно сначала отключить эмуляцию CD-ROM навсегда.

Запускаем в root консоли команду minicom -s:

Выбираем строку "Настройка последовательного порта" и жмем ENTER.

В строке: "Какую настройку изменить?" печатаем А. Курсор перейдет в верхнюю строку "А - Последовательный порт: /dev/modem". Вместо /dev/modem пишем /dev/ttyUSB0. Потом нажимаем ENTER, верхнее окно пропадает, и нажимаем ESC чтобы выйти из режима конфигурации.

Немедленно появится окошко "Инициализируется модем", затем оно сменится следующей информацией:

Добро пожаловать в minicom 2.3-rc1

ПАРАМЕТРЫ: I18n
Дата компиляции Feb  5 2008, 11:36:03.
Port /dev/ttyUSB0

                 Нажмите CTRL-A Z для получения подсказки по клавишам

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK

Введите команду AT и нажмите ENTER. Появится ответ - OK.

Осталось ввести (лучше всего скопировать) команду AT^U2DIAG=0 и нажать ENTER. Снова появится ответ - OK.

Теперь нажимаем CTRL+A и внизу окна миникома появится красная панель. Нажав Z можно просмотреть список команд. Нам нужна "Выход без сброса"- Q. Нажимаем Q и покидаем программу миником. Модем доработан.

Чтобы убедиться в этом, вытащим его из гнезда USB, а затем снова включим (лучше в другое гнездо). Если никакого CD-ROM'а не появляется, повторим команду:

# ls /dev | grep ttyUSB

ttyUSB0
ttyUSB1
ttyUSB2 

Что и требовалось. Можно налаживать дозвон.

Примечание: Теоретически возможно, что модем окажется не устройством ttyUSB0. Тогда нужно повторить все операции с миникомом для устройств ttyUSB1 и ttyUSB2.

Для пользователей Debian-подобных дистрибутивов (Ubuntu и иже с ними)

В настоящее время (см. дату в начале статьи) для этой платформы программа usb_modeswitch находится в стадии разработки. Но в репозитории Ubuntu появилась программа modem_modeswitch. Каким образом вы ее установите, зависит от вашего дистрибутива.

После того как вы инсталлируете эту программу, нужно в консоли с правами root, либо при помощи sudo, запустить следующую команду:

# /lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd

После этого в директории /dev должны появиться три устройства: ttyUSB0-ttyUSB2. это можно проверить при помощи команды:

# ls /dev | grep ttyUSB

ttyUSB0
ttyUSB1
ttyUSB2 

Теперь запускайте minicom как рассказано в предыдущем разделе. Все дальнейшие действия для всех дистрибутивов одинаковы.

Настройка модемного соединения с Интернет

Настраивать модемное соединение можно двумя основными способами: писать скрипты ррр (Point-to-Point-Protocol), либо использовать программы-посредники. Писать скрипты - целая наука, поэтому остановимся на втором способе.

Среди программ дозвона выделяется wvdial - старая и добрая "звонилка" подходящая для всех дистрибутивов. Для рабочего стола KDE предназначены программы КРРР и Chestnut Dialer; для GNOME - программа Gnome-ppp. Разберем основные программы дозвона.

Wvdial

Подключаться при помощи этой команды не просто, а очень просто. Открываем root консоль и вводим команду wvdialconf. Программа сама определит модем и создаст файл /etc/wvdialconf. Вам нужно только немного его отредактировать: вписать другую строку инициализации, проставить пароль и имя пользователя, и обязательно строку "Stupid Mode = yes". Вот как выглядит этот файл у меня:

[Dialer Defaults]
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","internet.mts.ru"
Modem Type = USB Modem
Baud = 57600
New PPPD = yes
Modem = /dev/ttyUSB0
Phone = *99***1#
Password = mts
Username = mts
Stupid Mode = yes 

Заодно проверьте, есть ли в директории /etc файл /etc/resolv.conf. Если нет, то создайте пустой текстовый файл с этим именем.

Все. Под root'ом набираем команду wvdial и соединение будет установлено. Когда в выводе команды появятся URL'ы (в виде цифр) значит коннект есть. Открывайте браузер и проверяйте.

Чтобы прервать соединение, нужно обязательно нажать комбинацию клавиш CTRL+C. Если просто закрыть окно терминала, то соединение будет продолжать работать, и чтобы его разорвать придется убивать процесс командой kill.

Единственный недостаток программы wvdial - невозможность следить за скоростью и объемом трафика. Но для этого существуют другие программы, описывать которые здесь не будем.

KPPP - программа дозвона для рабочего стола KDE

Самая удобная в работе, но и самая капризная в настройке из всех "звонилок". Показывает скорость и объем трафика.

В Интернете множество руководств по ее применению, поэтому я не стану особенно распространяться. Скажу лишь, что упорство обязательно приведет к успеху. Нужно разбираться, почему программа не работает, проверять права доступа всех сопутствующих файлов и успех обязательно придет. Все настройки такие же, как я привел в файле wvdialconf. Иногда на настройку кррр уходит несколько дней. Но чаще, к счастью, она начинает работать за 10 минут.

GNOME PPP - программа дозвона для рабочего стола GNOME

Очень похожа на KPPP, но работает по другому принципу. Отсылаю вас к статье "GNOME PPP - ключ к мобильному интернету".

Надеюсь, что вы уже "довели до ума" свой модем и подсоединились к Паутине. Счастливого серфинга!


Благодарности

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


Загляните также на страницу обсуждения статьи на нашем форуме.

Средняя оценка 4 при 3 голосовавших

Комментарии