Huawei E3272 и OpenWRT

Aug 24, 2016 16:35


В организации "завалялось" некоторое количество когда-то бывших весьма популярными в народе модемов Huawei E3272, он же Мегафон M100-4, он же МТС 824F, он же МТС 824FT. Задача: заставить работать этот мопед совместно с OpenWRT-маршрутизатором. В моём случае это такой же "ходовой" TP-Link TL-WR842ND.

Небольшое лирическое отступление. Этот модем может работать в режимах PPP, NCM и HiLink. В последнем варианте модем фактически превращается в отдельный самостоятельный роутер со своим блекджеком и шлюхами DHCP, NATом и эмуляцией сетевого адаптера. Чтобы его активировать, требуется обновить прошивку с версии 21 до версии 22, но лично я этого делать не советую. Ибо вычислительной дури мощности у этого "свистка" совсем мало, и он просто загнётся под мало-мальски серьёзной нагрузкой.

Что касается PPP (он же RAS), то это уже весьма тухлый протокол, который не даст вам реализовать все преимущества и выжать из LTE полную скорость by design. Поэтому использовать его я тоже не очень советую. Остаётся NCM.

Дык вот, сложность заключается в том, что NCM в исполнении Huawei получился весьма чудесатым и ни с чем другим не совместимым. И таки нет, это не QMI, поэтому всякие uqmi и иже с ними отпадают сразу. Только общение AT-командами через псевдотерминал, только хардкор. И эти AT-команды, как всегда, тоже мало с чем совместимы и не особо документированы. На всякий случай, команда установления сеанса связи, которую ещё пришлось поискать: "AT^NDISDUP=1,1".

Но и это ещё не всё. Эта гадская скотина (модем которая) в ответ на команду "ATI" в поле "Manufacturer" ничего не отдаёт. Не знаю, возможно, мне просто попался такой экземпляр. Возможно, его криво перепрошили/разлочили. Но факт остаётся фактом. Из-за этого идущие в пакете "comgt" для OpenWRT скрипты не понимают с чем имеют дело и вываливаются по ошибке.

Так что если кто-то ещё будет иметь дело с похожей железкой, имейте в виду следующее.
  1. Нужно установить пакеты "comgt-ncm", "kmod-usb-net-huawei-cdc-ncm" и их зависимости.
  2. Всякие "usb-modeswitch", "kmod-usb2", "kmod-usb-serial-ipw" и "kmod-usb-serial-option" подразумеваются сами собой. Пока в "ip link show" вы не увидите "wwan0", а в "/dev" - "ttyUSB1", дальше можно даже и не пытаться.
  3. Открываем на редактирование скрипт "/lib/netifd/proto/ncm.sh", находим там строчку "manufacturer=бла-бла-бла" и сразу после неё добавляем заклинание manufacturer="huawei". Это как раз костыль, призванный скомпенсировать косяк прошивки модема. Надо отметить, что такой "патч" потребуется накладывать после каждого обновления версии OpenWRT. Также про него стоит вспомнить (и убрать), если мы когда-нибудь в будущем захотим подключить к своему роутеру какой-нибудь другой модем.
  4. Через веб-интерфейс aka Luci в стабильной версии OpenWRT (15.05) настроить интерфейс, увы, не получится. Придётся лапками через "/etc/config/network". Примерно вот так:

config interface 'huawei'
option proto 'ncm'
option ifname 'wwan0'
option device '/dev/ttyUSB1'
option apn 'internet'
option delay '5'

После этого рестартуете сетку ("/etc/init.d/network reload"), должно взлететь. Не забудьте также потом добавить его в расово правильную зону своего Firewall-а.

Мораль сей басни такова. Huawei - это относительно дешёво и даже работает. Но если не хотите поиметь красные глазки и геморрой, то лучше берите Sierra Wireless.

администрирование, openwrt, linux, lte, модемы

Previous post Next post
Up