ZTE MF 823 (Megafon M100-3) 4G Modem (Русский)
Подготовка
Скорее всего пригодится usb_modeswitch; установите его.
Определение устройства
Проверьте вывод lsusb. Когда устройство переключено в 1405 product code, должно получиться:
$ Bus 002 Device 018: ID 19d2:1405 ZTE WCDMA Technologies MSM
В России модем поставляется Мегафоном (модель М100-3, без веб-интерфеса, устанавливается дополнительный софт) и Билайном (имеется веб-интерфейс).
Возможные режимы модема:
- 1225
- Режим "по умолчанию". Доступен USB Mass Storage Device с CD-ROM и кардридером. Соответствует AT+ZCDRUN=9+AT+ZCDRUN=F
- 1403
- Рабочий режим. Доступны адаптер RNDIS и Mass Storage Device. Не рекомендуемый модуль ядра rndis_host может обрабатывать такой интерфейс. Соответствует AT+ZCDRUN=8+AT+ZCDRUN=F
- 1405
- Рабочий режим с интерфейсом USB communications device class и кардридером. CDC ethernet mode — это то, что нам необходимо. Требуется модуль ядра cdc_ether. Этот режим будет тем режимом, в который
usb_modeswitch
переключит устройство.
- 0016
- Диагностический режим (download mode). Режим, в котором доступны диагностический порт и две команды (порт аналогового модема и пользовательский интерфейс ПК устройств Huawei). Соответствует AT+ZCDRUN=E
- 0076
- "Реальный" download mode. Включает стандарт для устройств, использующих методы QC.
Если модем не определяется как 19d2:1405 (или 1403), обратитесь к этой статье: USB 3G Modem#Mode switching
Соединение
Если модем определяется как интерфейс Ethernet (проводное соединение), то с ним должна нормально работать обычная настройка сети. Лампочка на модеме (синяя при 2G/3G режиме или зеленая при 4G) не мигает. Для подключения к сети необходимо вставить ссылку (CGI команду) в браузер.
http://192.168.0.1/goform/goform_set_cmd_process?goformId=CONNECT_NETWORK
Чтобы не вводить эту команду каждый раз после выключения модема, переключите модем в режим "автодозвона"
Если вы подключаетесь из командной оболочки, нужно указать HTTP-заголовок Referer:
curl --header "Referer: http://192.168.0.1/index.html" http://192.168.0.1/goform/goform_set_cmd_process?goformId=CONNECT_NETWORK
Без него вы в ответ получите {"result":"faulure"}
Команды
CGI команда для выбора режимов 2G/3G/4G:
http://192.168.0.1/goform/goform_set_cmd_process?goformId=SET_BEARER_PREFERENCE&BearerPreference=
Добавьте необходимый параметр после знака "=" (чувствительны к регистру)
NETWORK_auto (автоматический режим) WCDMA_preferred (предпочитать 3G) GSM_preferred (предпочитать 2G) Only_GSM (только 2G) Only_WCDMA (только 3G) Only_LTE (только 4G) WCDMA_AND_GSM (3G+2G) WCDMA_AND_LTE (3G+4G) GSM_AND_LTE (2G+4G)
После выбора режима необходимо вновь набрать команду NETWORK CONNECT для подключения к сети.
Для перевода модема в диагностический режим (ВНИМАНИЕ! Прием дальнейших CGI команд будет невозможен, соединение прервано!), используйте следующую ссылку:
http://192.168.0.1/goform/goform_process?goformId=MODE_SWITCH&switchCmd=FACTORY
Может потребоваться выполнить следующую команду (как root), чтобы получить доступ к последовательному порту AT-команд:
# echo 0x19d2 0x16 > /sys/module/usbserial/drivers/usb-serial:generic/new_id
Порт должен появиться как /dev/ttyUSBn
, например /dev/ttyUSB1
. С ним вы можете использовать свою любимую программу эмуляции последовательного терминала для управления устройством. Приведённые ниже команды могут быть особенно полезны (в примерах используется modem-cmd):
# modem-cmd /dev/ttyUSB1 AT+ZCDRUN=8 # установить режим 1403 (RNDIS) # modem-cmd /dev/ttyUSB1 AT+ZCDRUN=9 # установить режим 1225 (по умолчанию) # modem-cmd /dev/ttyUSB1 AT+ZCDRUN=F # выйти из диагностического режима и перейти в выбранный режим (RNDIS или по умолчанию)
Telnet соединение
К модему можно подключиться по telnet
telnet 192.168.0.1 login: root password: zte9x15
Как видите, внутри модема установлен Линукс. Вы можете установить дополнительные программы для ARM-машин (например mc, nano...) или изменить что-то в веб-интерфейсе. Исследуйте модем с осторожностью!
Возможное использование с кодом 1403
По какой-то причине это устройство может зависнуть в режиме 0016 и не переключиться в любой другой режим. Может не удасться переключить режимы с помощью usb_modeswitch
или отправить AT-команды на /dev/ttyUSB0. Получалось сменить режим с 0016 на 1403 с помощью Mac OSX, после чего модем начинал работать в Linux.
В режиме 0016 OSX предоставит следующие интерфейсы:
/dev/tty.ZTEUSBATPort_ /dev/tty.ZTEUSBModem_ /dev/tty.ZTEUSBDIAGPort_
Переключиться в режим 1403 можно отправкой AT-команд:
screen /dev/tty.ZTEUSBModem_ 9600 >>ATI Manufacturer: ZTE CORPORATION Model: MF823 Revision: MF823_T03 IMEI: 866948013728723 +GCAP: +CGSM >>AT+CREG? +CREG: 0,1 OK >>AT+COPS? +COPS: 0,0,"Telstra Mobile",7 OK >>AT+ZCDRUN=8+AT+ZCDRUN=F exit download mode result(0:FAIL 1:SUCCESS):1 OK
Теперь устройство должно работать как Ethernet-интерфейс независимо от того, к какой системе вы его подключаете.
Смотрите также
whirlpool.net.au - Linux & Serial Diags
Gsmforum.ru - Обсуждение ZTE MF823, в №7 посте инструкция по разлочке