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

623 байта добавлено ,  4 года назад
Подготовка страницы к переводу
(Подготовка страницы к переводу)
Строка 1: Строка 1:
<languages/>
<translate>
В Wiren Board установлен GSM/GPRS-модуль, с помощью которого можно:
В Wiren Board установлен GSM/GPRS-модуль, с помощью которого можно:
* отправлять/принимать SMS
* отправлять/принимать SMS
* подключаться к интернету по GPRS
* подключаться к интернету по GPRS
Полный список возможностей смотрите в  описании модуля:
Полный список возможностей смотрите в  описании модуля:
* 3G модем в Wiren Board 5 и Wiren Board 6: [[SIM5300E]];
* 3G модем в Wiren Board 5 и Wiren Board 6: [[Special:MyLanguage/SIM5300E|SIM5300E]];
* 2G модем в Wiren Board 4, 5 и 6 : [[SIM800]] или [[M660A]];
* 2G модем в Wiren Board 4, 5 и 6 : [[Special:MyLanguage/SIM800|SIM800]] или [[Special:MyLanguage/M660A|M660A]];
* Wiren Board Smart Home 3.5,  Wiren Board 4: [[SIM900R]].
* Wiren Board Smart Home 3.5,  Wiren Board 4: [[Special:MyLanguage/SIM900R|SIM900R]].
 


== Начало работы ==
== Начало работы ==
Подключите антенну и вставьте SIM-карту перед запуском контроллера. Если вы включили контроллер без SIM-карты, после её установки перезапустите модем с помощью утилиты '''wb-gsm''' (смотрите ниже).
Подключите антенну и вставьте SIM-карту перед запуском контроллера. Если вы включили контроллер без SIM-карты, после её установки перезапустите модем с помощью утилиты '''wb-gsm''' (смотрите ниже).
== Модем в Linux ==
== Модем в Linux ==
Внутри контроллера модем подключён к процессору одним из двух способов:
Внутри контроллера модем подключён к процессору одним из двух способов:
* по порту UART (устройство ''/dev/ttyGSM'' (ранее: ''/dev/ttyAPP0'')) - все модемы, включая 3G;
* по порту UART (устройство ''/dev/ttyGSM'' (ранее: ''/dev/ttyAPP0'')) - все модемы, включая 3G;
Строка 16: Строка 22:
Для 3G-связи порт UART не подходит в силу ограничения пропускной способности UАRT-канала, следует использовать ACM-порт /dev/ttyACM0.
Для 3G-связи порт UART не подходит в силу ограничения пропускной способности UАRT-канала, следует использовать ACM-порт /dev/ttyACM0.


Также к процессору подключены управляющие пины модема PWRKEY и RESET, с помощью которых можно выключить или перезагрузить модем. Обычно работать с ними напрямую не требуется - перезагрузка производится утилитой '''wb-gsm''' (смотрите ниже), но также реализован прямой доступ к этим контактам через GPIO (подробнее читайте [[GPIO]], ищите в таблице соответствующие названия).
Также к процессору подключены управляющие пины модема PWRKEY и RESET, с помощью которых можно выключить или перезагрузить модем. Обычно работать с ними напрямую не требуется - перезагрузка производится утилитой '''wb-gsm''' (смотрите ниже), но также реализован прямой доступ к этим контактам через GPIO (подробнее читайте [[Special:MyLanguage/GPIO|GPIO]], ищите в таблице соответствующие названия).
 


=== Включение модуля ===
=== Включение модуля ===
По умолчанию, модем автоматически включается при загрузке контроллера. Потом его можно выключать и перезагружать утилитой '''wb-gsm''' (утилита включена в стандартный образ в пакет '''wb-utils''').
По умолчанию, модем автоматически включается при загрузке контроллера. Потом его можно выключать и перезагружать утилитой '''wb-gsm''' (утилита включена в стандартный образ в пакет '''wb-utils''').
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 26: Строка 34:
$ wb-gsm restart_if_broken #  включение или перезагрузка, если модем не отвечает
$ wb-gsm restart_if_broken #  включение или перезагрузка, если модем не отвечает
</syntaxhighlight>
</syntaxhighlight>


=== Модемы SIM7000E 2G/NB-IoT ===
=== Модемы SIM7000E 2G/NB-IoT ===
Модем SIM7000E 2G/NB-IoT по умолчанию настроен на автоматический выбор GSM- и LTE-сетей. Однако в сети или с SIM-картой без поддержки NB-IoT модем не регистрируется в сети GSM (GPRS).
Модем SIM7000E 2G/NB-IoT по умолчанию настроен на автоматический выбор GSM- и LTE-сетей. Однако в сети или с SIM-картой без поддержки NB-IoT модем не регистрируется в сети GSM (GPRS).
Для того, чтобы модем смог зарегистрироватся в сети GSM, необходимо принудительно перевести его в режим GSM only.
Для того, чтобы модем смог зарегистрироватся в сети GSM, необходимо принудительно перевести его в режим GSM only.


В терминальном режиме работы с модемом, например, в программе minicom (смотрите ниже раздел [[#Низкоуровневая работа с модулем через AT-команды]]), необходимо ввести команду выбора режима:
В терминальном режиме работы с модемом, например, в программе minicom (смотрите ниже раздел [[Special:MyLanguage/#низкоуровневая-работа с модулем через at-команды|#Низкоуровневая работа с модулем через AT-команды]]), необходимо ввести команду выбора режима:
<pre>
<pre>
AT+CNMP=13
AT+CNMP=13
Строка 45: Строка 55:
AT+CNMP=51  
AT+CNMP=51  
</pre>
</pre>


===Отправка и получение SMS и USSD===
===Отправка и получение SMS и USSD===
[[File:Gammu-config.png|300px|thumb|right|''gammu-config'']]
[[File:Gammu-config.png|300px|thumb|right|''gammu-config'']]
Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать).
Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать).
Строка 62: Строка 74:
$ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом
$ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом
</syntaxhighlight>
</syntaxhighlight>
====SMS и USSD на русском====
====SMS и USSD на русском====
SMS и USSD на русском пока работают в ''gammu'' не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит:
SMS и USSD на русском пока работают в ''gammu'' не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит:
{| class="wikitable"
{| class="wikitable"
Строка 77: Строка 91:
|Теле2||*120#||*120*1#||неизвестно||неизвестно
|Теле2||*120#||*120*1#||неизвестно||неизвестно
|}
|}


===Выход в интернет===
===Выход в интернет===


Перед выходом в интернет необходимо, чтобы модем был включен. Для этого вручную или в файле настройке сетевых интерфейсов (см. далее) выполните команду <pre>wb-gsm restart_if_broken</pre>
Перед выходом в интернет необходимо, чтобы модем был включен. Для этого вручную или в файле настройке сетевых интерфейсов (см. далее) выполните команду <pre>wb-gsm restart_if_broken</pre>


==== Быстрая настройка автоматического выхода в интернет ====
==== Быстрая настройка автоматического выхода в интернет ====
В стандартное ПО Wiren Board входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, для запуска подключения выполните команду  
В стандартное ПО Wiren Board входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, для запуска подключения выполните команду  
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 99: Строка 116:
</syntaxhighlight>
</syntaxhighlight>
Но если вы хотите, чтобы подключение само восстанавливалось при обрыве, смотрите полную инструкцию ниже.
Но если вы хотите, чтобы подключение само восстанавливалось при обрыве, смотрите полную инструкцию ниже.


==== Пошаговая инструкция настройки постоянного GPRS-подключения ====
==== Пошаговая инструкция настройки постоянного GPRS-подключения ====
Строка 118: Строка 136:
* Выполните команду <code>ifup ppp0</code> — через 15 секунд интерфейс ppp0 будет доступен.  
* Выполните команду <code>ifup ppp0</code> — через 15 секунд интерфейс ppp0 будет доступен.  
*После перезагрузки интерфейс будет автоматически включаться и восстанавливать соединение после обрыва сотовой связи.
*После перезагрузки интерфейс будет автоматически включаться и восстанавливать соединение после обрыва сотовой связи.


==== Полная инструкция ====
==== Полная инструкция ====
Выход в интернет через GPRS происходит по протоколу PPP с использованием сервиса [https://linux.die.net/man/8/pppd pppd].
Выход в интернет через GPRS происходит по протоколу PPP с использованием сервиса [https://linux.die.net/man/8/pppd pppd].
Для его работы нужно создать конфигурационный файл, соответствующий настройкам вашего оператора. Конфигурационные файлы для операторов "большой тройки" уже есть в [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp стандартном образе]. Файлы хранятся в директориях /etc/ppp/peers и /etc/chatscripts. Для других операторов или специальных APN создайте свои конфигурационные файлы на основе стандартных. Для этого при помощи утилиты '''pppconfig''' (устанавливается командой '''apt-get install pppconfig''') создайте конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Также можете ориентироваться на [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 инструкцию]. Обратите внимание на настройки ''115200 nocrtsct'', которые должны присутствовать в конфигурационных файлах.
Для его работы нужно создать конфигурационный файл, соответствующий настройкам вашего оператора. Конфигурационные файлы для операторов "большой тройки" уже есть в [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp стандартном образе]. Файлы хранятся в директориях /etc/ppp/peers и /etc/chatscripts. Для других операторов или специальных APN создайте свои конфигурационные файлы на основе стандартных. Для этого при помощи утилиты '''pppconfig''' (устанавливается командой '''apt-get install pppconfig''') создайте конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Также можете ориентироваться на [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 инструкцию]. Обратите внимание на настройки ''115200 nocrtsct'', которые должны присутствовать в конфигурационных файлах.
Строка 125: Строка 145:
Если подключение к интернету осуществляется в сети 3G, то в конфигурационном файле для вашего оператора следует заменить UART-порт (/dev/ttyGSM (или /dev/ttyAPP0 в старых моделях контроллеров)) на CDC-ACM-порт (/dev/ttyACM0). Это необходимо, чтобы скорость обмена данными не ограничивалась пропускной способностью UART-порта модема:
Если подключение к интернету осуществляется в сети 3G, то в конфигурационном файле для вашего оператора следует заменить UART-порт (/dev/ttyGSM (или /dev/ttyAPP0 в старых моделях контроллеров)) на CDC-ACM-порт (/dev/ttyACM0). Это необходимо, чтобы скорость обмена данными не ограничивалась пропускной способностью UART-порта модема:


[[Файл:GSM-ACM.png]]
[[Файл:GSM-ACM.png|Файл:GSM-ACM.png]]


   
   
Строка 160: Строка 180:


Для 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 и т.п (подробнее об их назначении и функционировании можно узнать в документе [http://citforum.ru/operating_systems/linux/HOWTO/PPP-HOWTO.shtml PPP HOWTO]).
Для 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 и т.п (подробнее об их назначении и функционировании можно узнать в документе [http://citforum.ru/operating_systems/linux/HOWTO/PPP-HOWTO.shtml PPP HOWTO]).


====Настройки DNS и маршрутизации====
====Настройки DNS и маршрутизации====
'''Важно!''' По умолчанию интерфейс ppp0 при инициализации '''не добавляет нового маршрута по умолчанию''' через ppp, в случае, если такой маршрут существует и настроен, скажем, через eth0. Если это требуется, то изменение таблицы маршрутизации можно выполнять через скрипты в директориях ip-down.d, ip-up.d. В простейшем случае, можно назначать шлюзам по умолчанию разные метрики, чтобы в случае падения одного начинал бы использоваться второй. Однако ситуация, когда интерфейс функционирует нормально, но трафик не проходит на уровне провайдера, делает такой механизм неработоспособным. Смотрите следующий раздел о том, как использовать ppp-соединение в качестве резервного.  
'''Важно!''' По умолчанию интерфейс ppp0 при инициализации '''не добавляет нового маршрута по умолчанию''' через ppp, в случае, если такой маршрут существует и настроен, скажем, через eth0. Если это требуется, то изменение таблицы маршрутизации можно выполнять через скрипты в директориях ip-down.d, ip-up.d. В простейшем случае, можно назначать шлюзам по умолчанию разные метрики, чтобы в случае падения одного начинал бы использоваться второй. Однако ситуация, когда интерфейс функционирует нормально, но трафик не проходит на уровне провайдера, делает такой механизм неработоспособным. Смотрите следующий раздел о том, как использовать ppp-соединение в качестве резервного.  


Строка 169: Строка 191:


Обратите внимание, что при деинициализации ppp0 интерфейса все созданные маршруты, связанные с ним, будут автоматически удалены.
Обратите внимание, что при деинициализации ppp0 интерфейса все созданные маршруты, связанные с ним, будут автоматически удалены.


==== Использование GPRS в качестве резервного канала ====
==== Использование GPRS в качестве резервного канала ====
Самый простой способ, обеспечить отказоустойчивость, это задать два маршрута по умолчанию с разными метриками, например:
Самый простой способ, обеспечить отказоустойчивость, это задать два маршрута по умолчанию с разными метриками, например:
для интерфейса eth0 указать метрику 10:
для интерфейса eth0 указать метрику 10:
Строка 202: Строка 226:
# https://serverfault.com/questions/360131/ubuntu-failover-from-ethernet-to-adsl-modem-to-usb-3g-dongle?rq=1
# https://serverfault.com/questions/360131/ubuntu-failover-from-ethernet-to-adsl-modem-to-usb-3g-dongle?rq=1


</translate>
<span id="низкоуровневая-работа с модулем через at-команды"></span>
<translate>
=== Низкоуровневая работа с модулем через AT-команды ===
=== Низкоуровневая работа с модулем через AT-команды ===
Ознакомьтесь с инструкцией - [[Работа с последовательным портом из Linux]].
 
Ознакомьтесь с инструкцией - [[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]].
Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''.
Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''.


Строка 211: Строка 240:
  $ minicom -s /dev/ttyGSM
  $ minicom -s /dev/ttyGSM
</pre>
</pre>
[[Файл:Minicom_settings.png|Настройки Minicom]]
[[Special:MyLanguage/Файл:Minicom_settings.png|Настройки Minicom]]


* Зайти в настройки (нажать ''Ctrl+A'', затем ''O''), выбрать пункт ''Serial port setup'', там установить порт ''/dev/ttyGSM'', скорость и чётность - ''115200, 8N1'', ''Hardware flow control - No'', ''Software flow control - No''
* Зайти в настройки (нажать ''Ctrl+A'', затем ''O''), выбрать пункт ''Serial port setup'', там установить порт ''/dev/ttyGSM'', скорость и чётность - ''115200, 8N1'', ''Hardware flow control - No'', ''Software flow control - No''
* Сохранить настройки: ''Save setup as _dev_ttyGSM''
* Сохранить настройки: ''Save setup as _dev_ttyGSM''
* Далее запускать как '''minicom /dev/ttyGSM''' (все параметры будут сразу браться из профиля с названием ''/dev/ttyGSM'', который мы ранее создали)
* Далее запускать как '''minicom /dev/ttyGSM''' (все параметры будут сразу браться из профиля с названием ''/dev/ttyGSM'', который мы ранее создали)
* Первой вашей командой должна стать ''AAAAAAAAAT'' - с её помощью модуль распознает скорость, с которой мы к нему обращаемся (смотрите [[SIM900R]])
* Первой вашей командой должна стать ''AAAAAAAAAT'' - с её помощью модуль распознает скорость, с которой мы к нему обращаемся (смотрите [[Special:MyLanguage/SIM900R|SIM900R]])
* Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK'''
* Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK'''


==== Примеры команд ====
==== Примеры команд ====
(некоторые команды могут различаться в разных модулях, смотрите подробнее в документации на модуль)
(некоторые команды могут различаться в разных модулях, смотрите подробнее в документации на модуль)


Строка 256: Строка 287:
OK
OK
</pre>
</pre>


===RTC===
===RTC===
===Мультиплексирование===
===Мультиплексирование===
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.
Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.
Подробнее смотрите [[CMUX]]. Этот режим не поддерживается для 2G-модемов.
Подробнее смотрите [[Special:MyLanguage/CMUX|CMUX]]. Этот режим не поддерживается для 2G-модемов.
</translate>
12 063

правки