Huawei modem terminal linux

achmel / huawei-3372-ru.md

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

AT^CIMEI="###############" AT^NVWREX=0,0,16,08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AT^INFORBU AT^RESET 

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

#include #include int main(int argc, const char *argv[]) < int i; const size_t imei_length = 15; if (argc == 2 && strlen(argv[1]) == imei_length) < for (i = 0; i  imei_length; i++) < printf("0%i ", argv[1][i] - '0'); > printf("00"); return 0; > else < printf("Usage: imei_converter imei\n"); return -1; > >
^RSSI:26 ^HCSQ:"LTE",61,51,146,22 ^RSSI:24 ^HCSQ:"LTE",56,51,151,22 +CREG: 1,"#####","#########" 

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

  1. Самая полезная команда — AT^LOCINFO? , она выдает сразу MCC, MCN, LAC, CID. C этими данными можно сразу смело идти на https://xinit.ru/bs/ и получать данные базовой станции.
AT^LOCINFO? ^LOCINFO:25001,0x#####,0xA,0x####### 0x#####h == #####d 0x#######h == #######d curl --request GET 'https://xinit.ru/api/bs/250/01/#####/##########' \ -H 'referer: https://xinit.ru/bs/' \ -H 'accept-language: en-US,en;q=0.9' ,"yandex":,"google":null,"mylnikov":,"opencellid":null,"cell2gps":null> curl 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?outSR=4326&returnIntersection=true&location=30.00%2C60.00&f=json' 
  1. Но под виндой сидеть было грустно. После перепрошивки на маке/линуксе можно сделать telnet 192.168.8.1 и засылать AT-команды в /dev/appvcom1 либо просто слушать cat < /dev/appvcom1

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

echo -e "AT^LOCINFO?\r" > /dev/appvcom1 echo -e "at^reset\r" > /dev/appvcom1 

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

telnet 192.168.8.1 busybox sh cat < /dev/appvcom1 & cat | busybox tr "\n" "\r" >/dev/appvcom1 

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

telnet 192.168.8.1 busybox sh cat < /dev/appvcom1 telnet 192.168.8.1 busybox sh cat | busybox tr "\n" "\r" >/dev/appvcom1 

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

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 , такой типа роутер, с красивым веб-интерфейсом.

$ lsusb | grep Huawei Bus 001 Device 010: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard # Здесь 12d1 это идентификатор производителя а 1506 это режим сетевой карты. # Если не 1506, то надо переключить. sudo minicom -D /dev/ttyUSB0 AT^NVWREX=50502,0,128,8F 29 FF 8E A8 CA 34 89 78 73 18 BA 9E F5 9C 64 0B A4 DB 81 DC 03 45 6E 72 DA EC 6A 0C 7C 90 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8B 8C F4 B5 AF 0C F2 2C FE E0 F4 46 9C CF 47 95 36 71 1F 1C BF 05 7F 84 AB A9 F2 92 89 33 3C 12 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AT^DATALOCK="00000000" AT^CIMEI="#############" 

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 .

$ ./balong_flash -h Утилита предназначена для прошивки модемов на чипсете Balong V7 ./balong_flash [ключи] Допустимы следующие ключи: -p - последовательный порт для общения с загрузчиком (по умолчанию /dev/ttyUSB0) -n - режим мультифайловой прошивки из указанного каталога -g# - установка режима цифровой подписи (-gl - описание параметров) -m - вывести карту файла прошивки и завершить работу -e - разобрать файл прошивки на разделы без заголовков -s - разобрать файл прошивки на разделы с заголовками -k - не перезагружать модем по окончании прошивки -r - принудительно перезагрузить модем без прошивки разделов -f - прошить даже при наличии ошибок CRC в исходном файле 

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

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

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

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

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

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

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

at^nvrdex=8268,0,12 ^NVRD: 8268,0,12,01 00 00 00 01 00 00 00 0A 00 00 00 

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

Данный модем обладает уникальным свойством — он умеет делать поиск всех окружающих базовых станций (БС). Причем не только БС оператора вставленной в него симкарты, а вообще все БС всех операторов, сигнал от которых достигает антенны модема. Для каждой найденной БС выводится ее 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-станций.

at^netscan=20,-108,1 ^NETSCAN: 10638. 1e7e,250,02,0,-78,8b77,400000 ^NETSCAN: 10687. 1e7e,250,02,0,-79,d5c8,400000 ^NETSCAN: 10662. 1e7e,250,02,0,-82,8ade,400000 ^NETSCAN: 10587. 4cf8,250,20,0,-105,d4fc,400000 ^NETSCAN: 10563. 4cf8,250,20,0,-106,d4f9,400000 

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

^NETSCAN: 10638. 1e7e,250,02,0,-78,8b77,400000 1e7e - LAC станции 250 - MCC (Россия) 02 - MNC (В данном случае - МТС). 0 - хотел бы я сам знать что это, из дизассемблированного кода я так и не понял смысла этого поля. -78 - уровень сигнала данной БС 8b77 - CID станции 400000 - диапазнон, в котором принимается сигнал БС (как в команде ^syscfgex). 

По результатам данного примера можно сделать вывод, что самый сильный сигнал в данной местности — у МТС, а антенну надо направлять на БС с CID=8b77 LAC=1e7e. Координату БС можно посмотреть на сайте xinit.ru.

  • AT+COPS — информация о текущем операторе Recieve: +COPS: (1,»MTS-RUS»,»MTS»,»25001″,0),(2,»MTS-RUS»,»MTS»,»25001″,2),,(0,1,2,3,4),(0,1,2)
  • AT^PLMN? — Query the connected network code (MNC/MCC).
  • AT^LOCINFO? — Query network location info.
  • AT^CREG?

Источник

Minicom — подключение к USB модему Huawei E1550 по /dev/ttyUSB*

Для коммуникации с USB 3G модемом есть несколько консольных и графических утилит:

  1. minicom — мне приглянулась больше остальных
  2. picocom
  3. cutecom (графическая программа для работы с терминалами).

Установка minicom

sudo apt install minicom -y
Примечание

Рекомендуют также устанавливать следующие пакеты:

sudo apt install libusb++-0.1-4v5 libusb++-dev

Подключение к модему

Примечание

Обычно USB модемы предоставляют 3 ttyUSB* интерфейса:

  1. /dev/ttyUSB0 — интернет/данные
  2. /dev/ttyUSB1
  3. /dev/ttyUSB2 — командный интерфейс/устройство

На модеме Huawei E1550 ответ на USSD запросы всегда приходит на интерфейс /dev/ttyUSB2! Даже отправляя USSD запросы в /dev/ttyUSB0 все равно слушайте 2 порт.

minicom

sudo minicom -D /dev/ttyUSB2 -b 9600

Подключение в режиме настройки:

sudo minicom -D /dev/ttyUSB2 -s
  1. Переходим в «Настройка последовательного порта«, далее «А — Последовательный порт» и указываем /dev/ttyUSB0 или /dev/ttyUSB2.. Enter.
  2. Выбираем «Сохранить настройки как dfl«.
  3. Выход.

И мы подключимся к модему с выбранными настройками.

Примечание

Для выхода из терминала minicom (отключения от устройства) используются комбинации клавиш Ctrl + A — X (без сохранения) или Ctrl + A — Q (с сохранением).

Выполнение набора команд и вывод в файл:

sudo minicom -D /dev/ttyUSB2 --capturefile=/path/minicom.log --script=/path/minicom-script.txt 

Содержимое файла minicom-script.txt (не знаю как завершить процесс после выполнения AT команды):

picocom

Подключаемся к устройству /dev/ttyUSB2:

Подключаемся к устройству /dev/ttyUSB2 с отображением команд в терминал:

sudo picocom --echo -b 38400 /dev/ttyUSB2

Конфигурация

Использование /dev/tty* без sudo

Для использования /dev/tty* устройств без прав супер-юзера (sudo) необходимо добавить пользователя в группу dialout:

sudo apt remove modemmanager sudo usermod -a -G dialout $USER
Внимание!

Если не отображается результат выполняемых AT команд и USSD запросов — проверьте, не перенаправляется ли вывод на другое ttyUSB* устройство или в файл. Попробуйте сменить устройство с ttyUSB0 на ttyUSB2.

Выполнение AT команд и USSD запросов

Показать информацию о модеме:

Manufacturer: huawei Model: E1550 Revision: 11.608.13.02.00 IMEI: 353443043787139 +GCAP: +CGSM,+FCLASS,+DS

AT команды для получения оператора связи (carrier):

Выполнение USSD запроса для просмотра баланса:

#tty, #terminal, #minicom, #modem, #at, #ussd, #serial

Источник

Читайте также:  Linux file permissions all users
Оцените статью
Adblock
detector