Перейти к содержанию

Навигация

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

Нет описания правки
 
(не показаны 24 промежуточные версии 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Настройка 2G/3G/NB-IOT модемов в контроллере Wiren Board, а также 4G-модемов на Debian Stretch }}
== Общая информация ==
== Общая информация ==
{{note|info|Эта статья описывает настройку 2G/3G/NB-IOT модемов в контроллерах Wiren Board 5...7, а также 4G(LTE)-модема в релизе [[wb-2207]] и старее. Для настройки 4G(LTE)-модема в релизе [[wb-2304]] и новее, используйте эту [[Modem-bullseye|инструкцию]].}}
В контроллеры Wiren Board могут быть установлены 2G/3G/4G(LTE)/NB-IOT модемы — зависит от комплектации.  
В контроллеры Wiren Board могут быть установлены 2G/3G/4G(LTE)/NB-IOT модемы — зависит от комплектации.  


Строка 90: Строка 92:
*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]).
*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/ttyACM'''X''''' (в случае 3G-модема) появляются автоматически после подачи питания на модем. Обычно, порты 3G-модема — это <code>/dev/ttyACM0-6</code>, однако '''точно''' определить, к каким портам модем подключен по USB можно, выполнив команды: <syntaxhighlight lang="bash">wb-gsm restart_if_broken; dmesg | tail</syntaxhighlight>.  
*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>.  


Примерный вывод команды:
Примерный вывод команды:
Строка 164: Строка 166:
|}
|}


Для надежной отправики SMS на русском надо проверить локаль и установить LC_ALL=ru_RU.utf8
Для надежной отправки SMS на русском надо проверить локаль и установить LC_ALL=ru_RU.utf8


=== SMS-уведомления ===
=== SMS-уведомления ===
Строка 193: Строка 195:
</syntaxhighlight>
</syntaxhighlight>


Если на контроллере установлен модуль 3G- или 4G-модем, то для увеличения пропускной способности соединения, демону pppd нужно указать другой порт. Для этого в файле <code>/etc/ppp/peers/<ваш_провайдер_связи></code> замените устройство <code>/dev/ttyGSM</code> на <code>/dev/ttyACM0</code>.
Если на контроллере установлен модуль 3G- или 4G-модем, то для увеличения пропускной способности соединения, демону pppd нужно указать другой порт. Для этого в файле <code>/etc/ppp/peers/<ваш_провайдер_связи></code> замените устройство <code>/dev/ttyGSM</code> на (в зависимости от модема) <code>/dev/ttyUSB0</code> или <code>/dev/ttyACM0</code>.


Например, изменим порт для провайдера МТС:
Например, изменим порт для провайдера МТС:
# Откройте файл <code>/etc/ppp/peers/mts</code>
# Откройте файл <code>/etc/ppp/peers/mts</code>
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /etc/ppp/peers/mts
nano /etc/ppp/peers/mts
</syntaxhighlight>
</syntaxhighlight>
# Закомментируйте старый порт и добавьте новый:
# Закомментируйте старый порт и добавьте новый:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
#/dev/ttyGSM
#/dev/ttyGSM
/dev/ttyACM0
/dev/ttyUSB0
</syntaxhighlight>
</syntaxhighlight>
# Сохраните изменения и закройте файл.
#:порт можно использовать /dev/ttyUSB[0..2] в зависимости от количества и настроек сервисов работающих с модемом.
# {{Wbincludes:Save nano}}


Порт <code>/dev/ttyACM0</code> появляется автоматически после включения модема командой <code>wb-gsm on</code>.
Порты <code>/dev/ttyUSB0</code>,<code>/dev/ttyUSB1</code>,<code>/dev/ttyUSB2</code> появляются автоматически после включения модема командой <code>wb-gsm on</code>.


=== Автоматический запуск подключения ===
=== Автоматический запуск подключения ===
Строка 215: Строка 218:
#Откройте файл <code>/etc/network/interfaces</code> для редактирования:
#Откройте файл <code>/etc/network/interfaces</code> для редактирования:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /etc/network/interfaces
nano /etc/network/interfaces
</syntaxhighlight>
</syntaxhighlight>
#Раскомментируйте или отредактируйте следующие строки:
#Раскомментируйте или отредактируйте следующие строки:
Строка 238: Строка 241:


Для 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].
Для 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].
=== Автоматическое восстановление подключения ===
Скрипт позволяет восстановить интернет-соединение после сбоя. Пример автоматического запуска скрипта можете посмотреть в [[Wi-Fi#Автоматическое переподключение при проблемах с соединением |статье про WiFi]]
<syntaxhighlight lang="bash">
#!/bin/sh
echo --------------- --------------- --------------- --
echo WAN CONTROLL RESTART
echo --------------- --------------- --------------- --
PINGRESORCE1="ya.ru"
PINGRESORCE2="google.com"
if (! ping -q -c3 ${PINGRESORCE1} > /dev/null 2>&1)
then
if (! ping -q -c3 ${PINGRESORCE2} > /dev/null 2>&1)
then
wb-gsm restart_if_broken
else
echo 'internet ok'
fi
else
echo 'internet ok'
fi
</syntaxhighlight>


=== Резервирование канала связи ===
=== Резервирование канала связи ===
Строка 303: Строка 283:


=== Настройка виртуальной сетевой карты ===
=== Настройка виртуальной сетевой карты ===
==== Включение ====
После того как мы настроили модем, нужно настроить виртуальную сетевую карту:
После того как мы настроили модем, нужно настроить виртуальную сетевую карту:
# Откройте файл <code>/etc/network/interfaces</code>:
# Откройте файл <code>/etc/network/interfaces</code>:
Строка 313: Строка 294:
allow-hotplug usb0
allow-hotplug usb0
iface usb0 inet dhcp
iface usb0 inet dhcp
  pre-up sleep 8
   pre-up wb-gsm restart_if_broken   
   pre-up wb-gsm restart_if_broken   
   pre-up sleep 10
   pre-up sleep 10
</syntaxhighlight>
</syntaxhighlight>
#: автоматически запускать модем, интерфейс и получать IP-адрес.
#: автоматически запустить модем, интерфейс и получать IP-адрес. Задержки ''pre-up sleep'' перед и после включения модема нужны для надёжного старта.
# Сохраните и закройте файл <code>interfaces</code>, для этого нажмите клавиши <kbd>Ctrl</kbd>+<kbd>O</kbd>, затем <kbd>Enter</kbd> и <kbd>Ctrl</kbd>+<kbd>X</kbd>.
# Сохраните и закройте файл <code>interfaces</code>. {{Wbincludes:Save nano}}
# Запустите интерфейс командой:
# Запустите интерфейс командой:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
Строка 324: Строка 306:


Настройка завершена, теперь модем по DHCP назначит контроллеру IP-адрес в подсети <code>192.168.0.1</code>, а после перезагрузки контроллера соединение с интернетом восстановится автоматически.
Настройка завершена, теперь модем по DHCP назначит контроллеру IP-адрес в подсети <code>192.168.0.1</code>, а после перезагрузки контроллера соединение с интернетом восстановится автоматически.
При необходимости можно сменить подсеть модема, чтобы он выдавал контроллеру адрес не из подсети <code>192.168.0.ххх</code>, а, например, <code>192.168.100.ххх</code>. Для этого нужно выполнить AT-команду:
<syntaxhighlight lang="bash">
AT+USBNETIP=0,100,111
</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">
AT+USBNETIP?
</syntaxhighlight>
Функция поддерживается, если получен ответ
<syntaxhighlight lang="bash">
+USBNETIP: mode
OK
</syntaxhighlight>
==== Отключение ====
# Остановите интерфейс командой:
#:<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>
# Сохраните и закройте файл <code>interfaces</code>. {{Wbincludes:Save nano}}


==Мультиплексирование==  
==Мультиплексирование==