At команды huawei linux

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

Человек, купивший набор МТС Коннект, или аналогичный от других мобильных операторов, сталкивается с невозможностью использовать его под 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 и в дальнейшем отказаться от возможности использовать устройство как флешку. Это облегчит вам жизнь при настройке модемного соединения под Линукс.

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

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

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

Читайте также:  Supermicro image on windows share

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Wvdial

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

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

Читайте также:  Восстановление windows lenovo b50

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

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

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

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

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

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

Источник

Выполнение AT/USSD команд к /dev/ttyUSB* модему из консоли Linux

Утилиты и скрипты для коммуникации с /dev/ttyUSB* устройством из shell консоли (bash скриптов).

Теория

Отправить в /dev/ttyUSB* терминал AT команду не составляет проблем. Но результат вывода мы не увидим!

Мы можем читать поток stdout c /dev/ttyUSB2 (результат выполнения команд):

  1. Нужно получить только результат выполнения конкретной AT команды, а не весь поток вывода.
  2. Нужно использовать gsm7bit кодировку для кодирования параметров и получения ответа при выполнении USSD запросов:
  3. Ну и хочется простоты в работе)

Выполнение AT/USSD команд

Скрипт at.sh для отправки AT команды и получения ответа в переменную:

Но вы получите ответ вида:

minicom

Можно отправить AT команду и перенаправить весь вывод в файл:

После этого нужно закрыть терминал и разобрать/декодировать весь вывод из файла output.txt. Не круто..

ussd.py

В сети нашел python скрипт для отправки USSD запросов (немного поправил):

Кодировка GSM 7bit в USSD запросах

Кодирование в gsm7bit

При отправке USSD запросов нужно кодировать USSD-код в кодировку GSM 7bit (как я понял из-за того, что модем не поддерживает текстовый режим).

Следующие запросы вернут ERROR:

Python функция gsm7bitencode для кодирования utf8 строки в gsm7bit:

Примечание

Смотрите онлайн-сервис для работы с кодировками: http://smstools3.kekekasvi.com/topic.php?id=288

Пример USSD команд в кодировке 7bit gsm проверки баланса:

Кодированные ответы (ответ всегда приходит на устройство /dev/ttyUSB2):

Декодирование из gsm7bit

Python функция gsm7bitdecode для декодирования gsm7bit в utf8:

Источник

achmel / huawei-3372-ru.md

The Ultimate Guide for Huawei E3372h

Что я сделал, чтобы подружить модем с антенной?

  1. Взял стоковый модем, запустил виртуалку 2015 года с WindowsXP (песочницу), там уже были дрова Huawei, но в Мобильном ассистенте общаться с модемом не удалось.
  2. Скачал c 4pda Pupdatewiz и подходящую прошивку.
  3. Запустил Pupdatewiz — вуаля!

После прошивки стало:

  1. Выключил винду, на маке использовал mode_switch и переключил модем на вечный debug mode.
  2. Снова загрузил винду, в ней стал доступен Терминал.exe.

Вот этими командами восстанавливается убитая в ходе прошивки имеюшка. Тут как повезет либо AT^CIMEI , либо AT^NVWREX . Первая команда, как я понял, не всегда доступна, для успешного использования в второй надо предварительно воспользоваться утилитой imei_converter и вместо нулей записать то что надо. Команда AT^INFORBU нужна имхо для применения долгосрочной записи в NVRAM.

Код imei_converter.c приведен ниже:

  1. На фоне модем плевался мне подобными сообщениями в терминал:

Последнее событие — событие IMSI Attach.

  1. Самая полезная команда — AT^LOCINFO? , она выдает сразу MCC, MCN, LAC, CID. C этими данными можно сразу смело идти на https://xinit.ru/bs/ и получать данные базовой станции.
  1. Но под виндой сидеть было грустно. После перепрошивки на маке/линуксе можно сделать telnet 192.168.8.1 и засылать AT-команды в /dev/appvcom1 либо просто слушать cat

Первый способ — если не нужен интерактив

Второй способ — двухсторонний обмен с модемом, он не очень удобен, т.к. обычно происходит много событий.

Наиболее удобная для меня система — слушать события в отдельном терминале, а в другом кидать команды:

RSRP – средний уровень сигнала принимаемого с базовой станции оператора. Измеряется по логарифмической шкале в дБм (dBm) и отображается в виде отрицательных значений. Чем значение ближе к нулю, тем выше уровень принимаемого сигнала. Например, значение сигнала RSRP равное -65 dBm, намного лучше, чем значение -97 dBm.

Читайте также:  Skype выбрать для windows

SINR — отношение уровня полезного сигнала к уровню шума (соотношение сигнал/шум). Измеряется в дБ (dB). Чем выше данное значение, тем лучше качество сигнала. При значениях SINR ниже 0 скорость подключения будет очень низкой, т.к. это означает, что в принимаемом сигнале шума больше, чем полезной части.

Считается, что параметр сигнал\шум (SINR) в ряде случаев может быть важнее, чем уровень сигнала. При SINR в интервале 15-20 (dB) модем выдаст все, на что способна данная БС, даже при посредственном, около -70. -80 dBm, уровне RSRP, если сама БС окажется не перегружена в момент тестирования.

Показатели качества принимаемого сигнала

Значения параметров RSSI SINR (Ec/Io)
Отличные -30. -50 dBm 30 dB и выше
Хорошие -50. -70 dBm от 20 dB до 30 dB
Удовлетворительные -70. -85 dBm от 10 dB до 20 dB
Плохие -85. -110 dBm менее 10 dB

Основная часть (выборочная копипаста)

1. Предварительная подготовка

Есть две разновидности прошивок: Stick и HiLink . С прошивкой Stick модем будет видеться AT-модемом, для подключения к интернету нужно «дозваниваться». С HiLink-прошивкой модем представляется сетевой картой Ethernet, и не требует настроек в ОС.

По умолчанию, модем находится в режиме HiLink , такой типа роутер, с красивым веб-интерфейсом.

2. Balong Flash / Прошивка под mac, linux, windows

Для прошивки под Linux используется утилита balong_flash.

  • https://github.com/forth32/balongflash (Программа для прошивки модемов фирмы Huawei на чипсете Balong v7)
  • https://github.com/forth32/balong-fbtools (Утилиты для работы с flash модемов на платформе Balong)
  • https://github.com/forth32/balong-usbdload (Утилита для аварийной USB-загрузки модемов на чипсете Balong V7)
  • https://github.com/forth32/balong-nvtool (Утилита для обработки образов NVRAM устройств на чипсете Hisilicon Balong)

В отличие от Linux, нa Macintosh адрес, скорее всего, будет не /dev/ttyUSB0 , а /dev/tty.HUAWEIMobile-Diag .

Достоверно узнать адрес устройства можно с помощью команды ls /dev | grep HUA .

3. Pupdatewiz Flash / Прошивка под windows

Распаковать архив, поместить нужную прошивку (.exe или .bin) в папку с командным файлом go.cmd и запустить его.

4. Полезные и интересные АТ-команды и настройка конфигурации модема

В модеме имеется хранилище различной конфигурационной информации — NVRAM. Оно организовано в виде набора записей переменной длины. Каждая запись имеет номер — от 0 до 65535, но не все номера записей физически присутствуют в модеме. Чтобы узнать длину конкретной записи, используется команда:

— номер записи. В ответ модем выдает ее длину:

Посмотреть содержимое конкретной записи можно командой:

— смещение от начала записи до интересующего нас фрагмента (0 — с начала) — длина выводимого фрагмента, должна быть не больше полной длины записи минус смещение.

Поиск базовых станций сотовой связи

Данный модем обладает уникальным свойством — он умеет делать поиск всех окружающих базовых станций (БС). Причем не только БС оператора вставленной в него симкарты, а вообще все БС всех операторов, сигнал от которых достигает антенны модема. Для каждой найденной БС выводится ее CID и уровень принимаемого от нее сигнала. Это позволяет выбрать оператора с наивысшим уровнем сигнала, а также выбрать конкретную БС для наведения на нее внешней антенны. Единственный недостаток данного модема — он умеет искать только БС 2G и 3G. LTE-соты искать он не умееет.

Если в округе имеется сигнал LTE, то следует перевести модем в режим 2G3G командой AT^SYSCFGEX=»0201″,3FFFFFFF,1,2,800C5,, или в настройках веб-интерфейса. Также обратите внимание, что эту команду можно ввдить только через порт управления (PCUI). Если ее ввести через порт, предназначенный для установки РРР-соединения (modem), то команда будет выдавать пустой ответ (просто ОК и все). Формат команды: AT^NETSCAN=num,level,mode num — число находимых БС, от 1 до 20. Если будет найдено больше num БС, то станции с самым слабым сигналом будут исключены из списка level — минимальный уровень сигнала БС, включаемых в список. Задается в дБ, от -110 (самый низкий уровень) до -47 (самый высокий уровень). Станции с уровнем сигнала меньше level в список включаться не будут. mode — тип БС. 0 -поиск 2G-станций, 1 — поиск 3G-станций.

В этом примере заказывается поиск 3G БС с уровнем сигнала не ниже -108 дБ. Результат выдается в виде списка, отсортированного по уровню сигнала. Самая верхняя БС — самая мощная, нижняя — самая слабая. Формат элемента списка:

Источник

Оцените статью