Человек, купивший данный модем, сталкивается с невозможностью использовать его под 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).
Введя команду, смело жмем 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
Дальнейшие действия зависят от вида вашего дистрибутива.
Для пользователей RPM дистрибутивов
Вам нужно установить программу usb_modeswitch. Эта программа не является редкой и имеет всего одну зависимость - libusb соответствующей версии.
После инсталляции программы в вашей системе, вам потребуется создать текстовой файл /etc/usb-modeswitch.conf. (Будьте внимательны с черточкой в имени файла и программы: программа называется usb_modeswitch, а файл usb-modeswitch.conf).
В этом файле нужно прописать следующее (лучше скопировать и вставить):
Код: Выделить всё
DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"
Код: Выделить всё
# 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.
Но нам этих секунд достаточно чтобы в директории /dev появились три новых устройства: ttyUSB0-ttyUSB2. В этом нужно убедиться:
Код: Выделить всё
# ls /dev | grep ttyUSB
ttyUSB0
ttyUSB1
ttyUSB2
Не пытайтесь сейчас наладить дозвон - это бесполезно. Нужно сначала отключить эмуляцию 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^U2DIAG=0 и нажать ENTER. Снова появится ответ - OK.
Теперь нажимаем CTRL+A и внизу окна миникома появится красная панель. Нажав Z можно просмотреть список команд. Нам нужна "Выход без сброса"- Q. Нажимаем Q и покидаем программу миником. Модем доработан.
Чтобы убедиться в этом, вытащим его из гнезда USB, а затем снова включим (лучше в другое гнездо). Если никакого CD-ROM'а не появляется, повторим команду:
- # ls /dev | grep ttyUSB
ttyUSB0
ttyUSB1
ttyUSB2
Примечание: Теоретически возможно, что модем окажется не устройством ttyUSB0. Тогда нужно повторить все операции с миникомом для устройств ttyUSB1 и ttyUSB2.
Для пользователей Debian-подобных дистрибутивов (Ubuntu и иже с ними)
В настоящее время (статья датируется февралем 2010) для этой платформы программа usb_modeswitch находится в стадии разработки. Но в репозитории Ubuntu появилась программа modem_modeswitch. Каким образом вы ее установите, зависит от вашего дистрибутива.
После того как вы инсталлируете эту программу, нужно в консоли с правами root, либо при помощи sudo, запустить следующую команду:
Код: Выделить всё
# /lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd
Код: Выделить всё
# ls /dev | grep ttyUSB
ttyUSB0
ttyUSB1
ttyUSB2
Настройка модемного соединения с Интернет
Настраивать модемное соединение можно двумя основными способами: писать скрипты ррр (Point-to-Point-Protocol), либо использовать программы-посредники. Писать скрипты - целая наука, поэтому остановимся на втором способе.
Среди программ дозвона выделяется wvdial - старая и добрая "звонилка" подходящая для всех дистрибутивов. Для рабочего стола KDE предназначены программы КРРР, KInternet, и Chestnut Dialer; для GNOME - программа Gnome-ppp. Разберем основные программы дозвона.
Wvdial
Подключаться при помощи этой команды не просто, а очень просто. Открываем root консоль и вводим команду wvdialconf. Программа сама определит модем и создаст файл /etc/wvdialconf. Вам нужно только немного его отредактировать: вписать другую строку инициализации, проставить пароль и имя пользователя, и обязательно строку "Stupid Mode = yes". Вот как выглядит этот файл у меня:
[Dialer Defaults]
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","internet.beeline.kg"
Modem Type = USB Modem
Baud = 57600
New PPPD = yes
Modem = /dev/ttyUSB0
Phone = *99#
Password =
Username =
Stupid Mode = yes
Заодно проверьте, есть ли в директории /etc файл /etc/resolv.conf. Если нет, то создайте пустой текстовый файл с этим именем.
Все. Под root'ом набираем команду wvdial и соединение будет установлено. Когда в выводе команды появятся URL'ы (в виде цифр) значит коннект есть. Открывайте браузер и проверяйте.
Чтобы прервать соединение, нужно обязательно нажать комбинацию клавиш CTRL+C. Если просто закрыть окно терминала, то соединение будет продолжать работать, и чтобы его разорвать придется убивать процесс командой kill.
Единственный недостаток программы wvdial - невозможность следить за скоростью и объемом трафика. Но для этого существуют другие программы, описывать которые здесь не будем.
KPPP - программа дозвона для рабочего стола KDE
Самая удобная в работе, но и самая капризная в настройке из всех "звонилок". Показывает скорость и объем трафика.
В Интернете множество руководств по ее применению, поэтому я не стану особенно распространяться. Скажу лишь, что упорство обязательно приведет к успеху. Нужно разбираться, почему программа не работает, проверять права доступа всех сопутствующих файлов и успех обязательно придет. Все настройки такие же, как я привел в файле wvdialconf. Иногда на настройку кррр уходит несколько дней. Но чаще, к счастью, она начинает работать за 10 минут.
GNOME PPP - программа дозвона для рабочего стола GNOME
Очень похожа на KPPP, но работает по другому принципу.
Надеюсь, что вы уже "довели до ума" свой модем и подсоединились к Паутине. Счастливого серфинга!