Modem-bullseye: различия между версиями

Материал из Wiren Board
(не показаны 34 промежуточные версии 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Настройка 4G-модема в контроллере Wiren Board на Debian Bullseye }}
{{DISPLAYTITLE: Настройка 4G-модема в контроллере Wiren Board на Debian Bullseye }}
== Общая информация ==
== Общая информация ==
{{note|info|Статья описывает настройку 4G-модемов в контроллерах Wiren Board 6...7, на которых установлен релиз [[wb-2304]] и новее. Для настройки модема в релизе [[wb-2207]] и старее, а также модемов 2G/3G/NB-IoT — используйте эту [[Modem-stretch|инструкцию]].}}
{{note|info|Статья описывает настройку 4G-модемов в контроллерах Wiren Board 6...7, на которых установлен релиз [[wb-2304]] и новее. Для настройки модема в релизе [[wb-2207]] и старее, а также модемов 2G/3G/NB-IOT — используйте эту [[Modem-stretch|инструкцию]].}}


Опционально в контроллер [[Wiren Board | Wiren Board 7]] можно установить двухсимочный 4G(LTE) модем [[WBC-4G_v.2 |WBC-4G v.2]], с помощью которого организуется доступ в интернет через PPP, а также отправка и приём SMS. Модемы управляются серсисами [https://www.freedesktop.org/software/ModemManager/api/latest ModemManager] и [https://www.networkmanager.dev/docs/ NetworkManager].
В контроллеры Wiren Board могут быть установлены 2G/3G/4G(LTE)/NB-IOT модемы — зависит от комплектации.


Питание модема управляется автоматически сервисом wb-gsm, а переключение активных SIM-карт вручную через утилиту mmcli. Подробнее читайте ниже.
В Debian Bullseye для управления 4G-модемами используются сервисы [https://www.freedesktop.org/software/ModemManager/api/latest ModemManager] и [https://www.networkmanager.dev/docs/ NetworkManager]. Остальные модемы управляются аналогично тому, как это [[Modem-stretch | делалось в Debian Stretch]].


== Включение и начало работы ==
'''Описанное ниже относится к работе с использованием ModemManager.'''
[[Image:Modem-settigs.png|300px|thumb|right|Конфигурирование модема в веб-интерфейсе контроллера Wiren Board]]


Чтобы начать работу с модемом, нужно:
С помощью модемов можно:
#Подключить антенну.
* [[#Работа с sms и ussd | отправлять и принимать SMS]],
#[[SIM_card_installation | Вставить sim-карту]].
* подключаться к интернету по [[#Интернет через PPP|протоколу PPP]].
#Добавить модем в конфигурацию контроллера:
#*В веб-интерфейсе перейдите в раздел '''Настройки''' → '''Конфигурационные файлы''' → '''Модули расширения и порты''', выберите '''Слот модема'''.
#*В раскрывающемся списке '''Тип модуля''' выберите тип установленного модуля.
#*Нажмите кнопку '''Сохранить'''. Контроллер включит нужные для работы модема порты.


Для удаления модуля выберите тип '''Не установлен'''.
Модемы подключаются к процессору по uart и usb, исключение — модемы 2G.
Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе [[#Низкоуровневая работа по uart|Низкоуровневая работа по uart]].


После конфигурирования модем включится автоматически и можно переходить к настройке подключения к оператору связи.
Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio, процесс описан в разделе [[#Переключение активной sim-карты | Переключение активной sim-карты]].  


== Интернет через PPP ==
Включение и отключение модема рекомендуем делать с помощью сервиса [[#Сервис wb-gsm|wb-gsm]].


[[Image:homeui-network-modem-settings.png|300px|thumb|right|Настройка PPP через модем]]
== Получение информации о модеме ==


ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP.
В контроллерах, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории <code>/proc/device-tree/wirenboard/gsm/</code>.


После настройки модема в контроллере создаются два соединения NetworkManager'а:
В контроллерах версии 6.7 модем устанавливается модулем расширения.
# <code>wb-gsm-sim1</code> — параметры соединения при использовании sim-карты в первом слоте;
# <code>wb-gsm-sim2</code> — во втором слоте.


Контроллер имеет базу APN сотовых операторов. NetworkManager сам определит нужный APN в зависимости от вставленной sim-карты.
После физического подключения модема его нужно добавить в конфигурацию контроллера:


Настройки соединений можно изменить либо в веб-интерфейсе конфигурирования контроллера, либо в консоли утилитой [https://networkmanager.dev/docs/api/latest/nmcli.html nmcli].
веб-интерфейсе перейдите в раздел '''Настройки''' → '''Конфигурационные файлы''' → '''Модули расширения и порты''', выберите '''Слот модема'''.
#В раскрывающемся списке '''Тип модуля''' выберите тип установленного модуля.
#Нажмите кнопку '''Сохранить'''. Контроллер включит нужные для работы модема порты.


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


== Работа с SMS ==
После конфигурирования модем включится автоматически и можно переходить к настройке подключения к оператору связи.
{{note|info| В командах используется номер модема, который меняется при каждой инициализации. Узнать фактический номер модема можно запросив информацию командой <code>mmcli -m any</code>. Начиная с релиза wb-2304, модему присваивается тег wbc, и взаимодействовать с ним можно с помощью <code>mmcli -m wbc</code>}}
После настройки модема нужно проверить его работу. Для этого можно отправить тестовое SMS-сообщение. Удобнее это делать из консоли.
 
Для отправки sms-сообщения надо:
# Cоздать его с использованием параметра <code>--messaging-create-sms</code>. mmcli вернёт идентификационный номер sms.
# Использовать полученный идентификационный номер для отправки командой <code>--send</code>.
#:<syntaxhighlight lang="console">
# 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
</syntaxhighlight>
 
Для отправки SMS-уведомлений в веб-интерфейсе контроллера Wiren Board реализован [[Notification_module#Настройка модуля уведомлений |сервис уведомлений]]. Его можно настроить на отправку SMS, когда какой-либо параметр выходит из нормы.
 
То же самое можно сделать с помощью правил [[Wb-rules | wb-rules]]. Для этого существует специальная функция, которая описана в документации на [https://github.com/wirenboard/wb-rules#%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D0%BE%D0%BF%D0%BE%D0%B2%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B9 GitHub].
 
== Авторизация у оператора связи ==
Пока нельзя вводить логин/пароль через веб-интерфейс, в консоли это можно сделать так:
<syntaxhighlight lang="console">
nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.username ЛОГИН
nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.password ПАРОЛЬ
</syntaxhighlight>
 
== Получение информации о модеме ==
(для версий контроллеров с распаянным модемом)
В контроллерах версий 6.3-6.6, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории <code>/proc/device-tree/wirenboard/gsm/</code>.
 
В контроллерах версии 6.7 модем устанавливается модулем расширения.


Например, чтобы узнать модель модема, нужно выполнить команду  
Например, чтобы узнать модель модема, нужно выполнить команду  
Строка 85: Строка 52:
|}
|}


ModemManager позволяет получить информацию о модеме. Сделать это можно с помощью утилиты [https://dyn.manpages.debian.org/bullseye/modemmanager/mmcli.1.en.html mmcli], выполнив команду:
ModemManager позволяет получить информацию о модеме. Сделать это можно с помощью утилиты [https://dyn.manpages.debian.org/bullseye/modemmanager/mmcli.1.en.html mmcli].
<syntaxhighlight lang="bash">
mmcli -m any
</syntaxhighlight>


[[Image:modem-info.png|500px|Информация о модеме от ModemManager]]
[[Image:mmcli-info.png|500px|Информация о модеме от ModemManager]]


Начиная с релиза wb-2304, модему присваивается тег "wbc", и обращаться к нему можно с помощью
== Включение и начало работы ==
<syntaxhighlight lang="bash">
Чтобы начать работу с модемом, нужно:
mmcli -m wbc
#Подключить антенну.
</syntaxhighlight>
#[[SIM_card_installation | Вставить sim-карту]].
# Выбрать модем в настройках модулей расширения.


== Сервис wb-gsm ==  
== Сервис wb-gsm ==  
Строка 112: Строка 77:


Для переключения sim-карты используется <code>mmcli</code> с параметром <code>--set-primary-sim-slot</code>. Например:
Для переключения sim-карты используется <code>mmcli</code> с параметром <code>--set-primary-sim-slot</code>. Например:
<syntaxhighlight lang="console">
 
# mmcli -m wbc --set-primary-sim-slot=2
[[Image:mmcli-sim-select.png|500px|Выбор второго sim-слота]]
successfully requested primary SIM switch in modem
</syntaxhighlight>


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


Если необходимо отправлять команды при активном ModemManager, его надо перезапустить с параметром <code>--debug</code> и использовать mmcli для отправки команд:
Если необходимо отправлять команды при активном ModemManager, его надо перезапустить с параметром <code>--debug</code> и использовать mmcli для отправки команд:
<syntaxhighlight lang="console">
# mmcli -m wbc --command=AT+CGMM
response: ''A7600E-HNVW'
</syntaxhighlight>


==Диагностика==
[[Image:mmcli-send-command.png|400px|Отправка команд через mmcli]]
Процесс установки соединения в общем случае проходит в несколько этапов.
 
* включение модема
== Работа с sms ==
* регистрация в сотовой сети, домашней или роуминговой
 
* установка ppp соединения
Для отправки sms надо:
# Cоздать её с использованием параметра <code>--messaging-create-sms</code>. mmcli вернёт идентификационный номер sms.
# Использовать полученный идентификационный номер для отправки командой <code>--send</code>.
 
[[Image:mmcli-send-sms.png|650px|Отправка смс с использованием mmcli]]
 
=== SMS-уведомления ===
 
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».
 
== Интернет через PPP ==
 
[[Image:homeui-network-modem-settings.png|300px|thumb|right|Настройка PPP через модем]]


Для наблюдения можно использовать [[journalctl]]
ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP.
<syntaxhighlight lang="console">
 
# journalctl -u ModemManager -f
После настройки модема в контроллере создаются два соединения NetworkManager'а:
</syntaxhighlight>
# <code>wb-gsm-sim1</code> - параметры соединения при использовании sim-карты в первом слоте;
# <code>wb-gsm-sim2</code> - во втором слоте.


Нормальный (Успешный) процесс установки соединения выглядит так:
Контроллер имеет базу APN сотовых операторов. NetworkManager сам определит нужный APN в зависимости от вставленной sim-карты.
<syntaxhighlight lang="console">
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)
</syntaxhighlight>


Тут этап регистрации в сети оператора отображается
Настройки соединений можно изменить либо в web-интерфейсе конфигурирования контроллера, либо в консоли утилитой [https://networkmanager.dev/docs/api/latest/nmcli.html nmcli].
<syntaxhighlight lang="console">
simple connect state (6/10): register
</syntaxhighlight>
Если выглядит так:
<syntaxhighlight lang="console">
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)
</syntaxhighlight>
то оператор явно отказывает SIM в регистрации в домашней сети. Причины (необслуживаемая карта, etc.) целесообразно выяснить у поддержки провайдера.


<syntaxhighlight lang="console">
Настроенное соединение можно активировать из web-конфигуратора или из консоли утилитой nmcli. Для того чтобы соединение автоматически активировалось при включении контроллера, надо установить галочку <code>Подключаться автоматически</code>.
</syntaxhighlight>


==Документация на модемы==
==Документация на модемы==
Строка 189: Строка 125:
!Модель||Режимы сети||краткое описание||hardware design||AT-команды
!Модель||Режимы сети||краткое описание||hardware design||AT-команды
|-
|-
|SIM800||2G||[[File: SIM800_SPEC.pdf]]||[[File: SIM800_HW_Design.pdf]]||[[File: SIM800_AT_commands.pdf]]  
|SIM800||2G||[http://www.mt-system.ru/sites/default/files/documents/sim800_spec_20140423.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim800_hardware_design_v1.10.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim800_series_at_command_manual_v1.12.pdf pdf]  
|-
|-
|SIM5300E||2G/3G||[[File: SIM5300E_SPEC.pdf]]||[[File: SIM5300E_HW_Design.pdf]]||[[File: SIM5300E_AT_commands.pdf]]
|SIM5300E||2G/3G||[http://www.mt-system.ru/sites/default/files/documents/sim5300e_spec_v1611_rus_0.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim5300e_hardware_design_v1.09.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim5300e_at_command_manual_v1.01.pdf pdf]
|-
|-
|SIM7000E||2G/NB-IOT||[[File: SIM7000E_SPEC.pdf]]||[[File: SIM7000E_HW_Design.pdf]]||[[File: SIM7000E_AT_commands.pdf]]
|SIM7000E||2G/NB-IOT||[http://www.mt-system.ru/sites/default/files/documents/sim7000e_spec_v1706_rus.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim7000_hardware_design_v1.07.pdf pdf]||[http://www.mt-system.ru/sites/default/files/documents/sim7000_series_at_command_manual_v1.06.pdf pdf]
|-
|-
|7600E||2G/3G/4G
|7600E||2G/3G/4G
|colspan="3"| [[WBC-4G#Документация|WBC-4G]]
|colspan="3"| [[WBC-4G#Документация|WBC-4G]]
|}
|}
== Полезные ссылки ==
[https://support.wirenboard.com/t/zvonki-na-nomera-pri-pomoshhi-modemov-wirenboard-chast-3/17034/3 Звонки на номера с помощью модема (от SetPoint)]
[https://support.wirenboard.com/t/ne-ponyatno-chem-zanimaetsya-wb-connection-manager/16645/15 получение SMS]

Версия 10:12, 31 марта 2023

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

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

В контроллеры Wiren Board могут быть установлены 2G/3G/4G(LTE)/NB-IOT модемы — зависит от комплектации.

В Debian Bullseye для управления 4G-модемами используются сервисы ModemManager и NetworkManager. Остальные модемы управляются аналогично тому, как это делалось в Debian Stretch.

Описанное ниже относится к работе с использованием ModemManager.

С помощью модемов можно:

Модемы подключаются к процессору по uart и usb, исключение — модемы 2G. Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе Низкоуровневая работа по uart.

Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio, процесс описан в разделе Переключение активной sim-карты.

Включение и отключение модема рекомендуем делать с помощью сервиса wb-gsm.

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

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

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

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

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

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

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

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

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.

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

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

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

  1. Подключить антенну.
  2. Вставить sim-карту.
  3. Выбрать модем в настройках модулей расширения.

Сервис wb-gsm

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

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

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

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

systemctl stop wb-gsm

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

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

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

Выбор второго sim-слота

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

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

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

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

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

Отправка команд через mmcli

Работа с sms

Для отправки sms надо:

  1. Cоздать её с использованием параметра --messaging-create-sms. mmcli вернёт идентификационный номер sms.
  2. Использовать полученный идентификационный номер для отправки командой --send.

Отправка смс с использованием mmcli

SMS-уведомления

Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье « Модуль уведомлений».

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

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

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

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

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

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

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

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

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

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