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

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


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


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


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


Модемы подключаются к процессору по uart и usb, исключение — модемы 2G.
[[Image:homeui-network-modem-settings.png|300px|thumb|right|Настройка PPP через модем]]
Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе [[#Низкоуровневая работа по uart|Низкоуровневая работа по uart]].


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


Включение и отключение модема рекомендуем делать с помощью сервиса [[#Сервис wb-gsm|wb-gsm]].
После настройки модема в контроллере создаются два соединения 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-сообщение. Удобнее это делать из консоли.


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


В контроллерах версии 6.7 модем устанавливается модулем расширения.
Для отправки 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 модем устанавливается модулем расширения.


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


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


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


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


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


ModemManager выполнит переключение sim-карты и переинициализирует модем.
ModemManager выполнит переключение sim-карты и переинициализирует модем.
Строка 82: Строка 123:
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.


Если необходимо отправлять команды модему нужно остановить сервис ModemManager
Если необходимо отправлять команды модему, нужно остановить сервис ModemManager: <code>systemctl stop ModemManager</code>. После этого можно работать с портом как описано [[Modem-stretch#Низкоуровневая_работа_по_uart | здесь]].
<code>systemctl stop ModemManager</code>


После этого можно работать с портом как описано [[GSM/GPRS#Низкоуровневая_работа_по_uart | здесь]], либо запустить 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]]
==Диагностика==
Процесс установки соединения в общем случае проходит в несколько этапов.
* включение модема
* регистрация в сотовой сети, домашней или роуминговой
* установка ppp соединения


== Работа с sms ==
Для наблюдения можно использовать [[journalctl]]
 
<syntaxhighlight lang="console">
Для отправки sms надо:
# journalctl -u ModemManager -f
# Cоздать её с использованием параметра <code>--messaging-create-sms</code>. mmcli вернёт идентификационный номер sms.
</syntaxhighlight>
# Использовать полученный идентификационный номер для отправки командой <code>--send</code>.


[[Image:mmcli-send-sms.png|650px|Отправка смс с использованием mmcli]]
Нормальный (Успешный) процесс установки соединения выглядит так:
 
<syntaxhighlight lang="console">
=== SMS-уведомления ===
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)
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».
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
== Интернет через PPP ==
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (7/10): wait to get packet service state attached
{{YouTube
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (8/10): bearer
| link= https://youtu.be/ZbJUwoifbzE
Oct 03 07:02:18 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (9/10): connect
| text= Настройка интернета через PPP с помощью 2G-модема
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
В стандартное ПО контроллера входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, то для быстрого подключения к интернету нужно перезапустить модем и подключится с использованием одной из настроек:
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
#:<syntaxhighlight lang="bash">
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info> [modem0] simple connect state (9/10): connect
wb-gsm restart_if_broken
Oct 03 07:02:22 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] simple connect state (10/10): all done
</syntaxhighlight>
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)
#:<syntaxhighlight lang="bash">
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info> [modem0] mobile equipment request to deactivate context (cid 9)
pon mts
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info> [modem0/bearer0] explicitly disconnected
</syntaxhighlight>
Oct 03 07:02:34 wirenboard-AWI3MCGC ModemManager[388]: <info>  [modem0] state changed (disconnecting -> registered)
#:<code>mts</code> можно заменить на <code>megafon</code> или <code>beeline</code> — зависит от вашего оператора связи.
# Если соединение больше не нужно — вы можете его завершить командой:
#:<syntaxhighlight lang="bash">
poff mts
</syntaxhighlight>
</syntaxhighlight>


Если на контроллере установлен модуль 3G- или 4G-модем, то для увеличения пропускной способности соединения, демону pppd нужно указать другой порт. Для этого в файле <code>/etc/ppp/peers/<ваш_провайдер_связи></code> замените устройство <code>/dev/ttyGSM</code> на (в зависимости от модема) <code>/dev/ttyUSB0</code> или <code>/dev/ttyACM0</code>.
Тут этап регистрации в сети оператора отображается
 
<syntaxhighlight lang="console">
Например, изменим порт для провайдера МТС:
simple connect state (6/10): register
# Откройте файл <code>/etc/ppp/peers/mts</code>
#:<syntaxhighlight lang="bash">
nano /etc/ppp/peers/mts
</syntaxhighlight>
</syntaxhighlight>
# Закомментируйте старый порт и добавьте новый:
Если выглядит так:  
#:<syntaxhighlight lang="bash">
<syntaxhighlight lang="console">
#/dev/ttyGSM
Nov 07 10:01:16 wirenboard-AWI3MCGC ModemManager[371]: <info>  [modem1] simple connect state (6/10): register
/dev/ttyUSB0
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>
</syntaxhighlight>
#:порт можно использовать /dev/ttyUSB[0..2] в зависимости от количества и настроек сервисов работающих с модемом.
то оператор явно отказывает SIM в регистрации в домашней сети. Причины (необслуживаемая карта, etc.)
# {{Wbincludes:Save nano}}


Порты <code>/dev/ttyUSB0</code>,<code>/dev/ttyUSB1</code>,<code>/dev/ttyUSB2</code> появляются автоматически после включения модема командой <code>wb-gsm on</code>.
<syntaxhighlight lang="console">
 
=== Автоматический запуск подключения ===
[[Image:Etc-network-interfaces.png|300px|thumb|right|Файл ''/etc/network/interfaces'', автоматически запускающий подключение к МТС]]
 
Чтобы подключение запускалось автоматически:
#Откройте файл <code>/etc/network/interfaces</code> для редактирования:
#:<syntaxhighlight lang="bash">
nano /etc/network/interfaces
</syntaxhighlight>
</syntaxhighlight>
#Раскомментируйте или отредактируйте следующие строки:
#:<syntaxhighlight lang="bash">
auto ppp0
iface ppp0 inet ppp
  provider mts # можно заменить mts на megafon или beeline
  #перезапускаем модем, если он завис
  pre-up wb-gsm restart_if_broken 
  #Ждем, пока он загрузится и найдет сеть.
  pre-up sleep 10
</syntaxhighlight>
# Сохраните изменения и закройте файл.
# Теперь запустите интерфейс <code>ppp0</code> командой:
#:<syntaxhighlight lang="bash">
ifup ppp0
</syntaxhighlight>
#:через 10­-15 секунд интерфейс <code>ppp0</code> будет доступен.
# Настройка завершена, теперь при перезагрузке контроллера подключение к интернету восстановится автоматически.
Параметры протокола пакетной передачи данных и номера для соединения для каждого провайдера хранятся в директории <code>/etc/chatscripts</code>. В большинстве случаев ничего менять в этих файлах не придется.
Для ppp-интерфейсов существуют директории, исполняемые файлы из которых также запускаются на разных фазах установления соединения. Но, если, например, для ethernet-интерфейсов эти скрипты должны находиться в директориях <code>/etc/network/if-down.d</code>, <code>if-post-down.d</code>, <code>if-pre-up.d</code>, <code>if-up.d</code>, то соответствующие директории для ppp-интерфейсов находятся в <code>/etc/ppp/ip-down.d</code>, <code>ip-up.d</code> и т.п. Подробнее об их назначении и функционировании можно узнать в документе [http://citforum.ru/operating_systems/linux/HOWTO/PPP-HOWTO.shtml PPP HOWTO].


==Документация на модемы==
==Документация на модемы==
Строка 177: Строка 189:
!Модель||Режимы сети||краткое описание||hardware design||AT-команды
!Модель||Режимы сети||краткое описание||hardware design||AT-команды
|-
|-
|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]  
|SIM800||2G||[[File: SIM800_SPEC.pdf]]||[[File: SIM800_HW_Design.pdf]]||[[File: SIM800_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]
|SIM5300E||2G/3G||[[File: SIM5300E_SPEC.pdf]]||[[File: SIM5300E_HW_Design.pdf]]||[[File: SIM5300E_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]
|SIM7000E||2G/NB-IOT||[[File: SIM7000E_SPEC.pdf]]||[[File: SIM7000E_HW_Design.pdf]]||[[File: SIM7000E_AT_commands.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]

Текущая версия на 16:06, 1 февраля 2024

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

Статья описывает настройку 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