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

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


В Debian Bullseye для управления 4G-модемами используется сервис [https://www.freedesktop.org/software/ModemManager/api/latest ModemManager ]. Остальные модемы управляются аналогично тому как это [[GSM/GPRS | делалось в Debian Stretch]].
В Debian Bullseye для управления 4G-модемами используется сервис [https://www.freedesktop.org/software/ModemManager/api/latest ModemManager ]. Остальные модемы управляются аналогично тому как это [[GSM/GPRS | делалось в Debian Stretch]]. Описанное ниже относится к работе с использованием ModemManager.


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


Переключить модем на другую sim-карту можно с помощью gpio процессора. Узнать его номер можно двумя способами:
Для переключения sim-карты используется <code>mmcli</code> с параметром <code>--set-primary-sim-slot</code>. Например:
*выполнить команду <syntaxhighlight lang="bash">echo $WB_GPIO_GSM_SIMSELECT</syntaxhighlight>
*найти ''SIM Slot Select gpio'' в [[Wiren_Board_6.1:Список_GPIO#Ножки для внутреннего использования|таблице gpio]] контроллера.


По умолчанию, этот gpio уже экспортирован в sysfs, поэтому, для переключения активной sim-карты с 1 на 2, нужно выполнить команду (в примере, номер gpio для переключения sim-карт - 88): <syntaxhighlight lang="bash">echo 1 > /sys/class/gpio/gpio88/value</syntaxhighlight> Соответственно, для переключения обратно на sim1, нужно записать 0.
ModemManager выполнит переключение sim-карты и переинициализирует модем.
Подробнее о работе с gpio можно узнать из статьи [[Работа_с_GPIO#Интерфейс sysfs в Linux|Работа_с_GPIO]].
 
Для того чтобы новая sim-карта стала активной, нужно '''выполнить следующие AT-команды''' (см. [[#Отправка AT-команд|раздел о работе с AT-командами]]):
<syntaxhighlight lang="bash">
AT+CFUN=0
AT+CFUN=1
</syntaxhighlight>


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


Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема. Все модемы подключаются к порту <code>/dev/ttyGSM</code>. 3G модемы, помимо этого, подключаются к портам ''/dev/ttyACM'''X''''' (порты создаются usb-драйвером <code>cdc_acm</code>).
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема.
 
Если необходимо отправлять команды модему нужно остановить сервис ModemManager
=== Подключение в linux ===
<code>systemctl stop ModemManager</code>
 
*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">
[ 6102.978383] usb 2-1.2: New USB device found, idVendor=1e0e, idProduct=0020
[ 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>
Соответственно, в данном случае 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]]:
После этого можно работать с портом как описано здесь, либо запустить ModemNanager с параметром <code>--debug</code> и использовать mmcli для отправки команд
{{Wbincludes:GSM Modem AT Prepare}}
Модем готов к передаче AT-команд.


Чтобы закрыть minicom, нажмите на клавиатуре клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, затем клавишу <kbd>X</kbd> и подтвердите выход клавишей <kbd>Enter</kbd>.
Отправка команд через mmcli


== Работа с sms и ussd ==
== Работа с sms и ussd ==


Работать с sms и ussd проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты <code>gnokii</code>, которую перестали развивать).
ModemManager реализует работу с sms и ussd. проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты <code>gnokii</code>, которую перестали развивать).


Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция.
Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция.
wb_editors
97

правок