Mobile broadband modem – ArchWiki – Huawei Devices

huawei eh proshivka Прошивки

At команды для модемов huawei

at commands
AT команды (набор команд Hayes) — набор команд, разработанных в 1977 году компанией Hayes для собственной разработки, модема «Smartmodem 300 baud». Набор команд состоит из серий коротких текстовых строк, которые объединяют вместе, чтобы сформировать полные команды операций, таких как набор номера, начала соединения или изменения параметров подключения.
Для того, чтобы модем распознал at команды, они должны быть записаны в специфической форме. Каждая команда всегда начинается буквами AT или at (от англ. ATtention, за что и получили своё название), дополненных одной или больше командой и завершаемой в конце нажатием клавиши Enter . Команды воспринимаются модемом только тогда, когда он находится в “командном режиме” или offline.
At commands huawei обычно отправляются модему посредством коммуникационного программного обеспечения, но также могут быть введены пользователем вручную, с компьютерной клавиатуры. Смотрим как и чем вводить АТ команды в модем. At команды huawei представлены на нашем сайте ниже. Huawei at команды (huawei at commands) очень нужные и полезные вещи для расшаривания вашего устройства.

Рассмотрим наиболее часто используемые at команды при работе с модемом huawei
ATI – вывод информации о модеме
AT CFUN=1 – перезагрузка модема, очень полезная команда не требует “передергивать” модем. После перезагрузки модем перерегистрируется в сети оператора.
AT CGMI – информация о производителе модема (Recieve: huawei)
AT CGMR – информация о версии прошивки (Recieve: 11.608.12.04.21)
AT CIMI – информация об IMSI номер SIM карты (Recieve: 250015800471114)
AT CGSN – информация о IMEI модема (Recieve: 353142033840706)
AT^HWVER – информация о версии железа модема (Recieve: ^HWVER:”CD6ATCPU”)
AT CSQ – посмотреть уровень радиосигнала
AT^CMDL – получить список всех комманд
AT CGMM или AT GMM – запросить название модели
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^U2DIAG? – текущий режим.
AT^GETPORTMODE – список всех устройств в модеме
AT^VERSION? – информация о версии прошивки модема
AT CLAC в ответе будет список поддерживаемых команд

Включение голосовых функций модема:
AT^CVOICE=? – проверка состояния голосовых функций модема (0 – значит включено)
AT^CVOICE=0 – включение голосовых функций модема

Включение / отключение режимов 2G и 3G:
AT^SYSCFG=13,1,3fffffff,0,0 – режим только 2G
AT^SYSCFG=2,1,3fffffff,0,0 – режим предпочтительно 2G
AT^SYSCFG=14,2,3fffffff,0,1 – режим только 3G
AT^SYSCFG=2,2,3fffffff,0,1 – режим предпочтительно 3G
AT^SYSCFG=2,2,3fffff ff,0,2 – режим включение 2G и 3G

Включение / отключение режимов WCDMA, HSDPA, HSPA , HSPA:
AT^HSDPA=1 – режим HSDPA включен
AT^HSDPA=0 – режим HSDPA выключен
AT^HSUPA=1 – режим HSUPA включен
AT^HSUPA=0 – режим HSUPA выключен
AT^HSPA=0 – режим WCDMA
AT^HSPA=1 – режим HSDPA
AT^HSPA=2 – режим HSPA
AT^HSPA=3 – режим HSPA
AT^SYSCFG=13,1,3FFFFFFF,2,4 – режим только GPRS/EDGE
AT^SYSCFG=14,2,3FFFFFFF,2,4 – режим только 3G/WCDMA
AT^SYSCFG=2,1,3FFFFFFF,2,4 – режим предпочтительно GPRS/EDGE
AT^SYSCFG=2,2,3FFFFFFF,2,4 – режим предпочтительно 3G/WCDMA

Команды необходимые для разблокировки модема (разлочка модема)
AT^CARDLOCK=”NCK Code” – ввод кода снятия блокировки (8-значное число)
AT^CARDUNLOCK=”MD5 NCK Code” – сброс попыток ввода кода NCK кода разблокировки до 10 раз
AT^CARDLOCK? – проверка состояния блокировки модема и количества попыток ввода кода разблокировки:
(ответ модема: CARDLOCK: A,B,0 , если A=2 модем разблокирован, A=1 модем заблокирован – SimLock, если A=3 здесь два варианта либо вы израсходовали все 10 попыток ввести код, либо у вас в модеме кастомизированная прошивка, B – количество оставшихся попыток ввода кода разблокировки (по умолчанию 10 раз))

Изменение режима модема
AT^U2DIAG=Команда – для изменения режим модема (Модем,CD ROM, Флешка, PC UI, NDIS, Смарткарта).

AT команды для Huawei E171, E352, E353, E367, E398 и др.
AT^SETPORT=”A1,A2,1,2,3,7,A1,A2″ (Установить конфигурацию по умолчанию)
AT^SETPORT=”A1,A2;1,16,3,2,A1,A2″ – Установить конфигурацию по умолчанию для модема E171 (новая ревизия)
AT^SETPORT=”A1,A2,1,2,3,7″ (девайс в режиме “модем сетевая карта”)
AT^SETPORT=”A1,A2;1,2,3,A2″ (девайс в режиме “модем Card Reader”)
AT^SETPORT=”A1,A2;1,2,3″ (девайс в режиме “только модем”)
AT^SETPORT=”A1,2,7″ (девайс в режиме “сетевая карта CD-ROM”)
AT^SETPORT=”A1,A2,2,7″ (девайс в режиме “сетевая карта”) – для Windows 7
AT^SETPORT=”A1;1,2″ (девайс в режиме “модем пользовательский интерфейс”)
AT^SETPORT? (Текущая конфигурация модема)
AT^GETPORTMODE (Отображение текущего активного режима)
AT^SETPORT=”A1,A2,1,2,3,7,A1,A2,4,5,6,A,B,D,E” (Сброс настроек по умолчанию)

AT команды для Huawei E369
AT^SETPORT? – вывод на экран текущей конфигурации.
AT^GETPORTMODE – вывод на экран активного режима в настоящее время.
AT^SETPORT = “A1, A2, 1,2,3,7, A1, A2” – установка конфигурации по умолчанию.
AT^SETPORT = “A1, A2, 1,2,3,7” – устройство в режиме Modem Network Card.
AT^SETPORT=”A1,A2;1,2,3,A2″ – устройство в режиме Modem Card Reader.
AT^SETPORT = “A1, A2, 2,7” – устройство в режиме Network Card.
AT^SETPORT=”A1,A2;1,2,3″ – устройство в режиме Modem (работает быстрее и стабильнее).
AT^SETPORT = “A1, 2,7” – Network Card CD-ROM.
AT^SETPORT = “A1, A2, 1,2,3,7, A1, A2, 4,5,6, A, B, D, E” – сброс настроек по умолчанию.

Настройки режимов сети по умолчанию для Huawei E352
at^hspa?
^HSPA: 2
AT^SETPORT?
A1,A2;1,2,3,7,A1,A2
AT^SYSCFG?
^SYSCFG:2,2,3FFFFFFF,1,2

Настройки режимов сети по умолчанию для Huawei E352b (21.158.23.00.209)
AT^SETPORT?
A1,A2;1,16,3,2,A1,A2

AT команды для Huawei E1750, Huawei E1550
АТ команды переключения режимов huawei E1750
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем CD-ROM)
AT^U2DIAG=6 (девайс в режиме только сетевая карта)
AT^U2DIAG=255 для E1550 (девайс в режиме модем CD-ROM Card Reader)
AT^U2DIAG=268 для E1750 (девайс в режиме модем CD-ROM Card Reader)
AT^U2DIAG=276 для E1750 (девайс в режиме сетевой карты CD-ROM Card Reader)
AT^U2DIAG=256 (девайс в режиме модем Card Reader, можно использовать как обычную флешку,
отказавшись от установки драйверов модема)
АТ команды переключения режимов сети huawei E1750
AT^SYSCFG=14,2,3fffffff,1,2 (Только 3G)
AT^SYSCFG=13,1,3fffffff,1,2 (Только GSM)
AT^SYSCFG=2,2,3fffffff,1,2 (Приоритет 3G)
AT^SYSCFG=2,2,3fffffff,0,2 (включение 2G,3G)

AT команды переключения режимов сети для модема Huawei E1820 (E182E)
AT^SYSCFG=13,2,3fffffff,1,2 – только GSM
AT^SYSCFG=2,1,3fffffff,1,2 – преимущественно GSM
AT^SYSCFG=14,2,3fffffff,1,2 – только WCDMA
AT^SYSCFG=2,2,3fffffff,1,2 – преимущественно WCDMA

AT команды для Huawei E3131
AT^SETPORT=”A1,A2;1,16,3,2,A1,A2″ – (Установить конфигурацию по умолчанию)
AT^SETPORT=”A1,A2;1,2,3,16,A1,A2″ – (режим для работы модема с Android 4.0 (иногда работает))
AT^SETPORT=”A1,A2;1,16,3,2″ – (девайс в режиме “модем сетевая карта”)
AT^SETPORT=”A1,A2;1,3,2,A2″ – (девайс в режиме “модем Card Reader”)
AT^SETPORT=”A1,A2;1,3,2″ – (девайс в режиме “только модем”)
AT^SETPORT=”FF;1,2″ (девайс в режиме “модем пользовательский интерфейс”)
AT^SETPORT=”A1,A2;2,16″ – (девайс в режиме “сетевая карта”)
AT^SETPORT=”A1,A2;2,16,A1″ – (девайс в режиме “сетевая карта CD-ROM”)

AT команды для Huawei E3131 Hilink
http://192.168.1.1/html/switchProjectMode.html
AT^U2DIAG=0 Перевод модема из режима Hilink в режим com портов
AT^U2DIAG=119 Возврат в исходный режим

AT команды для Huawei E303 HiLink
http://192.168.1.1/html/switchProjectMode.html
AT^U2DIAG=374 Перевод модема из режима Hilink в режим com портов
AT^U2DIAG=375 Возврат в исходный режим

AT команды для Huawei E3272
AT^SETPORT=”A1,A2;62,61,76,A1,A2″ – Установка по умолчанию для МТС 824F.
AT^SETPORT=”A1,A2;10,12,16,A1,A2″ – Установка по умолчанию для Мегафон М100-4.
AT^SETPORT=”A1,A2;10,12,16,A2″ – Конфигурация по умолчанию, отключить CD
AT^SETPORT=”A1,A2;10,12,16″ – Конфигурация по умолчанию, отключить CD SD
AT^SETPORT=”A1,A2;10,12″ – Конфигурация по умолчанию, отключить NDIS CD SD
AT^SETPORT=”A1;10,12,13,14,16,A1,A2″ – Включает: все COM порты NDIS CD SD
AT^SETPORT=”A1;10,12,13,14″ – Включает: все COM порты, отключает: NDIS CD SD
AT^SETPORT=”A1;10,12,13,14,16″ – Включает: все COM порты NDIS, отключает: CD SD
AT^SETPORT=”A1;10,12,13,14,A2″ – Включает: все COM порты SD, отключает: NDIS CD

AT команды для Huawei E3372
AT^SETPORT=”A1,A2;A1,A2″ – Установка по умолчанию для МТС 827F.
AT^SYSCFG=”2,2,3FFFFFFF,1,2″ – Установка по умолчанию для МТС 827F.

AT команды для Huawei E3276
AT^SETPORT=”A1;10,12,13,14,16,A1,A2″ – Включает все COM порты.
AT^SETPORT=”A1,A2;12,16,A1,A2″ – Установка по умолчанию.
AT^SETPORT=”A1;10,12” – режим только модем
AT^SYSCFGEX? – значение по умолчанию
^SYSCFGEX:”00″,3FFFFFFF,1,2,800C5
AT^SYSCFGEX=?
^SYSCFGEX: (“00″,”01″,”02″,”03″),((2000000400380,”GSM900/GSM1800/WCDMA900/WCDMA2100″),(2a80000,”GSM850/GSM1900/AWS/WCDMA1900″),(3fffffff,”All bands”)),(0-2),(0-4),((800c5,”LTE_B1/LTE_B3/LTE_B7/LTE_B8/LTE_B20″),(7fffffffffffffff,”All bands”))
AT^FHVER – показывает информацию о версии прошивки и версии железа (^FHVER:”E3276s-210 21.260.05.00.143,CH2E3276SM Ver.B”)

AT команды для Huawei E3531
AT^SETPORT=”A1,A2;1,16,3,2,A1,A2″ – Установка по умолчанию для МТС 423S.
AT^FHVER – – показывает информацию о версии прошивки и версии железа (^FHVER:”E3531s-1EA 21.318.15.00.143,CH1E3531SM Ver.A”)

AT команды для преключения режимов в модемах huawei с LTE (E392, E398)
Если для USB-модема вы хотите включить режим только LTE, отключив все остальные, необходимо воспользоваться AT командой:
AT^SYSCFGEX=”03″,3fffffff,2,4,7fffffffffffffff,,
В указанной команде первое значение расшифровывается так:
00 – Автоматический режим, установлен по умолчанию (приоритеты в порядке очереди: 4G > 3G > 2G)
01 – GSM GPRS(2G)
02 – WCDMA(3G)
03[/b] – LTE(4G)
[b]99
– Оставить текущие настройки без изменений.

Вы можете также выбрать порядок их приоритета, в порядке убывания, например:
AT^SYSCFGEX=”0302″,3fffffff,2,4,7fffffffffffffff,,
В этом случае модем будет пытаться подключиться сначала к сети LTE и потом к сети 3G, кроме работы в сетях 2G.
или такой вариант:
AT^SYSCFGEX=”030201″,3fffffff,2,4,7fffffffffffffff,,
это равносильно
AT^SYSCFGEX=”00″,3fffffff,2,4,7fffffffffffffff,,
Соответственно автоматический режим, установлен по умолчанию (приоритеты в порядке очереди: 4G > 3G > 2G)

§

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

DC-Unlocker client первая в Мире программа которая начала специализироваться на разблокировке беспроводных 2G3G4G модемов форм-фактора USBPCMCIA. Со временем модельный ряд начал расширятся мобильными телефонами, смартфонами, WiFi роутерами .
AT^CARDLOCK=”NCK Code” – ввод кода снятия блокировки (8-значное число). NCK Code – это код разблокировки. Пример команды AT^CARDLOCK=”12345678″

СкачатьВерсия программы 1.00.1336
Новые версииздесь

Терминал

Терминал — программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.

Скачать: Терминал

My Huawei Terminal (Хуавей модем терминал)

Huawei Terminal — программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.

Скачать: My Huawei Terminal

PuTTY

Скачать: PuTTY

MMD X Mini Mobile Data

Так же в этой программе можно посмотреть другие параметры модема.

Скачать: MMD X Mini Mobile Data

Ввод NCK кода разблокировки если модем не запрашивает.

Скачиваем программу Huawei Modem Tool v3.3, вставляем модем БЕЗ СИМ карты – если запуститься программа модема то закрываем, запускаем huawei modem tool и ждём пока определиться модем, вводим код разблокировки и нажимаем Send Unlock code. После этого модем разблокируется.

Смотрим картинку там всё подробно нарисовано.

Скачать: Huawei Modem Tool v3.3

Внимание: После ввода команды, во всех трёх программах должен быть ответ ОК. Это значит что команда была принята.

Huawei data card unlocker v1.1

Программа предназначена для разблокировки модемов Huawei E220, E62X, E630, E870, E169G, E27X, E618, E630

Скачать: Huawei data card unlocker v1.1

Список доступных at команды модема Huawei и ZTE MF смотрим здесь: AT команды для модемов Huawei и для ZTE MF

Mobile broadband modem – archwiki – huawei devices

Настройка 3G-модема в Linux •Продолжение. Начало здесь.

Для тех, кто недавно присоединился к радиоканалу «Боян-FM» читателям моей уютненькой™, напомню, что затеял всё это ради того, чтобы построить достаточно скоростной IPSec-канал через «Йоту». А для этого, в свою очередь, необходимо получить прямой «честный» IP с SIM-карты на каком-либо сетевом интерфейсе, притом минуя PPP.

Конкретно я использую модем iRZ TL21, построенный на базе модуля Sierra (он же AirPrime) MC7710, в составе которого находится чип Qualcomm MDM9200. Система — стабильный дистрибутив Debian (в данном случае Wheezy).

Сразу оговорюсь, что в какой-нибудь свежей Ubuntu данный модем заработает прям «из коробки»: его хорошо понимает NetworkManager. Но мы ж реальные пацаны, у нас реальный сервак, GUI на нём нетути. Да и подниматься линк должен сам по себе при старте системы. Поэтому пойти по простому пути не получится, придётся никакой механизма всё вручную.

Итак, суём модем в USB-порт, заправшиваем «lsusb» и видим…

Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 1199:68a2 Sierra Wireless, Inc. MC7710 Modem
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Ага, третья строчка — вот оно как раз самое. Выделенные жирным шрифтом цифирки нам потом ещё пригодятся. Ну что-ж, вроде как всё хорошо. Смотрим «ls /dev/ttyUSB*» и видим… а ничего мы не видим. Как говорится, «***в панама». Нету псевдотерминалов.

Иногда затык может заключаться в том, что некоторые модемы «тянут» за собой виртуальный CD-ROM, на котором типа лежат типа драйвера для этого модема. И пока не пнёшь этот модем правильной AT-командой, собственно в модем он не превратится. А будет и дальше себе с настойчивостью кретина прикидываться CD-приводом. Ну это лечится элементарной установкой пакета «usb-modeswitch»: «apt-get install usb-modeswitch«.

Ладно, установили. Но псевдотерминалы всё равно не появились. Чешем репу. И вспоминаем, что в Debian-е по умолчанию идёт довольно боянистый софт, и нужных драйверов «из коробки» нет. Чтобы не париться уж слишком сильно, можно тупо поставить свежее ядрышко из backports. На момент написания этого псто оно было версии 3.16:

Перезагрузились. Смотрим «modinfo qmi_wwan» и «modinfo sierra_net«. Если выделенные жирным циферки из выхлопа lsusb (см. выше) оказались в одном из двух списков, то всё пучком. Можем продолжать. Если же нет, увы. Идем искать драйвера к нашему «мопеду». Хорошо если найдём. А если не найдем — значит «упс». В моём случае всё ништяк:

Внезапно, и псевдотерминалы появились в большом количестве:

Дальше тыкаем каким-нибудь minicom-ом в каждый терминал по очереди («minicom -D /dev/ttyUSB0«, «minicom -D /dev/ttyUSB1» и т.п.) и смотрим который из них откликнется на какой нибудь «AT!GSTATUS?«, тот и есть нужный нам. Заодно проверим, что модем сцепился с сотовой сетью.

RSSI (dBm): -75 Tx Power: 0
RSRP (dBm): -103 TAC: 26BD (9917)
RSRQ (dB): -9 Cell ID: 0F30DB00 (254860032)
SINR (dB): 7.2

OK

Вроде работает. Тут наступает небольшая засада. В дальнейшем нам придётся из различных скриптов ссылаться на найденный псевдотерминал. Но никто не может гарантировать нам, что после очередной перезагрузки сервера имя устройства останется таким же. Поэтому придётся помучать udev для того чтобы создать символическую ссылку (symlink), дабы увековечить нашу бесценную находку. Для начала смотрим к каким атрибутам мы могли бы привязаться.

Копипаста ниже была взята с другой конфигурации оборудования, поэтому некоторые буквы-цифры там будут расходиться с моим примером. Самые внимательные, наверное, даже найдут где именно. Но общий смысл от этого не меняется. Текстовое поле можно растянуть, чтобы было удобнее читать.

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device ‘/devices/pci0000:00/0000:00:1d.7/usb4/4-5/4-5:1.3/ttyUSB3/tty/ttyUSB3’:
KERNEL==»ttyUSB3″
SUBSYSTEM==»tty»
DRIVER==»»

looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb4/4-5/4-5:1.3/ttyUSB3’:
KERNELS==»ttyUSB3″
SUBSYSTEMS==»usb-serial»
DRIVERS==»sierra»
ATTRS{port_number}==»0″

looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb4/4-5/4-5:1.3’:
KERNELS==»4-5:1.3″
SUBSYSTEMS==»usb»
DRIVERS==»qcserial»
ATTRS{bInterfaceClass}==»ff»
ATTRS{bInterfaceSubClass}==»ff»
ATTRS{bInterfaceProtocol}==»ff»
ATTRS{bNumEndpoints}==»03″
ATTRS{supports_autosuspend}==»1″
ATTRS{bAlternateSetting}==» 0″
ATTRS{bInterfaceNumber}==»03″

looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb4/4-5’:
KERNELS==»4-5″
SUBSYSTEMS==»usb»
DRIVERS==»usb»
ATTRS{bDeviceSubClass}==»00″
ATTRS{bDeviceProtocol}==»00″
ATTRS{devpath}==»5″
ATTRS{idVendor}==»1199″
ATTRS{speed}==»480″
ATTRS{bNumInterfaces}==» 6″
ATTRS{bConfigurationValue}==»1″
ATTRS{bMaxPacketSize0}==»64″
ATTRS{busnum}==»4″
ATTRS{devnum}==»3″
ATTRS{configuration}==»Sierra Configuration»
ATTRS{bMaxPower}==»0mA»
ATTRS{authorized}==»1″
ATTRS{bmAttributes}==»e0″
ATTRS{bNumConfigurations}==»1″
ATTRS{maxchild}==»0″
ATTRS{bcdDevice}==»0006″
ATTRS{avoid_reset_quirk}==»0″
ATTRS{quirks}==»0x0″
ATTRS{serial}==»358178041352404″
ATTRS{version}==» 2.00″
ATTRS{urbnum}==»895″
ATTRS{ltm_capable}==»no»
ATTRS{manufacturer}==»Sierra Wireless, Incorporated»
ATTRS{removable}==»unknown»
ATTRS{idProduct}==»68a3″
ATTRS{bDeviceClass}==»00″
ATTRS{product}==»MC7710″

looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb4’:
KERNELS==»usb4″
SUBSYSTEMS==»usb»
DRIVERS==»usb»
ATTRS{bDeviceSubClass}==»00″
ATTRS{bDeviceProtocol}==»00″
ATTRS{devpath}==»0″
ATTRS{idVendor}==»1d6b»
ATTRS{speed}==»480″
ATTRS{bNumInterfaces}==» 1″
ATTRS{bConfigurationValue}==»1″
ATTRS{bMaxPacketSize0}==»64″
ATTRS{authorized_default}==»1″
ATTRS{busnum}==»4″
ATTRS{devnum}==»1″
ATTRS{configuration}==»»
ATTRS{bMaxPower}==»0mA»
ATTRS{authorized}==»1″
ATTRS{bmAttributes}==»e0″
ATTRS{bNumConfigurations}==»1″
ATTRS{maxchild}==»8″
ATTRS{bcdDevice}==»0316″
ATTRS{avoid_reset_quirk}==»0″
ATTRS{quirks}==»0x0″
ATTRS{serial}==»0000:00:1d.7″
ATTRS{version}==» 2.00″
ATTRS{urbnum}==»61″
ATTRS{ltm_capable}==»no»
ATTRS{manufacturer}==»Linux 3.16.0-0.bpo.4-amd64 ehci_hcd»
ATTRS{removable}==»unknown»
ATTRS{idProduct}==»0002″
ATTRS{bDeviceClass}==»09″
ATTRS{product}==»EHCI Host Controller»

looking at parent device ‘/devices/pci0000:00/0000:00:1d.7’:
KERNELS==»0000:00:1d.7″
SUBSYSTEMS==»pci»
DRIVERS==»ehci-pci»
ATTRS{irq}==»16″
ATTRS{subsystem_vendor}==»0x103c»
ATTRS{broken_parity_status}==»0″
ATTRS{class}==»0x0c0320″
ATTRS{companion}==»»
ATTRS{driver_override}==»(null)»
ATTRS{consistent_dma_mask_bits}==»32″
ATTRS{dma_mask_bits}==»32″
ATTRS{local_cpus}==»00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f»
ATTRS{device}==»0x268c»
ATTRS{uframe_periodic_max}==»100″
ATTRS{enable}==»1″
ATTRS{msi_bus}==»»
ATTRS{local_cpulist}==»0-3″
ATTRS{vendor}==»0x8086″
ATTRS{subsystem_device}==»0x31fe»
ATTRS{numa_node}==»-1″
ATTRS{d3cold_allowed}==»1″

looking at parent device ‘/devices/pci0000:00’:
KERNELS==»pci0000:00″
SUBSYSTEMS==»»
DRIVERS==»»

Смотрим к каким атрибутам оборудования мы можем «привязаться». Однозначно придётся использовать критерий SUBSYSTEM==»tty» из первой секции, иначе получится ерунда. Но этого мало. Нужно что-то ещё. Большой соблазн взять ATTRS{product}==»MC7710″, чтобы однозначно идентифицировать устройство, но… тогда мы не сможем указать номер интерфейса. Ибо udev позволяет брать параметры устройства и только одного родителя. Поэтому придётся довольствоваться ATTRS{bInterfaceNumber}==»03″ и DRIVERS==»qcserial» из третьей секции. Итоговое правило будет выглядеть так:

Записываем его куда-нибудь в «/etc/udev/rules.d/80-LTE.rules», после чего заклинаем «udevadm control —reload-rules«, «udevadm trigger«. Первое нужно, чтобы udev перечитал список правил, второе — чтобы не топать ногами в серверную и не «перевтыкать» руками модем.

Итак, у нас появилась символическая ссылка «/dev/LTE-control». Что же с ней делать дальше? А дальше надо указать модему APN и логин-пароль, если есть. Но каждый раз мы это делать руками, понятно, не будем. Поэтому имеет смысл либо написать скрипт, либо запихнуть вызов соответствующих команд прямо в «/etc/network/interfaces». У меня получилось что-то типа того.

В директиве «pre-up» описываем действия до поднятия интерфейса: указать название APN, немного подождать, запустить пакетный драйвер QMI (или как он там правильно называется). То есть софтинку, которая разбирает-собирает поток данных и контрольный канал. С этого момента всё должно заработать. Если не взлетит, то вдумчиво раскуривать мануалы по модему, искать там диагностические AT-команды и пытаться разобраться что же пошло не так. После опускания интерфейса останавливаем QMI-драйвер.

Вроде бы на этом можно и успокоиться. Но я же ж извращенец, мне этого мало. Я хочу не просто подключить модем к серваку, а стать владычицей морскою «закинуть» его вовнутрь QEMU/KVM-виртуалки. В принципе, можно потанцевать с бубном и попробовать сделать это «прям щас». Но мой модем помимо режима QMI умеет ещё Direct IP, при котором не надо запускать никакого QMI-драйвера. Поэтому я пошёл дальше.

Сперва попросил уважаемого Настройка 3G-модема в Linux •rustedowl разобраться как именно переключить модем в другой режим. Сложность там в том, что у данного устройства есть два разных набора AT-команд. Один лоховский универсальный, который является стандартным для любых UMTS-устройств. А второй — пацанский расширенный, для того чтобы можно было трогать модем за яйца крутить всякие хитрые инженерные параметры. Спустя какое-то время поспели вот такие заклинания:

Где набор символов «A710» является… паролем. Дабы всякие ничтоже сумнящиеся не совали свои шаловливые ручки куда не просят. И что сцуко характерно, энтот пароль в официальной документации к хитропопому прибору напрочь отсутствует. Он был найден на бескрайних просторах интернета и подходит к большинству модемов от данного производителя (Sierra Wireless). Параметр второй команды — собственно режим. «68A2» — это QMI, «68A3» — Direct IP. Данные значения актуальны только для данной модели (MC7710). Но в любом случае будет очень кстати лишний раз свериться с документацией чтобы не напортачить, поскольку операция смены PID является весьма щекотливой и может привести к самым разным последствиям. Третья команда перезагружает мопед.

После перезагрузки супостат перекрашивается яки киллер из GTA2. Он теперь в lsusb виден как «Bus 004 Device 003: ID 1199:68a3 Sierra Wireless, Inc. MC8700 Modem». Обратите внимание, что поменялся ID оборудования и даже название модели. Раньше он представлялся как MC7710, а теперь внезапно стал MC8700. И драйвер теперь к нему подключился другой:

Также увеличилось количество псевдотерминалов ажно до пяти штук. И несколько изменился набор допустимых AT-команд.

Дальше всё «как обычно». Находим среди этой пачки «телетайпов» контрольный канал, фиксируем его udev-ом. Точно так же, как и в предыдущем случае, указываем точку доступа («AT CGDCONT=1,»IP»,»yota.ru»»). А вот процесс «дозвона» намного проще: «at!scact=1,1». Где последняя циферка является номером профиля, указанного в «CGDCONT». То есть, внутри модема можно создать несколько разных профилей с разными точками доступа и переключаться между ними. Теоретически это может пригодиться если нужно время от времени использовать то «честный» IP от оператора, то «серый», которые раздаются разными APN. Практически я не знаю случаев, когда такое может реально понадобиться.

Проверить, что «всё хорошо» можно командой «at!scpaddr=1», где цифра означает номер пресловутого «профиля». В ответ модем должен откликнуться полученным от оператора IP-адресом.

Но самой главной «плюшкой» режима Direct IP является то, что конкретно Sierr-овские модемы можно настроить на «автодозвон». Для этого нужно установить профиль по умолчанию: «at!scdftprof=1» и включить автодозвон в этом профиле: «at!scprof=1,»»,1,0,0,0«. Теперь после перезагрузки сервера либо отключения-включения питания модема он будет устанавливать линк автоматически. Аллилуйя!

IP-шник на системный интерфейс прилетает как обычно, по DHCP. Однако wwan0 — это всё-таки не ethernet. Попытки объединить его в bridge с другими системными интерфейсами («brctl addif br0 wwan0«) не увенчались успехом. Для того, чтобы получить беспроводной LTE-линк с честным IP-адресом внутри виртуальной машины, пришлось ещё немного поизгаляться. Как — напишу в третьей части, если когда-нибудь дойдут руки.

Какой вывод можно сделать из вышеописанных половых сношений с модемом умозаключений? Sierra Wireless делает вполне годные железки, которые довольно неплохо поддерживаются Linux-ом. Даже таким консервативным, как Debian. Собратьям по несчастью разуму могу порекомендовать брать устройства, которые понимает драйвер «sierra_net», ибо при прочих равных секса с ними будет меньше. К сожалению, таковых не так уж и много. Пока что их можно пересчитать по пальцам одной руки. Если кто будет выбирать, вот вам их VID-PID: «0f3d:68a3», «0f3d:68aa», «1199:68a3», «1199:68aa». Однако имейте в виду, что VID-PID также зависит и от режима работы и может изменяться в результате переключения последнего.

Оцените статью
Huawei Devices
Добавить комментарий