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

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


Опционально в контроллер [[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].
В Debian Bullseye для управления 4G-модемами используются сервисы [https://www.freedesktop.org/software/ModemManager/api/latest ModemManager] и [https://www.networkmanager.dev/docs/ NetworkManager]. Остальные модемы управляются аналогично тому, как это [[GSM/GPRS | делалось в Debian Stretch]].


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


== Включение и начало работы ==
С помощью модемов можно:
[[Image:Modem-settigs.png|300px|thumb|right|Конфигурирование модема в веб-интерфейсе контроллера Wiren Board]]
* [[#Работа с sms и ussd | отправлять и принимать SMS]],
* подключаться к интернету по [[#Интернет через PPP|протоколу PPP]].


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


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


После конфигурирования модем включится автоматически и можно переходить к настройке подключения к оператору связи.
Включение и отключение модема рекомендуем делать с помощью сервиса [[#Сервис wb-gsm|wb-gsm]].


== Интернет через PPP ==
== Получение информации о модеме ==


[[Image:homeui-network-modem-settings.png|300px|thumb|right|Настройка PPP через модем]]
В контроллерах, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории <code>/proc/device-tree/wirenboard/gsm/</code>.


ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP.
В контроллерах версии 6.7 модем устанавливается модулем расширения.


После настройки модема в контроллере создаются два соединения NetworkManager'а:
После физического подключения модема его нужно добавить в конфигурацию контроллера:
# <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: Строка 49:
|}
|}


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: Строка 73:


Для переключения 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-карты и переинициализирует модем.
Строка 123: Строка 82:
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.


Если необходимо отправлять команды модему, нужно остановить сервис ModemManager: <code>systemctl stop ModemManager</code>. После этого можно работать с портом как описано [[Modem-stretch#Низкоуровневая_работа_по_uart | здесь]].
Если необходимо отправлять команды модему нужно остановить сервис ModemManager
<code>systemctl stop ModemManager</code>
 
После этого можно работать с портом как описано [[GSM/GPRS#Низкоуровневая_работа_по_uart | здесь]], либо запустить ModemManager с параметром <code>--debug</code> и использовать mmcli для отправки команд
 
[[Image:mmcli-send-command.png|400px|Отправка команд через mmcli]]
 
== Работа с sms ==


Если необходимо отправлять команды при активном ModemManager, его надо перезапустить с параметром <code>--debug</code> и использовать mmcli для отправки команд:
Для отправки sms надо:
<syntaxhighlight lang="console">
# Cоздать её с использованием параметра <code>--messaging-create-sms</code>. mmcli вернёт идентификационный номер sms.
# mmcli -m wbc --command=AT+CGMM
# Использовать полученный идентификационный номер для отправки командой <code>--send</code>.
response: ''A7600E-HNVW'
 
</syntaxhighlight>
[[Image:mmcli-send-sms.png|650px|Отправка смс с использованием mmcli]]
 
=== SMS-уведомления ===
 
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».
 
== Интернет через PPP ==
 
ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP.


==Диагностика==
После настройки модема в контроллере создаются два соединения NetworkManager'а <code>wb-gsm-sim1</code> и <code>wb-gsm-sim2</code>.
Процесс установки соединения в общем случае проходит в несколько этапов.
<code>wb-gsm-sim1</code> задаёт параметры соединения при использовании sim-карты в первом слоте, <code>wb-gsm-sim2</code> - во втором слоте.
* включение модема
* регистрация в сотовой сети, домашней или роуминговой
* установка ppp соединения


Для наблюдения можно использовать [[journalctl]]
Контроллер имеет базу APN сотовых операторов. NetworkManager сам определит нужный APN в зависимости от вставленной sim-карты.
<syntaxhighlight lang="console">
# journalctl -u ModemManager -f
</syntaxhighlight>


Нормальный (Успешный) процесс установки соединения выглядит так:
Настройки соединений можно изменить либо в web-интерфейсе конфигурирования контроллера, либо в консоли утилитой [https://networkmanager.dev/docs/api/latest/nmcli.html nmcli].
<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>


Тут этап регистрации в сети оператора отображается
[[Image:homeui-network-modem-settings.png|650px|Настройка PPP модем]]
<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">
</syntaxhighlight>


==Документация на модемы==
==Документация на модемы==
Строка 189: Строка 120:
!Модель||Режимы сети||краткое описание||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]

Версия 09:16, 31 марта 2023

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

В контроллеры 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-карту.

Сервис 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

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

После настройки модема в контроллере создаются два соединения NetworkManager'а wb-gsm-sim1 и wb-gsm-sim2. wb-gsm-sim1 задаёт параметры соединения при использовании sim-карты в первом слоте, wb-gsm-sim2 - во втором слоте.

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

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

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


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

Модель Режимы сети краткое описание 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