|
|
(не показано 95 промежуточных версий 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 ]. Остальные модемы управляются аналогично тому как это [[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]. |
|
| |
|
| С помощью модемов можно:
| | Питание модема управляется автоматически сервисом wb-gsm, а переключение активных SIM-карт вручную через утилиту mmcli. Подробнее читайте ниже. |
| * [[#Работа с sms и ussd | отправлять и принимать SMS]],
| |
| * подключаться к интернету по [[#Интернет через PPP|протоколу PPP]].
| |
|
| |
|
| Модемы подключаются к процессору по uart и usb, исключение — модемы 2G.
| | == Включение и начало работы == |
| Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе [[#Низкоуровневая работа по uart|Низкоуровневая работа по uart]].
| | [[Image:Modem-settigs.png|300px|thumb|right|Конфигурирование модема в веб-интерфейсе контроллера Wiren Board]] |
|
| |
|
| Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio, процесс описан в разделе [[#Переключение активной sim-карты | Переключение активной sim-карты]].
| | Чтобы начать работу с модемом, нужно: |
| | | #Подключить антенну. |
| Включение и отключение модема рекомендуем делать с помощью утилиты [[#Утилита wb-gsm|wb-gsm]].
| | #[[SIM_card_installation | Вставить sim-карту]]. |
| | | #Добавить модем в конфигурацию контроллера: |
| == Получение информации о модеме ==
| | #*В веб-интерфейсе перейдите в раздел '''Настройки''' → '''Конфигурационные файлы''' → '''Модули расширения и порты''', выберите '''Слот модема'''. |
| | | #*В раскрывающемся списке '''Тип модуля''' выберите тип установленного модуля. |
| В контроллерах, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории <code>/proc/device-tree/wirenboard/gsm/</code>.
| | #*Нажмите кнопку '''Сохранить'''. Контроллер включит нужные для работы модема порты. |
| | |
| В контроллерах версии 6.7 модем устанавливается модулем расширения.
| |
| | |
| После физического подключения модема его нужно добавить в конфигурацию контроллера:
| |
| | |
| #В веб-интерфейсе перейдите в раздел '''Настройки''' → '''Конфигурационные файлы''' → '''Модули расширения и порты''', выберите '''Слот модема'''. | |
| #В раскрывающемся списке '''Тип модуля''' выберите тип установленного модуля. | |
| #Нажмите кнопку '''Сохранить'''. Контроллер включит нужные для работы модема порты. | |
|
| |
|
| Для удаления модуля выберите тип '''Не установлен'''. | | Для удаления модуля выберите тип '''Не установлен'''. |
Строка 31: |
Строка 22: |
| После конфигурирования модем включится автоматически и можно переходить к настройке подключения к оператору связи. | | После конфигурирования модем включится автоматически и можно переходить к настройке подключения к оператору связи. |
|
| |
|
| Например, чтобы узнать модель модема, нужно выполнить команду
| | == Интернет через PPP == |
| <syntaxhighlight lang="bash">
| |
| cat /proc/device-tree/wirenboard/gsm/model
| |
| </syntaxhighlight>
| |
| | |
| Подробнее о файлах внутри директории можно узнать из таблицы:
| |
| {| class="wikitable"
| |
| !Файл||Описание
| |
| |-
| |
| ||/proc/device-tree/wirenboard/gsm/model||модель модема
| |
| |-
| |
| ||/proc/device-tree/wirenboard/gsm/type||поддерживаемые сети
| |
| |-
| |
| ||/proc/device-tree/wirenboard/gsm/status||статус модема в системе
| |
| |}
| |
|
| |
|
| == Включение и начало работы ==
| | [[Image:homeui-network-modem-settings.png|300px|thumb|right|Настройка PPP через модем]] |
| Чтобы начать работу с модемом, нужно:
| |
| #[[SIM_card_installation | Вставьте sim-карту]].
| |
| #Подключите антенну.
| |
| #Перезапустите модем, выполнив команду
| |
| #:<syntaxhighlight lang="bash">
| |
| wb-gsm restart_if_broken
| |
| </syntaxhighlight>
| |
|
| |
|
| После каждой смены sim-карты необходимо перезапускать модем.
| | ModemManager и NetworkManager позволяют организовать выход в Интернет через PPP. |
|
| |
|
| == Утилита wb-gsm ==
| | После настройки модема в контроллере создаются два соединения NetworkManager'а: |
| | # <code>wb-gsm-sim1</code> — параметры соединения при использовании sim-карты в первом слоте; |
| | # <code>wb-gsm-sim2</code> — во втором слоте. |
|
| |
|
| Для упрощения работы с модемами была написана утилита <code>wb-gsm</code>, которая входит в пакет [https://github.com/wirenboard/wb-utils wb-utils].
| | Контроллер имеет базу APN сотовых операторов. NetworkManager сам определит нужный APN в зависимости от вставленной sim-карты. |
|
| |
|
| Утилита <code>wb-gsm</code> входит в состав пакета <code>wb-utils</code>, который предустановлен на все контроллеры Wiren Board.
| | Настройки соединений можно изменить либо в веб-интерфейсе конфигурирования контроллера, либо в консоли утилитой [https://networkmanager.dev/docs/api/latest/nmcli.html nmcli]. |
|
| |
|
| С помощью <code>wb-gsm</code> вы сможете:
| | Настроенное соединение можно активировать из веб-конфигуратора или из консоли утилитой nmcli. Для того чтобы соединение автоматически активировалось при включении контроллера, надо установить галочку <code>Подключаться автоматически</code>. |
| * управлять питанием модемов, команды <code>on, off, restart_if_broken</code>;
| |
| * настраивать baudrate связи по uart, команды <code>init_baud, set_speed</code>;
| |
| * получать imei, команда <code>imei</code>.
| |
|
| |
|
| Все команды wb-gsm можно посмотреть в репозитории на Github по ссылке в начале раздела.
| | == Работа с SMS == |
| | {{note|info| В командах используется номер модема, который меняется при каждой инициализации. Узнать фактический номер модема можно запросив информацию командой <code>mmcli -m any</code>. Начиная с релиза wb-2304, модему присваивается тег wbc, и взаимодействовать с ним можно с помощью <code>mmcli -m wbc</code>}} |
| | После настройки модема нужно проверить его работу. Для этого можно отправить тестовое SMS-сообщение. Удобнее это делать из консоли. |
|
| |
|
| Пример использования утилиты <code>wb-gsm</code> для получения imei модема, флаг <code>DEBUG=true</code> — выводить отладочную информацию:
| | Для отправки sms-сообщения надо: |
| <syntaxhighlight lang="bash"> | | # Cоздать его с использованием параметра <code>--messaging-create-sms</code>. mmcli вернёт идентификационный номер sms. |
| DEBUG=true wb-gsm imei
| | # Использовать полученный идентификационный номер для отправки командой <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> | | </syntaxhighlight> |
|
| |
|
| == Переключение активной sim-карты ==
| | Для отправки SMS-уведомлений в веб-интерфейсе контроллера Wiren Board реализован [[Notification_module#Настройка модуля уведомлений |сервис уведомлений]]. Его можно настроить на отправку SMS, когда какой-либо параметр выходит из нормы. |
|
| |
|
| По умолчанию активна Sim1 — в каждый момент времени '''только одна sim-карта может быть активной'''.
| | То же самое можно сделать с помощью правил [[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]. |
|
| |
|
| Переключить модем на другую sim-карту можно с помощью gpio процессора. Узнать его номер можно двумя способами:
| | == Авторизация у оператора связи == |
| *выполнить команду <syntaxhighlight lang="bash">echo $WB_GPIO_GSM_SIMSELECT</syntaxhighlight>
| | Пока нельзя вводить логин/пароль через веб-интерфейс, в консоли это можно сделать так: |
| *найти ''SIM Slot Select gpio'' в [[Wiren_Board_6.1:Список_GPIO#Ножки для внутреннего использования|таблице gpio]] контроллера.
| | <syntaxhighlight lang="console"> |
| | | nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.username ЛОГИН |
| По умолчанию, этот gpio уже экспортирован в sysfs, поэтому, для переключения активной sim-карты с 1 на 2, нужно выполнить команду (в примере, номер gpio для переключения sim-карт - 88): <syntaxhighlight lang="bash">echo 1 > /sys/class/gpio/gpio88/value</syntaxhighlight> Соответственно, для переключения обратно на sim1, нужно записать 0.
| | nmcli c modify ИМЯ_СОЕДИНЕНИЯ gsm.password ПАРОЛЬ |
| Подробнее о работе с gpio можно узнать из статьи [[Работа_с_GPIO#Интерфейс sysfs в Linux|Работа_с_GPIO]].
| |
| | |
| Для того чтобы новая sim-карта стала активной, нужно '''выполнить следующие AT-команды''' (см. [[#Отправка AT-команд|раздел о работе с AT-командами]]):
| |
| <syntaxhighlight lang="bash">
| |
| AT+CFUN=0
| |
| AT+CFUN=1
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| == Низкоуровневая работа по uart == | | == Получение информации о модеме == |
| | (для версий контроллеров с распаянным модемом) |
| | В контроллерах версий 6.3-6.6, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории <code>/proc/device-tree/wirenboard/gsm/</code>. |
|
| |
|
| Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема. Все модемы подключаются к порту <code>/dev/ttyGSM</code>. 3G модемы, помимо этого, подключаются к портам ''/dev/ttyACM'''X''''' (порты создаются usb-драйвером <code>cdc_acm</code>).
| | В контроллерах версии 6.7 модем устанавливается модулем расширения. |
|
| |
|
| === Подключение в linux ===
| | Например, чтобы узнать модель модема, нужно выполнить команду |
| | |
| *uart: Порт <code>/dev/ttyGSM</code> является ссылкой на ''/dev/ttymxc'''X''''' (uart процессора) и создается с помощью правил udev. Конечный порт может быть разным для разных версий контроллера (подробнее можно посмотреть на [https://github.com/wirenboard/wb-configs/tree/master/configs/usr/share/wb-configs/udev нашем github]).
| |
| | |
| *usb: Порты ''/dev/ttyUSB'''X''''' или ''/dev/ttyACM'''X''''' (в случае 3G-модема) появляются автоматически после подачи питания на модем. Обычно, порты 3G-модема — это <code>/dev/ttyACM0-6</code>, однако '''точно''' определить, к каким портам модем подключен по USB можно, выполнив команды: <syntaxhighlight lang="bash">wb-gsm restart_if_broken; dmesg | tail</syntaxhighlight>.
| |
| | |
| Примерный вывод команды:
| |
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="bash"> |
| [ 6102.978383] usb 2-1.2: New USB device found, idVendor=1e0e, idProduct=0020
| | cat /proc/device-tree/wirenboard/gsm/model |
| [ 6102.985653] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
| |
| [ 6102.993108] usb 2-1.2: Product: SIMCOM_PRODUCT
| |
| [ 6102.997728] usb 2-1.2: Manufacturer: SIMCOM_VENDOR
| |
| [ 6103.002644] usb 2-1.2: SerialNumber: 004999010640000
| |
| [ 6103.082093] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
| |
| [ 6103.098228] cdc_acm 2-1.2:1.2: ttyACM1: USB ACM device
| |
| [ 6103.116769] cdc_acm 2-1.2:1.4: ttyACM2: USB ACM device
| |
| [ 6103.132688] cdc_acm 2-1.2:1.6: ttyACM3: USB ACM device
| |
| [ 6103.145157] cdc_acm 2-1.2:1.8: ttyACM4: USB ACM device
| |
| [ 6103.163705] cdc_acm 2-1.2:1.10: ttyACM5: USB ACM device
| |
| [ 6103.182338] cdc_acm 2-1.2:1.12: ttyACM6: USB ACM device
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| Соответственно, в данном случае 3G модем подключен к портам <code>/dev/ttyACM0 - /dev/ttyACM6</code>.
| |
|
| |
|
| === Отправка AT-команд ===
| | Подробнее о файлах внутри директории можно узнать из таблицы: |
| [[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-комманд для модема в терминале программы [[minicom]]]]
| |
| | |
| {{Wbincludes:GSM Modem Default Connection Parameters}}
| |
| | |
| Для работы в интерактивном режиме рекомендуем использовать утилиту [[minicom]]:
| |
| {{Wbincludes:GSM Modem AT Prepare}}
| |
| Модем готов к передаче AT-команд.
| |
| | |
| Чтобы закрыть minicom, нажмите на клавиатуре клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, затем клавишу <kbd>X</kbd> и подтвердите выход клавишей <kbd>Enter</kbd>.
| |
| | |
| == Работа с sms и ussd ==
| |
| | |
| Работать с sms и ussd проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты <code>gnokii</code>, которую перестали развивать).
| |
| | |
| Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция.
| |
| | |
| === Настройка ===
| |
| | |
| Все контроллеры WB6, начиная с 2018 года, поставляются с уже настроенной утилитой gammu. Если gammu не настроена, то можно выбрать один из 2-х способов настройки:
| |
| *Обновить пакет <code>wb-configs</code>. Для этого, нужно выполнить команды <syntaxhighlight lang="bash">apt update && apt install wb-configs</syntaxhighlight>
| |
| | |
| [[File:Gammu-config.png|300px|thumb|right|Настройка gammu вручную (''gammu-config'')]]
| |
| *Настроить gammu вручную:
| |
| #Выполнить команду <syntaxhighlight lang="bash">gammu-config</syntaxhighlight>
| |
| #В параметре <code>Port</code> укажите <code>/dev/ttyXXX</code> — файл модема, соответствующий вашей модели контроллера.
| |
| #В параметре <code>Connection</code> укажите <code>at115200</code>
| |
| | |
| === Примеры команд gammu ===
| |
| Перед использованием утилиты убедитесь, что соединение с интернетом по протоколу ppp завершено (см. раздел [[#Интернет через PPP | Интернет через PPP]])
| |
| | |
| <syntaxhighlight lang="bash">
| |
| $ gammu networkinfo # посмотреть сеть и базовую станцию, к которой вы подключены
| |
| $ gammu geteachsms # вывести все SMS
| |
| $ gammu getussd '#100#' # запросить баланс на МТС в транслите
| |
| $ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом
| |
| </syntaxhighlight>
| |
| | |
| === SMS и USSD на русском ===
| |
| | |
| SMS и USSD на русском в ''gammu'' пока работают не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит:
| |
| {| class="wikitable" | | {| class="wikitable" |
| !rowspan="2"|Оператор||colspan="2"|USSD||colspan="2"|SMS | | !Файл||Описание |
| |- | | |- |
| !транслит||русский||транслит||русский
| | ||/proc/device-tree/wirenboard/gsm/model||модель модема |
| |- | | |- |
| |МТС||*100*6*2#||*100*6*1#||неизвестно||неизвестно | | ||/proc/device-tree/wirenboard/gsm/type||поддерживаемые сети |
| |- | | |- |
| |Мегафон||*105*0#||*105*9#||неизвестно||неизвестно | | ||/proc/device-tree/wirenboard/gsm/status||статус модема в системе |
| |-
| |
| |Билайн||*111*6*2#||*111*6*1#||неизвестно||неизвестно
| |
| |- | |
| |Теле2||*120#||*120*1#||неизвестно||неизвестно
| |
| |} | | |} |
|
| |
|
| Для надежной отправки SMS на русском надо проверить локаль и установить LC_ALL=ru_RU.utf8
| | ModemManager позволяет получить информацию о модеме. Сделать это можно с помощью утилиты [https://dyn.manpages.debian.org/bullseye/modemmanager/mmcli.1.en.html mmcli], выполнив команду: |
| | <syntaxhighlight lang="bash"> |
| | mmcli -m any |
| | </syntaxhighlight> |
|
| |
|
| === SMS-уведомления ===
| | [[Image:modem-info.png|500px|Информация о модеме от ModemManager]] |
|
| |
|
| Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».
| | Начиная с релиза wb-2304, модему присваивается тег "wbc", и обращаться к нему можно с помощью |
| | | <syntaxhighlight lang="bash"> |
| == Интернет через PPP ==
| | mmcli -m wbc |
| {{YouTube
| |
| | link= https://youtu.be/ZbJUwoifbzE
| |
| | text= Настройка интернета через PPP с помощью 2G-модема
| |
| }}
| |
| === Быстрый выход в интернет ===
| |
| Настройки быстрого подключения сбрасываются после перезагрузки контроллера. Если вам нужен постоянный доступ к интернету — настройте автоматический запуск подключения.
| |
| | |
| В стандартное ПО контроллера входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, то для быстрого подключения к интернету нужно перезапустить модем и подключится с использованием одной из настроек:
| |
| #Перезапустите модем:
| |
| #:<syntaxhighlight lang="bash">
| |
| wb-gsm restart_if_broken
| |
| </syntaxhighlight>
| |
| #Установите соединение, например, для оператора МТС:
| |
| #:<syntaxhighlight lang="bash">
| |
| pon mts
| |
| </syntaxhighlight>
| |
| #:<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>.
| | == Сервис wb-gsm == |
|
| |
|
| Например, изменим порт для провайдера МТС:
| | Сервис <code>wb-gsm</code> предназначен для управления питанием модема, он входит в пакет [https://github.com/wirenboard/wb-utils wb-utils]. |
| # Откройте файл <code>/etc/ppp/peers/mts</code>
| |
| #:<syntaxhighlight lang="bash">
| |
| nano /etc/ppp/peers/mts
| |
| </syntaxhighlight>
| |
| # Закомментируйте старый порт и добавьте новый:
| |
| #:<syntaxhighlight lang="bash">
| |
| #/dev/ttyGSM
| |
| /dev/ttyUSB0
| |
| </syntaxhighlight>
| |
| #:порт можно использовать /dev/ttyUSB[0..2] в зависимости от количества и настроек сервисов работающих с модемом.
| |
| # {{Wbincludes:Save nano}}
| |
|
| |
|
| Порты <code>/dev/ttyUSB0</code>,<code>/dev/ttyUSB1</code>,<code>/dev/ttyUSB2</code> появляются автоматически после включения модема командой <code>wb-gsm on</code>.
| | Питание подаётся на модем при старте сервиса и отключается при остановке. |
|
| |
|
| === Автоматический запуск подключения ===
| | Сервис автоматически запускается при старте контроллера, если модем выбран в настройках модулей расширения. |
| [[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 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>. В большинстве случаев ничего менять в этих файлах не придется.
| | Управлять работой сервиса можно через команды <code>systemctl</code>. Например, для остановки надо выполнить <syntaxhighlight lang="bash">systemctl stop wb-gsm</syntaxhighlight> |
|
| |
|
| Для 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].
| | == Переключение активной sim-карты == |
|
| |
|
| === Резервирование канала связи ===
| | По умолчанию активна Sim1 — в каждый момент времени '''только одна sim-карта может быть активной'''. |
|
| |
|
| Особенности резервирования выхода в интернет описаны в статье [[Wirenboard6:InstallingOnTheRemoteSite#PPP — основной и резервный выход в интернет|Сетевые настройки контроллера]].
| | Для переключения sim-карты используется <code>mmcli</code> с параметром <code>--set-primary-sim-slot</code>. Например: |
| | <syntaxhighlight lang="console"> |
| | # mmcli -m wbc --set-primary-sim-slot=2 |
| | successfully requested primary SIM switch in modem |
| | </syntaxhighlight> |
|
| |
|
| == Интернет с 4G-модемом (LTE) ==
| | ModemManager выполнит переключение sim-карты и переинициализирует модем. |
| {{YouTube
| |
| | link= https://youtu.be/vWNwxB7Lino
| |
| | text= Настройка модема [[WBC-4G]] на контроллере Wiren Board 6.7.2
| |
| }}
| |
|
| |
|
| [[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-комманд для модема в терминале программы [[minicom]]]]
| | == Низкоуровневая работа по uart == |
| [[Image: Minicom-AT-4G-Exit.png |500px|thumb|right| Выход из программы [[minicom]]]]
| |
| === Настройка модема как сетевой карты === | |
| В отличие от 2G- и 3G-модулей, [[WBC-4G]] поддерживает выход в интернет через виртуальную сетевую карту по протоколу RNDIS.
| |
|
| |
|
| '''Настройка с помощью minicom''':
| | Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема. |
| # Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля [[WBC-4G#Конфигурирование | WBC-4G]].
| |
| {{Wbincludes:GSM Modem AT Prepare}}
| |
| # Отправьте из терминала minicom AT-команды для модема:
| |
| #* Настроить автоматическое подключение: <code>AT+DIALMODE=0</code>.
| |
| #* Установить APN: <code>AT+CGDCONT=1,"IP","xxx"</code>, где xxx — точка подключения (APN). Имя точки подключения зависит от оператора, например, у МТС она выглядит так: <code>internet.mts.ru</code>.
| |
| #* Проверить получение IP адреса: <code>AT+CGCONTRDP</code>.
| |
| # Закройте minicom, для этого нажмите на клавиатуре клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, затем клавишу <kbd>X</kbd> и подтвердите выход клавишей <kbd>Enter</kbd>.
| |
|
| |
|
| После этого интернет будет доступен через интерфейс <code>usb0</code>, который можно настроить как обычную сетевую карту.
| | Если необходимо отправлять команды модему, нужно остановить сервис ModemManager: <code>systemctl stop ModemManager</code>. После этого можно работать с портом как описано [[Modem-stretch#Низкоуровневая_работа_по_uart | здесь]]. |
|
| |
|
| '''Настройка с помощью chat''':
| | Если необходимо отправлять команды при активном ModemManager, его надо перезапустить с параметром <code>--debug</code> и использовать mmcli для отправки команд: |
| # Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля [[WBC-4G#Конфигурирование | WBC-4G]].
| | <syntaxhighlight lang="console"> |
| # Подключитесь к контроллеру по [[SSH]].
| | # mmcli -m wbc --command=AT+CGMM |
| # Перезапустите модем командой:
| | response: ''A7600E-HNVW' |
| #: <syntaxhighlight lang="bash">
| |
| wb-gsm restart_if_broken
| |
| </syntaxhighlight> | |
| # Замените в строке ниже APN_INTERNET на точку подключения вашего провайдера, вставьте изменённую строку консоль контроллера и нажмите на клавиатуре <kbd>Enter</kbd>:
| |
| #: <syntaxhighlight lang="bash">
| |
| 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
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Этот способ можно использовать при написании скриптов.
| | ==Диагностика== |
| | Процесс установки соединения в общем случае проходит в несколько этапов. |
| | * включение модема |
| | * регистрация в сотовой сети, домашней или роуминговой |
| | * установка ppp соединения |
|
| |
|
| === Настройка виртуальной сетевой карты ===
| | Для наблюдения можно использовать [[journalctl]] |
| ==== Включение ====
| | <syntaxhighlight lang="console"> |
| После того как мы настроили модем, нужно настроить виртуальную сетевую карту:
| | # journalctl -u ModemManager -f |
| # Откройте файл <code>/etc/network/interfaces</code>:
| |
| #:<syntaxhighlight lang="bash">
| |
| nano /etc/network/interfaces
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| # Добавьте в него строки:
| |
| #:<syntaxhighlight lang="bash">
| |
| auto usb0
| |
| allow-hotplug usb0
| |
| iface usb0 inet dhcp
| |
| pre-up sleep 8
| |
| pre-up wb-gsm restart_if_broken
| |
| pre-up sleep 10
| |
| </syntaxhighlight>
| |
| #: автоматически запустить модем, интерфейс и получать IP-адрес. Задержки ''pre-up sleep'' перед и после включения модема нужны для надёжного старта.
| |
| # Сохраните и закройте файл <code>interfaces</code>. {{Wbincludes:Save nano}}
| |
| # Запустите интерфейс командой:
| |
| #:<syntaxhighlight lang="bash">
| |
| ifup usb0
| |
| </syntaxhighlight>
| |
|
| |
| Настройка завершена, теперь модем по DHCP назначит контроллеру IP-адрес в подсети <code>192.168.0.1</code>, а после перезагрузки контроллера соединение с интернетом восстановится автоматически.
| |
|
| |
|
| При необходимости можно сменить подсеть модема, чтобы он выдавал контроллеру адрес не из подсети <code>192.168.0.ххх</code>, а, например, <code>192.168.100.ххх</code>. Для этого нужно выполнить AT-команду:
| | Нормальный (Успешный) процесс установки соединения выглядит так: |
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="console"> |
| AT+USBNETIP=0,100,111
| | 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> | | </syntaxhighlight> |
| Команда имеет следующий синтаксис:
| |
| <syntaxhighlight lang="bash">
| |
| AT+USBNETIP=<mode>,<tpos>,<dhcps>,<dhcpe>
| |
| </syntaxhighlight>
| |
|
| |
| {| border="1" class="wikitable" style="text-align:left"
| |
| |-
| |
| |<mode> ||
| |
| 0 – частный IP-адрес (по умолчанию, 192.168.0.xxx и т. д.) </br>
| |
| 1 – Публичный IP (ip из сети). Вступает в силу после перезагрузки модема.
| |
| |-
| |
| |<tpos> || Третья позиция IP-адреса
| |
| |-
| |
| |<dhcps> || Начальное значение DHCP
| |
| |-
| |
| |<dhcpe> || Конечное значение DHCP
| |
| |}
| |
|
| |
|
| '''Предупреждение!''' Данная функция может не работать на модемах со старыми прошивками. Узнать, что модем поддерживает эту функцию можно командой
| | Тут этап регистрации в сети оператора отображается |
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="console"> |
| AT+USBNETIP?
| | simple connect state (6/10): register |
| </syntaxhighlight> | | </syntaxhighlight> |
| Функция поддерживается, если получен ответ
| | Если выглядит так: |
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="console"> |
| +USBNETIP: mode
| | 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) |
| OK
| | 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> |
| | то оператор явно отказывает SIM в регистрации в домашней сети. Причины (необслуживаемая карта, etc.) |
|
| |
|
| ==== Отключение ====
| | <syntaxhighlight lang="console"> |
| # Остановите интерфейс командой:
| |
| #:<syntaxhighlight lang="bash">
| |
| ifdown usb0
| |
| </syntaxhighlight>
| |
| # Откройте файл <code>/etc/network/interfaces</code>:
| |
| #:<syntaxhighlight lang="bash">
| |
| nano /etc/network/interfaces
| |
| </syntaxhighlight>
| |
| # Закомментируйте или удалите строки:
| |
| #:<syntaxhighlight lang="bash">
| |
| #auto usb0
| |
| #allow-hotplug usb0
| |
| #iface usb0 inet dhcp
| |
| # pre-up sleep 8
| |
| # pre-up wb-gsm restart_if_broken
| |
| # pre-up sleep 10
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| # Сохраните и закройте файл <code>interfaces</code>. {{Wbincludes:Save nano}}
| |
|
| |
| ==Мультиплексирование==
| |
|
| |
| Модем поддерживает режим мультиплексирования — создания виртуальных портов, через которые можно одновременно работать с модемом.
| |
| Например, через один порт можно открыть сессию PPP для GPRS, а через другой — получать и отправлять SMS, проверять баланс и т.д.
| |
| Подробнее смотрите [[Special:MyLanguage/CMUX|CMUX]]. Этот режим не поддерживается для 2G-модемов.
| |
|
| |
|
| ==Документация на модемы== | | ==Документация на модемы== |
Строка 380: |
Строка 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 |
Строка 390: |
Строка 199: |
| |} | | |} |
|
| |
|
| == GPRS на модемах SIM7000E 2G/NB-IoT == | | == Полезные ссылки == |
| | [https://support.wirenboard.com/t/zvonki-na-nomera-pri-pomoshhi-modemov-wirenboard-chast-3/17034/3 Звонки на номера с помощью модема (от SetPoint)] |
|
| |
|
| Модем SIM7000E 2G/NB-IoT по умолчанию настроен на автоматический выбор GSM- и LTE-сетей. Однако, в сети или с SIM-картой без поддержки NB-IoT модем не регистрируется в сети GSM (GPRS).
| | [https://support.wirenboard.com/t/ne-ponyatno-chem-zanimaetsya-wb-connection-manager/16645/15 получение SMS] |
| Для того, чтобы модем смог зарегистрироваться в сети GSM, необходимо принудительно перевести его в режим GSM only.
| |
| | |
| В терминальном режиме работы с модемом, например, в программе minicom (смотрите раздел [[GSM/GPRS#Отправка AT-команд|Отправка AT-команд]]), введите команду выбора режима:
| |
| <syntaxhighlight lang="bash">
| |
| AT+CNMP=13
| |
| </syntaxhighlight>
| |
| | |
| Возможные варианты значений (команда <code>AT+CNMP=?</code>):
| |
| *<code>2</code> — Automatic,
| |
| *<code>13</code> — GSM Only,
| |
| *<code>38</code> — LTE Only,
| |
| *<code>51</code> — GSM And LTE Only.
| |
| | |
| Установить режим нужно один раз — он запоминается и активен даже после отключения питания.
| |
| | |
| Чтобы вернуться в режим IoT, выполните команду:
| |
| <syntaxhighlight lang="bash">
| |
| AT+CNMP=51
| |
| </syntaxhighlight>
| |