Рейтинг@Mail.ru
Дата-центр itsoft
[Войти] [Зарегистрироваться]

Наши друзья и партнеры


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



Библиотека сайта или "Мой Linux Documentation Project"

На главную -> 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 голосовавших
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии

Николай Алексеев пишет: 10.10.2010
Не понимаю, зачем огород городить! На виртуальном СД-роме, есть софт под Линукс.

Терний Айрус пишет: 29.11.2010
Спасибо. при первом подключении статья помогла включить модем. Но позже возникали некоторые проблемы, что пришлось переключиться wvdial на pppd, так как оператор, что-то там у себя постоянно меняет так, что приходися постоянно эксперементировать с ppp-опциями. Всем, кстати рекомендую: бросайте оболочки и изучайте pppd. Автор, подскажи (please) источники где можно больше узнать об этом модеме, в частности о командах модема, гугл с яндексом достали с ссылками хаутушки.

Терний Айрус пишет: 29.11.2010
"Николай Алексеев пишет 10.10.2010: Не понимаю, зачем огород городить! На виртуальном СД-роме, есть софт под Линукс." Кому-то повезло: может и есть. И вс? же линукс изнутри лучше рабоает с оборудованием, чем "левые" и "правые" софты.

Терний Айрус пишет: 29.11.2010
Алексей Дмитриев, включил я виртуальный сидюк, монтировал, и ничего: работает и в интернете.

Николай Сергиенко пишет: 03.12.2010
Все, отлично, сделал по первому варианту, модем megafon internet. Пашет и на винде и на песике, то бишь Puppy420 rus. До этого мучился на песике. Статья очень хорошая и написана понятно, спасибо. Вот бы еще найти такую, КАК ПОДКЛЮЧИТЬ СПУТНИКОВЫЙ ИНТЕРНЕТ? А то обратился на форуме сообщества пупу так ни хрена и не помогли, а только на пинали.

Andre Mono пишет: 14.02.2011
Интересно! И наверное будет ещ? интересней когда стану эти настройки делать. Одним из самых главных критериев выбора Ubuntu 10.10 в качестве ОС было то, что она самостоятельно определила вышеупомянутый модем и установила его в течении 1(одной) минуты и подключила к нему домашнюю сеть, без обычных Winтанцев. Статью искал в связи с невозможностью автоматического восстановления соединения. Прошу прощения: модем самостоятельно разлочен от МТС, обыкновенным калькулятором, сим-карта U-tel,вот это соединение система обнаружила и установила.

Алексей Боженко пишет: 20.03.2011
Очень классная инфа . Спасибо !!!

Тимур Абилов пишет: 16.04.2011
У меня модем выкидывает на порт уровень сигнала каждые две секунды. Кто знает, как это отключается?

Николай Петкогло пишет: 15.05.2011
Огромное спасибо! Все прошло "на ура!" по первому варианту. Настроил модем Huawei E171. Все великолепно работает. Дистрибутив ALT Linux.

Роман Воронов пишет: 04.07.2011
А можно ли будет вернуть функцию виртуального привода, если она уже была отключена? В принципе, мой Huawei e156g работает в линуксе и без отключения функций виртуального привода и кард-ридера. Но, очень раздражает появление дополнительных дисков, когда приходится пользоваться модемом в Windows.

ELENA SHERSTNEWA SHERSTNEWA пишет: 25.09.2011
А У МЕНЯ ПОЧЕМУ-ТО БУКВЫ НЕ ПИШУТСЯ В КОМАНДНОЙ СТРОКЕ

Евгений Алекперов пишет: 08.02.2012
Очень нужен совет, помогите плиз! Windows Prof 3SP, Все драйвера новейшие, с USB портом все впоряде... не считая BIOS и железа, там лажа почти полная)Модемчик Билайн, модель HUAWEI E171. До этого был модем другой модели... В общем хрень какая-то: вставляю модем, появляются сообщения о том, что подлючен CD-ROM и все такое (ну это понятно, по стандарту), а потом что-то вроде оборудование установлено через одно место и может работать неправильно. И такая процедура через каждые секунд пять и все неправильно. В диспетчере устройств тоже жесть какая-то: то все работает на заипца, то один драйвер не але, то второй, то неопознанные какие-то появляются... Пробовал устанавливать все от руки - неполучилось, может что не так и не то устанавливал... Но мнение сложилось, что это что-то типа системы безопасности windows не дает установить дрова автоматом... Может, конечно, я и ошибаюсь, но особо мне не поэкспериментировать - комп не мой... Но если я его сделаю, то неплохо наварю деньжат. А деньги никогда лишними не бывают) Кто знает в чем дело, отпишитесь плиз. Можно на почту: ev.alekperov@yandex.ru Правда очень надо и сроки поджимают...

Aleksey Kutsenko пишет: 12.04.2012
(Евгений Алекперов пишет 08.02.2012...) Устанавливал вручную, дрова скопировал с CD-roma модема на винт и указал путь. Впоследствии определялся всегда и без проблем.