|
|
Строка 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>, которую перестали развивать). |
|
| |
|
| Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция. | | Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция. |