Modem-bullseye: различия между версиями
PeteK (обсуждение | вклад) |
PeteK (обсуждение | вклад) |
||
Строка 87: | Строка 87: | ||
== Работа с sms и ussd == | == Работа с sms и ussd == | ||
ModemManager реализует работу с sms и ussd | ModemManager реализует работу с sms и ussd. | ||
Отправка смс с использованием MM | |||
=== SMS-уведомления === | === SMS-уведомления === |
Версия 16:12, 30 марта 2023
Общая информация
В контроллеры Wiren Board могут быть установлены 2G/3G/4G(LTE)/NB-IOT модемы — зависит от комплектации.
В Debian Bullseye для управления 4G-модемами используются сервисы ModemManager и NetworkManager. Остальные модемы управляются аналогично тому, как это делалось в Debian Stretch.
Описанное ниже относится к работе с использованием ModemManager.
С помощью модемов можно:
- отправлять и принимать SMS,
- подключаться к интернету по протоколу PPP.
Модемы подключаются к процессору по uart и usb, исключение — модемы 2G. Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе Низкоуровневая работа по uart.
Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio, процесс описан в разделе Переключение активной sim-карты.
Включение и отключение модема рекомендуем делать с помощью сервиса wb-gsm.
Получение информации о модеме
В контроллерах, начиная с 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.
Включение и начало работы
Чтобы начать работу с модемом, нужно:
- Подключить антенну.
- Вставить sim-карту.
Сервис wb-gsm
Сервис wb-gsm
предназначен для управления питанием модема, он входит в пакет wb-utils.
Питание подаётся на модем при старте сервиса и отключается при остановке.
Сервис автоматически запускается при старте контроллера, если модем выбран в настройках модулей расширения.
Управлять работой сервиса можно через команды systemctl
. Например, для остановки надо выполнить
systemctl stop wb-gsm
Переключение активной sim-карты
По умолчанию активна Sim1 — в каждый момент времени только одна sim-карта может быть активной.
Для переключения sim-карты используется mmcli
с параметром --set-primary-sim-slot
. Например:
ModemManager выполнит переключение sim-карты и переинициализирует модем.
Низкоуровневая работа по uart
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.
Если необходимо отправлять команды модему нужно остановить сервис ModemManager
systemctl stop ModemManager
После этого можно работать с портом как описано здесь, либо запустить ModemNanager с параметром --debug
и использовать mmcli для отправки команд
Отправка команд через mmcli
Работа с sms и ussd
ModemManager реализует работу с sms и ussd.
Отправка смс с использованием MM
SMS-уведомления
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье « Модуль уведомлений».
Интернет через PPP
Быстрый выход в интернет
Настройки быстрого подключения сбрасываются после перезагрузки контроллера. Если вам нужен постоянный доступ к интернету — настройте автоматический запуск подключения.
В стандартное ПО контроллера входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, то для быстрого подключения к интернету нужно перезапустить модем и подключится с использованием одной из настроек:
- Перезапустите модем:
wb-gsm restart_if_broken
- Установите соединение, например, для оператора МТС:
pon mts
mts
можно заменить наmegafon
илиbeeline
— зависит от вашего оператора связи.
- Если соединение больше не нужно — вы можете его завершить командой:
poff mts
Если на контроллере установлен модуль 3G- или 4G-модем, то для увеличения пропускной способности соединения, демону pppd нужно указать другой порт. Для этого в файле /etc/ppp/peers/<ваш_провайдер_связи>
замените устройство /dev/ttyGSM
на (в зависимости от модема) /dev/ttyUSB0
или /dev/ttyACM0
.
Например, изменим порт для провайдера МТС:
- Откройте файл
/etc/ppp/peers/mts
nano /etc/ppp/peers/mts
- Закомментируйте старый порт и добавьте новый:
#/dev/ttyGSM /dev/ttyUSB0
- порт можно использовать /dev/ttyUSB[0..2] в зависимости от количества и настроек сервисов работающих с модемом.
- Нажмите Ctrl+S для сохранения изменений, Ctrl+X — для выхода из редактора.
Порты /dev/ttyUSB0
,/dev/ttyUSB1
,/dev/ttyUSB2
появляются автоматически после включения модема командой wb-gsm on
.
Автоматический запуск подключения
Чтобы подключение запускалось автоматически:
- Откройте файл
/etc/network/interfaces
для редактирования:nano /etc/network/interfaces
- Раскомментируйте или отредактируйте следующие строки:
auto ppp0 iface ppp0 inet ppp provider mts # можно заменить mts на megafon или beeline #перезапускаем модем, если он завис pre-up wb-gsm restart_if_broken #Ждем, пока он загрузится и найдет сеть. pre-up sleep 10
- Сохраните изменения и закройте файл.
- Теперь запустите интерфейс
ppp0
командой:ifup ppp0
- через 10-15 секунд интерфейс
ppp0
будет доступен.
- Настройка завершена, теперь при перезагрузке контроллера подключение к интернету восстановится автоматически.
Параметры протокола пакетной передачи данных и номера для соединения для каждого провайдера хранятся в директории /etc/chatscripts
. В большинстве случаев ничего менять в этих файлах не придется.
Для ppp-интерфейсов существуют директории, исполняемые файлы из которых также запускаются на разных фазах установления соединения. Но, если, например, для ethernet-интерфейсов эти скрипты должны находиться в директориях /etc/network/if-down.d
, if-post-down.d
, if-pre-up.d
, if-up.d
, то соответствующие директории для ppp-интерфейсов находятся в /etc/ppp/ip-down.d
, ip-up.d
и т.п. Подробнее об их назначении и функционировании можно узнать в документе PPP HOWTO.
Резервирование канала связи
Особенности резервирования выхода в интернет описаны в статье Сетевые настройки контроллера.
Интернет с 4G-модемом (LTE)
![](/wiki/images/thumb/c/cb/Minicom-AT-4G.png/500px-Minicom-AT-4G.png)
![](/wiki/images/thumb/3/3b/Minicom-AT-4G-Exit.png/500px-Minicom-AT-4G-Exit.png)
Настройка модема как сетевой карты
В отличие от 2G- и 3G-модулей, WBC-4G поддерживает выход в интернет через виртуальную сетевую карту по протоколу RNDIS.
Настройка с помощью minicom:
- Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля WBC-4G.
- Подключитесь к контроллеру по SSH.
- Перезапустите модем командой:
wb-gsm restart_if_broken
- Подключитесь к модему через minicom:
minicom -D /dev/ttyGSM -b 115200 -8 -a off
- о параметрах командной строки читайте в статье о minicom.
- Введите команду
AAAAAAAAAT
— с её помощью модем распознает скорость, с которой мы к нему обращаемся и ответитOK
. - Отправьте из терминала minicom AT-команды для модема:
- Настроить автоматическое подключение:
AT+DIALMODE=0
. - Установить APN:
AT+CGDCONT=1,"IP","xxx"
, где xxx — точка подключения (APN). Имя точки подключения зависит от оператора, например, у МТС она выглядит так:internet.mts.ru
. - Проверить получение IP адреса:
AT+CGCONTRDP
.
- Настроить автоматическое подключение:
- Закройте minicom, для этого нажмите на клавиатуре клавиши Ctrl+A, затем клавишу X и подтвердите выход клавишей Enter.
После этого интернет будет доступен через интерфейс usb0
, который можно настроить как обычную сетевую карту.
Настройка с помощью chat:
- Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля WBC-4G.
- Подключитесь к контроллеру по SSH.
- Перезапустите модем командой:
wb-gsm restart_if_broken
- Замените в строке ниже APN_INTERNET на точку подключения вашего провайдера, вставьте изменённую строку консоль контроллера и нажмите на клавиатуре Enter:
PORT=/dev/ttyGSM; /usr/sbin/chat -s TIMEOUT 20 ABORT "ERROR" ECHO ON "" "AAAAAAAAAAAAAT" OK "AT+CMGF=1" OK "AT+DIALMODE=0" OK "AT+CGDCONT=1,\"IP\",\"APN_INTERNET\"" OK "AT+CGCONTRDP" "OK" > $PORT < $PORT
Этот способ можно использовать при написании скриптов.
Настройка виртуальной сетевой карты
Включение
После того как мы настроили модем, нужно настроить виртуальную сетевую карту:
- Откройте файл
/etc/network/interfaces
:nano /etc/network/interfaces
- Добавьте в него строки:
auto usb0 allow-hotplug usb0 iface usb0 inet dhcp pre-up sleep 8 pre-up wb-gsm restart_if_broken pre-up sleep 10
- автоматически запустить модем, интерфейс и получать IP-адрес. Задержки pre-up sleep перед и после включения модема нужны для надёжного старта.
- Сохраните и закройте файл
interfaces
. Нажмите Ctrl+S для сохранения изменений, Ctrl+X — для выхода из редактора. - Запустите интерфейс командой:
ifup usb0
Настройка завершена, теперь модем по DHCP назначит контроллеру IP-адрес в подсети 192.168.0.1
, а после перезагрузки контроллера соединение с интернетом восстановится автоматически.
При необходимости можно сменить подсеть модема, чтобы он выдавал контроллеру адрес не из подсети 192.168.0.ххх
, а, например, 192.168.100.ххх
. Для этого нужно выполнить AT-команду:
AT+USBNETIP=0,100,111
Команда имеет следующий синтаксис:
AT+USBNETIP=<mode>,<tpos>,<dhcps>,<dhcpe>
<mode> |
0 – частный IP-адрес (по умолчанию, 192.168.0.xxx и т. д.) |
<tpos> | Третья позиция IP-адреса |
<dhcps> | Начальное значение DHCP |
<dhcpe> | Конечное значение DHCP |
Предупреждение! Данная функция может не работать на модемах со старыми прошивками. Узнать, что модем поддерживает эту функцию можно командой
AT+USBNETIP?
Функция поддерживается, если получен ответ
+USBNETIP: mode
OK
Отключение
- Остановите интерфейс командой:
ifdown usb0
- Откройте файл
/etc/network/interfaces
:nano /etc/network/interfaces
- Закомментируйте или удалите строки:
#auto usb0 #allow-hotplug usb0 #iface usb0 inet dhcp # pre-up sleep 8 # pre-up wb-gsm restart_if_broken # pre-up sleep 10
- Сохраните и закройте файл
interfaces
. Нажмите Ctrl+S для сохранения изменений, Ctrl+X — для выхода из редактора.
Мультиплексирование
Модем поддерживает режим мультиплексирования — создания виртуальных портов, через которые можно одновременно работать с модемом. Например, через один порт можно открыть сессию PPP для GPRS, а через другой — получать и отправлять SMS, проверять баланс и т.д. Подробнее смотрите CMUX. Этот режим не поддерживается для 2G-модемов.
Документация на модемы
Модель | Режимы сети | краткое описание | hardware design | AT-команды |
---|---|---|---|---|
SIM800 | 2G | |||
SIM5300E | 2G/3G | |||
SIM7000E | 2G/NB-IOT | |||
7600E | 2G/3G/4G | WBC-4G |