- Выполнение AT/USSD команд к /dev/ttyUSB* модему из консоли Linux
- Теория
- Выполнение AT/USSD команд
- minicom
- ussd.py
- Кодировка GSM 7bit в USSD запросах
- Кодирование в gsm7bit
- Декодирование из gsm7bit
- Как «приручить» МТС-модем Huawei E1550
- Способ первый: Доработка модема в среде Windows
- Способ второй: Доработка модема в среде Linux
- Для пользователей RPM дистрибутивов
- Для пользователей Debian-подобных дистрибутивов (Ubuntu и иже с ними)
- Настройка модемного соединения с Интернет
- Wvdial
- KPPP — программа дозвона для рабочего стола KDE
- GNOME PPP — программа дозвона для рабочего стола GNOME
- Как и чем вводить АТ команды в модем
Выполнение AT/USSD команд к /dev/ttyUSB* модему из консоли Linux
Утилиты и скрипты для коммуникации с /dev/ttyUSB* устройством из shell консоли (bash скриптов).
Теория
Отправить в /dev/ttyUSB* терминал AT команду не составляет проблем. Но результат вывода мы не увидим!
Мы можем читать поток stdout c /dev/ttyUSB2 (результат выполнения команд):
- Нужно получить только результат выполнения конкретной AT команды, а не весь поток вывода.
- Нужно использовать gsm7bit кодировку для кодирования параметров и получения ответа при выполнении USSD запросов:
- Ну и хочется простоты в работе)
Выполнение 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:
Источник
Как «приручить» МТС-модем 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).
Способ второй: Доработка модема в среде 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’ы (в виде цифр) значит коннект есть. Открывайте браузер и проверяйте.
Чтобы прервать соединение, нужно обязательно нажать комбинацию клавиш CTRL+C. Если просто закрыть окно терминала, то соединение будет продолжать работать, и чтобы его разорвать придется убивать процесс командой kill.
Единственный недостаток программы wvdial — невозможность следить за скоростью и объемом трафика. Но для этого существуют другие программы, описывать которые здесь не будем.
KPPP — программа дозвона для рабочего стола KDE
В Интернете множество руководств по ее применению, поэтому я не стану особенно распространяться. Скажу лишь, что упорство обязательно приведет к успеху. Нужно разбираться, почему программа не работает, проверять права доступа всех сопутствующих файлов и успех обязательно придет. Все настройки такие же, как я привел в файле wvdialconf. Иногда на настройку кррр уходит несколько дней. Но чаще, к счастью, она начинает работать за 10 минут.
GNOME PPP — программа дозвона для рабочего стола GNOME
Надеюсь, что вы уже «довели до ума» свой модем и подсоединились к Паутине. Счастливого серфинга!
Источник
Как и чем вводить АТ команды в модем
AT команда служит для управления некоторыми функциями модема. Команды можно вводить специальными программами, это намного проще чем встроенным в Windows XP hyperterminal. Для этого можно использовать программы: My Huawei Terminal или DC-Unlocker. Перед использованием данных программ нужно закрыть все другие программы которые могут использовать модем. Для модемов Huawei нужно подключаться на COM порт «3G PC UI Interface«, для модемов ZTE MF на COM порт «ZTE Proprietary USB Modem«. Как пользоваться смотрим картинки, всё достаточно просто. Если команд несколько, сначала вводим одну — жмём Enter, потом следующую и опять жмём Enter.
DC-Unlocker client первая в Мире программа которая начала специализироваться на разблокировке беспроводных 2G\3G\4G модемов форм-фактора USB\PCMCIA. Со временем модельный ряд начал расширятся мобильными телефонами, смартфонами, WiFi роутерами .
Качаем программу DC-Unlocker client и устанавливаем ее. После чего запускаем.
1. Далее меняем язык на русский. Нажимаем Options и выбираем Russian
2. Выбираем производителя модема или роутера в нашем случаи это Huawei. Нажимаем на Лупу как показано на картинке и пойдет чтение информации. Внимание! родная программа от модема должна быть закрыта). После прочтения информации вы увидите Статус SIM блокировки — Блокировано
3. Далее нам необходимо вести команду AT^CARDLOCK=»NCK Code», где NCK Code — это код разблокировки который вы приобрели у нас. Например код 12860791 тогда наша команда будет иметь такой вид AT^CARDLOCK=»12860791″. Вставляем команду AT^CARDLOCK=»12860791″ внизу прочитанной информации и нажимаем кнопку ENTER клавиатуре.
4. После нажатия на ENTER произойдет ввод кода в наше устройство и выйдет сообщение OK
5. Нажимаем еще раз на Лупу, чтобы прочитать заново информацию. И вы увидим, где Статус SIM блокировки — надпись Разблокирован
Вот и все. Наше устройство успешно разблокировано.
AT^CARDLOCK=»NCK Code» – ввод кода снятия блокировки (8-значное число). NCK Code — это код разблокировки. Пример команды AT^CARDLOCK=»12345678″
Терминал — программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.
Huawei Terminal — программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.
Запускаем My Huawei Terminal. В окне нужно выбрать HUAWEI Mobile Connect — 3G PC UI Interface Нажимаем Подключить (Connect)
Для уверенности, что вы действительно подключились, наберите команду AT и нажмите отправить: Если в ответ от модема OK. Значит вы все сделали правильно и все готово для работы с модемом.
AT^CARDLOCK=»NCK Code», где NCK Code — это код разблокировки который вы приобрели у нас. Например код 43963141 тогда наша команда будет иметь такой вид AT^CARDLOCK=»43963141″. Вставляем команду AT^CARDLOCK=»43963141″ и нажимаем кнопку ENTER клавиатуре.
Так же в этой программе можно посмотреть другие параметры модема.
Скачиваем программу Huawei Modem Tool v3.3, вставляем модем БЕЗ СИМ карты — если запуститься программа модема то закрываем, запускаем huawei modem tool и ждём пока определиться модем, вводим код разблокировки и нажимаем Send Unlock code. После этого модем разблокируется.
Смотрим картинку там всё подробно нарисовано.
Внимание: После ввода команды, во всех трёх программах должен быть ответ ОК. Это значит что команда была принята.
Список доступных at команды модема Huawei и ZTE MF смотрим здесь: AT команды для модемов Huawei и для ZTE MF
Источник