CMUX: различия между версиями

Материал из Wiren Board
(не показано 6 промежуточных версий 3 участников)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
<b> Работа модема в режиме CMUX является экспериментальной функцией и может не работать "из коробки". Работоспособность не гарантируется. </b>
<!--T:2-->
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Например через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.
Например через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.


<!--T:3-->
Для работы необходима поддержка GSM line discipline в ядре (включена как модуль в стандартной прошивке).
Для работы необходима поддержка GSM line discipline в ядре (включена как модуль в стандартной прошивке).
Специальный демон, <b>cmux</b> отправляет модем в режим CMUX, после чего создаёт четыре виртуальных порта,  /dev/ttyGSM[1-4] .
Специальный демон, <b>cmux</b> отправляет модем в режим CMUX, после чего создаёт четыре виртуальных порта,  /dev/ttyGSM[1-4] .
<b>Закрытие демона cmux до закрытия всех виртуальных портов приведёт к kernel panic!</b>
<b>Закрытие демона cmux до закрытия всех виртуальных портов приведёт к kernel panic!</b>


===Демон cmux=== <!--T:4-->
<!--T:5-->
[https://github.com/contactless/cmux/ Репозитарий]


<!--T:6-->
===Демон cmux===
Оригинальный автор: [https://github.com/Rtone/cmux]
Репозитарий: https://github.com/contactless/cmux/
Оригинальный автор: https://github.com/Rtone/cmux


<!--T:7-->
Демон установлен по-умолчанию как  "/opt/utils/gsm/cmux" в прошивках от 27.10.2013 и новее.
Демон установлен по-умолчанию как  "/usr/bin/cmux", доступен в пакете cmux.
Скачать бинарник демона можно [https://github.com/contactless/cmux/releases/tag/0.3 здесь]
Скачать бинарник демона можно [https://github.com/contactless/cmux/releases/tag/0.3 здесь]


===Пример работы=== <!--T:8-->
===Пример работы===


<!--T:9-->
Включаем модем:
Включаем модем:
<pre>
<pre>
root@wirenboard:~# wb-gsm on
root@wirenboard:~# /opt/utils/gsm/gsm.sh toggle
</pre>
</pre>


<!--T:10-->
Запускаем демон cmux:
Запускаем демон cmux:
<pre>
<pre>
root@wirenboard:~# cmux
root@wirenboard:~# /opt/utils/gsm/cmux
SERIAL_PORT = /dev/ttyAPP0
SERIAL_PORT = /dev/ttyAPP0
AAAT    : AAAT  OK   
AAAT    : AAAT  OK   
Строка 51: Строка 38:
</pre>
</pre>


<!--T:11-->
Теперь общение с модемом можно производить в любом из каналов /dev/ttyGSMx
Теперь общение с модемом можно производить в любом из каналов /dev/ttyGSMx
</translate>

Версия 10:14, 20 февраля 2014

Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом. Например через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.

Для работы необходима поддержка GSM line discipline в ядре (включена как модуль в стандартной прошивке). Специальный демон, cmux отправляет модем в режим CMUX, после чего создаёт четыре виртуальных порта, /dev/ttyGSM[1-4] . Закрытие демона cmux до закрытия всех виртуальных портов приведёт к kernel panic!


Демон cmux

Репозитарий: https://github.com/contactless/cmux/ Оригинальный автор: https://github.com/Rtone/cmux

Демон установлен по-умолчанию как "/opt/utils/gsm/cmux" в прошивках от 27.10.2013 и новее. Скачать бинарник демона можно здесь

Пример работы

Включаем модем:

root@wirenboard:~# /opt/utils/gsm/gsm.sh toggle

Запускаем демон cmux:

root@wirenboard:~# /opt/utils/gsm/cmux
SERIAL_PORT = /dev/ttyAPP0
AAAT    : AAAT   OK  
AT+IFC=2: AT+IFC=2,2   OK  
AT+GMM  : AT+GMM   SIMCOM_SIM900R    OK  
AT      : AT   OK  
AT+CMUX=: AT+CMUX=0   OK  
Line dicipline set
Created /dev/ttyGSM1
Created /dev/ttyGSM2
Created /dev/ttyGSM3
Created /dev/ttyGSM4
Going to background

Теперь общение с модемом можно производить в любом из каналов /dev/ttyGSMx