Huawei E3372

GSM-свисток, продающийся на терриотрии России под брендом МегаФон и МТС, частенько залочен на одноименную корпорацию добра.

Настройка

Поскольку все эти модемы сделаны по принципу сел и поехал - в нём для Linux всё неудобно и криво. Как только новый модем вставляется - он сразу появляется в системе как CD-ROM и отсутствует какой-либо доступ к управлению самим модемом.

Для переключения в режим только модем нам понадибся usb_modeswitch. В разных ОС пакет называется по разному, но название приложения вроде одно:

# emerge -pv usb_modeswitch

После чего добавляем правило в udev, которое само будет при подключении переводить модем в нужный режим (а попутно ещё и удобные права доступа подкручивать)

/etc/udev/rules.d/huawei-dongle.rules
    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14fe", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 14fe -M '55534243123456780000000000000011062000000100000000000000000000'"
    KERNEL=="ttyUSB*", MODE="0666"

После этого можно подключаться на /dev/ttyUSB0 (иногда /dev/ttyUSB1, а иногда они оба присутствуют, надо выбрать тот, который отзовётся на простые команды - ATI, например) как к обычному последовательному порту (minicom, screen, etc)

Разлочивание

Процесс не простой, а иногда и излишний, поскольку можно окирпичить свою железку. Для начала проверяем, в каком состоянии наш модем. Подключаемся к последовательному порту и вводим

AT^CARDLOCK?

Ответ выглядит следующим образом:

<состояние>,<количество попыток>,0

Соответственно если состояние - 2, значит всё хорошо и модем разлочен, если 1 - то переходим дальше. Количество попыток же - сколько раз можно ввести неправильный код разблокировки.

Дальше вводим команду ATI (информация об устройстве) и получаем IMEI, вместе с которым топаем в гугл и находим Huawei Unlock Code Calculator, где вводим IMEI и получаем пачку разных кодов для разблокировки. Дальше в терминале вводим:

AT^CARDLOCK="<полученный код>"

Где <полученный код> чаще все v201 code, но так, как у нас 10 попыток - можно попробовать все. (Я надеюсь никто не догадается вводить треугольные скобки в команду - цифры в кавычках) Если всё прошло успешно - получаем в результатек команды AT^CARDLOCK? заветную двоечку. (или кирпич вместо модема, но это зависит от прокаченности удачи и прямоты рук)

AT команды

Вообще их великое множество, возможно я буду дополнять список по мере использования

Команда Описание
ATHСбросить все звонки и завершить все операции перед тем, как вернуть управление в консоль
ATIИнформация об устройстве
ATZСброс к настройкам по умолчанию
AT+CMGF=Формат SMS (0 - PDU, 1 - текст)
AT+CMGF?Текущий формат
AT+CMGF=?Доступные форматы
AT+COPS=[<mode>[,<format>[,<oper>]]]Выбор оператора:
mode: 0 - автоматически (oper игнорируется)
1 - вручную (oper должен быть указан)
2 - отключиться от сети
format: 0 - длинный формат числобуквенный (MegaFon Rus, например)
1 - короткий формат числобуквенный (MegaFon)
2 - числовой формат (25700)
oper: зависит от формата
пример: AT+COPS=1,1,“MegaFon”
AT+COPS?Текущая регистрация в сети
Вернёт в формате <mode>,<format>,<oper>
AT+COPS=?Список доступных для регистрации сетей
AT+CREG=<n>0 - отключить вывод статуса при изменении статуса регистрации
1 - включить вывод статуса при изменении статуса регистрации
2 - включить вывод статуса при изменении соты сети или регистрации
AT+CREG?Текущее состояние регистрации
Вернёт в формате <n>,<status>,<cell>,<network>
n - текущее положение ручки вывода статуса регистрации в сети
status - текущий статус регистрации:
0 - не зарегистрирован и поиск сети не производится
1 - зарегистрирован в домашней сети
2 - не зарегистрирован, но производится поиск сети
3 - регистрация запрещена
4 - неизвестно
5 - зарегистрирован в роуминге