Настройка 4G-модема в контроллере Wiren Board на Debian Bullseye

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Общая информация

Статья описывает настройку 4G-модемов в контроллерах Wiren Board 6...7, на которых установлен релиз wb-2304 и новее. Для настройки модема в релизе wb-2207 и старее, а также модемов 2G/3G/NB-IoT — используйте эту инструкцию.

Опционально в контроллер Wiren Board 7 можно установить двухсимочный 4G(LTE) модем WBC-4G v.2, с помощью которого организуется доступ в интернет через PPP, а также отправка и приём SMS. Модемы управляются серсисами ModemManager и NetworkManager.

Питание модема управляется автоматически сервисом wb-gsm, а переключение активных SIM-карт вручную через утилиту mmcli. Подробнее читайте ниже.

Включение и начало работы

Конфигурирование модема в веб-интерфейсе контроллера Wiren Board

Чтобы начать работу с модемом, нужно:

  1. Подключить антенну.
  2. Вставить sim-карту.
  3. Добавить модем в конфигурацию контроллера:
    • В веб-интерфейсе перейдите в раздел НастройкиКонфигурационные файлыМодули расширения и порты, выберите Слот модема.
    • В раскрывающемся списке Тип модуля выберите тип установленного модуля.
    • Нажмите кнопку Сохранить. Контроллер включит нужные для работы модема порты.

Для удаления модуля выберите тип Не установлен.

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

Интернет через PPP

Настройка PPP через модем

ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP.

После настройки модема в контроллере создаются два соединения NetworkManager'а:

  1. wb-gsm-sim1 — параметры соединения при использовании sim-карты в первом слоте;
  2. wb-gsm-sim2 — во втором слоте.

Контроллер имеет базу APN сотовых операторов. NetworkManager сам определит нужный APN в зависимости от вставленной sim-карты.

Настройки соединений можно изменить либо в веб-интерфейсе конфигурирования контроллера, либо в консоли утилитой nmcli.

Настроенное соединение можно активировать из веб-конфигуратора или из консоли утилитой nmcli. Для того чтобы соединение автоматически активировалось при включении контроллера, надо установить галочку Подключаться автоматически.

Работа с SMS

В командах используется номер модема, который меняется при каждой инициализации. Узнать фактический номер модема можно запросив информацию командой mmcli -m any. Начиная с релиза wb-2304, модему присваивается тег wbc, и взаимодействовать с ним можно с помощью mmcli -m wbc После настройки модема нужно проверить его работу. Для этого можно отправить тестовое SMS-сообщение. Удобнее это делать из консоли.

Для отправки sms-сообщения надо:

  1. Cоздать его с использованием параметра --messaging-create-sms. mmcli вернёт идентификационный номер sms.
  2. Использовать полученный идентификационный номер для отправки командой --send.
    # mmcli -m wbc --messaging-create-sms="text='Test',number='+79999999999'"
    Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/10
    # mmcli -m wbc -s 10 --send
    successfully sent the SMS
    

Для отправки SMS-уведомлений в веб-интерфейсе контроллера Wiren Board реализован сервис уведомлений. Его можно настроить на отправку SMS, когда какой-либо параметр выходит из нормы.

То же самое можно сделать с помощью правил wb-rules. Для этого существует специальная функция, которая описана в документации на GitHub.

Авторизация у оператора связи

Пока нельзя вводить логин/пароль через веб-интерфейс, в консоли это можно сделать так:

nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.username ЛОГИН
nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.password ПАРОЛЬ

Получение информации о модеме

(для версий контроллеров с распаянным модемом) В контроллерах версий 6.3-6.6, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории /proc/device-tree/wirenboard/gsm/.

В контроллерах версии 6.7 модем устанавливается модулем расширения.

Например, чтобы узнать модель модема, нужно выполнить команду

cat /proc/device-tree/wirenboard/gsm/model

Подробнее о файлах внутри директории можно узнать из таблицы:

Файл Описание
/proc/device-tree/wirenboard/gsm/model модель модема
/proc/device-tree/wirenboard/gsm/type поддерживаемые сети
/proc/device-tree/wirenboard/gsm/status статус модема в системе

ModemManager позволяет получить информацию о модеме. Сделать это можно с помощью утилиты mmcli, выполнив команду:

mmcli -m any

Информация о модеме от ModemManager

Начиная с релиза wb-2304, модему присваивается тег "wbc", и обращаться к нему можно с помощью

mmcli -m wbc

Сервис wb-gsm

Сервис wb-gsm предназначен для управления питанием модема, он входит в пакет wb-utils.

Питание подаётся на модем при старте сервиса и отключается при остановке.

Сервис автоматически запускается при старте контроллера, если модем выбран в настройках модулей расширения.

Управлять работой сервиса можно через команды systemctl. Например, для остановки надо выполнить

systemctl stop wb-gsm

Переключение активной sim-карты

По умолчанию активна Sim1 — в каждый момент времени только одна sim-карта может быть активной.

Для переключения sim-карты используется mmcli с параметром --set-primary-sim-slot. Например:

# mmcli -m wbc --set-primary-sim-slot=2
successfully requested primary SIM switch in modem

ModemManager выполнит переключение sim-карты и переинициализирует модем.

Низкоуровневая работа по uart

Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.

Если необходимо отправлять команды модему, нужно остановить сервис ModemManager: systemctl stop ModemManager. После этого можно работать с портом как описано здесь.

Если необходимо отправлять команды при активном ModemManager, его надо перезапустить с параметром --debug и использовать mmcli для отправки команд:

# mmcli -m wbc --command=AT+CGMM
response: ''A7600E-HNVW'

Диагностика

Процесс установки соединения в общем случае проходит в несколько этапов.

  • включение модема
  • регистрация в сотовой сети, домашней или роуминговой
  • установка ppp соединения

Для наблюдения можно использовать journalctl

# journalctl -u ModemManager -f

Нормальный (Успешный) процесс установки соединения выглядит так:

Oct 03 07:02:01 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (disconnecting -> registered)
Oct 03 07:02:08 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] mobile equipment request to activate context (cid 9)
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect started...
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (6/10): register
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (7/10): wait to get packet service state attached
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (8/10): bearer
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (9/10): connect
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (registered -> connecting)
Oct 03 07:02:19 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (connecting -> connected)
Oct 03 07:02:19 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (10/10): all done
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect started...
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (6/10): register
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (7/10): wait to get packet service state attached
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (8/10): bearer
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (9/10): connect
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (10/10): all done
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] mobile equipment request to activate context (cid 9)
Oct 03 07:02:33 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (connected -> disconnecting)
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] mobile equipment request to deactivate context (cid 9)
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0/bearer0] explicitly disconnected
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (disconnecting -> registered)

Тут этап регистрации в сети оператора отображается

simple connect state (6/10): register

Если выглядит так:

Nov 07 10:01:16 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] simple connect state (6/10): register
Nov 07 10:01:17 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] 3GPP registration state changed (idle -> denied)
Nov 07 10:01:17 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] 3GPP registration state changed (denied -> idle)
Nov 07 10:01:17 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] 3GPP registration state changed (idle -> denied)
Nov 07 10:01:17 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] 3GPP registration state changed (denied -> idle)

то оператор явно отказывает SIM в регистрации в домашней сети. Причины (необслуживаемая карта, etc.)

Документация на модемы

Модель Режимы сети краткое описание hardware design AT-команды
SIM800 2G Файл:SIM800 SPEC.pdf Файл:SIM800 HW Design.pdf Файл:SIM800 AT commands.pdf
SIM5300E 2G/3G Файл:SIM5300E SPEC.pdf Файл:SIM5300E HW Design.pdf Файл:SIM5300E AT commands.pdf
SIM7000E 2G/NB-IOT Файл:SIM7000E SPEC.pdf Файл:SIM7000E HW Design.pdf Файл:SIM7000E AT commands.pdf
7600E 2G/3G/4G WBC-4G

Полезные ссылки

Звонки на номера с помощью модема (от SetPoint)

получение SMS