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

Нет описания правки
 
(не показано 65 промежуточных версий 6 участников)
Строка 1: Строка 1:
В контроллеры Wiren Board могут быть установлены 2G/3G/4G/NB-IOT модемы — зависит от комплектации. С помощью модемов можно:
{{DISPLAYTITLE: Настройка 2G/3G/NB-IOT модемов в контроллере Wiren Board, а также 4G-модемов на Debian Stretch }}
* отправлять и принимать SMS,
== Общая информация ==
* подключаться к интернету.
{{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 модемы — зависит от комплектации.  


= Общее для всех модемов =
С помощью модемов можно:
* [[#Работа с sms и ussd | отправлять и принимать SMS]],
* подключаться к интернету по [[#Интернет через PPP|протоколу PPP]] для 2G- и 3G-модемов, а также настраивать 4G-модем как [[#Интернет с 4G-модемом (LTE)|сетевую карту]] с выходом в интернет.


Модемы подключаются к процессору по uart и usb, исключение — модемы 2G.
Модемы подключаются к процессору по uart и usb, исключение — модемы 2G.
Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе «[[#Низкоуровневая работа по uart|Низкоуровневая работа по uart]]».
Подробнее о подключении модемов и низкоуровневом взаимодействии с ними можно почитать в разделе [[#Низкоуровневая работа по uart|Низкоуровневая работа по uart]].


Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio. Включение и отключение модема рекомендуется производить с помощью утилиты [[#Утилита wb-gsm|wb-gsm]].
Управление питанием и переключением активных sim-карт (если их две) производится с помощью gpio, процесс описан в разделе [[#Переключение активной sim-карты | Переключение активной sim-карты]].  
 
Включение и отключение модема рекомендуем делать с помощью утилиты [[#Утилита wb-gsm|wb-gsm]].


== Получение информации о модеме ==
== Получение информации о модеме ==
Строка 15: Строка 20:


В контроллерах версии 6.7 модем устанавливается модулем расширения.
В контроллерах версии 6.7 модем устанавливается модулем расширения.
{{Wbincludes:Configuration WBC}}  
{{Wbincludes:Configuration WBC}}  


Строка 35: Строка 39:


== Включение и начало работы ==
== Включение и начало работы ==
{{Wbincludes:Configuration GSM Modem First Start}}
Чтобы начать работу с модемом, нужно:
#[[SIM_card_installation | Вставьте sim-карту]].
#Подключите антенну.
#Перезапустите модем, выполнив команду
#:<syntaxhighlight lang="bash">
wb-gsm restart_if_broken
</syntaxhighlight>
 
После каждой смены sim-карты необходимо перезапускать модем.


== Утилита wb-gsm ==  
== Утилита wb-gsm ==  


Для упрощения работы с модемами была написана утилита <code>wb-gsm</code> (исходный код доступен в нашем [https://github.com/wirenboard/wb-utils/tree/master/gsm репозитории на Github]). Утилита позволяет:
Для упрощения работы с модемами была написана утилита <code>wb-gsm</code>, которая входит в пакет [https://github.com/wirenboard/wb-utils wb-utils].
*управлять питанием модемов, команды <code>on, off, restart_if_broken</code>;
*настраивать baudrate связи по uart, команды <code>init_baud, set_speed</code>;
*получать imei, команда <code>imei</code>.


Все команды wb-gsm можно посмотреть [https://github.com/wirenboard/wb-utils/blob/b3d3d50d29578472dfebc97bde77714e097d61d6/gsm/wb-gsm в репозитории на Github].
Утилита <code>wb-gsm</code> входит в состав пакета <code>wb-utils</code>, который предустановлен на все контроллеры Wiren Board.


Пример использования утилиты <code>wb-gsm</code> для получения imei модема:
С помощью <code>wb-gsm</code> вы сможете:
<code>DEBUG=true wb-gsm imei DEBUG=true</code> перед командой выводит дополнительную отладочную информацию.
* управлять питанием модемов, команды <code>on, off, restart_if_broken</code>;
* настраивать baudrate связи по uart, команды <code>init_baud, set_speed</code>;
* получать imei, команда <code>imei</code>.


Утилита <code>wb-gsm</code> входит в состав пакета <code>wb-utils</code> и есть в стандартном образе ПО контроллера.
Все команды wb-gsm можно посмотреть в репозитории на Github по ссылке в начале раздела.
 
Пример использования утилиты <code>wb-gsm</code> для получения imei модема, флаг <code>DEBUG=true</code> — выводить отладочную информацию:
<syntaxhighlight lang="bash">
DEBUG=true wb-gsm imei
</syntaxhighlight>


== Переключение активной sim-карты ==
== Переключение активной sim-карты ==
Строка 60: Строка 76:


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


Для того, чтобы новая sim-карта стала активной, нужно '''выполнить следующие AT-команды''' (см. [[#Отправка AT-команд|раздел о работе с AT-командами]]):
Для того чтобы новая sim-карта стала активной, нужно '''выполнить следующие AT-команды''' (см. [[#Отправка AT-команд|раздел о работе с AT-командами]]):
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
AT+CFUN=0
AT+CFUN=0
Строка 76: Строка 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 off; wb-gsm on; 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>.  


Примерный вывод команды:
Примерный вывод команды:
Строка 96: Строка 112:


=== Отправка AT-команд ===
=== Отправка AT-команд ===
[[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-комманд для модема в терминале программы [[minicom]]]]


Для всех модемов рабочими настройками связи являются: 115200-8-N-1, '''no hardware flow control''' (аппаратный контроль потока должен быть обязательно выключен). Некоторые модели модемов (например, sim5300e, sim7000e) могут сами определять baudrate, установленный в данный момент. Для этого нужно послать в последовательный порт несколько символов (например, "AAAAAAAAAAT").
{{Wbincludes:GSM Modem Default Connection Parameters}}


Подробнее в статье «[[Работа с последовательным портом из Linux]]».
Для работы в интерактивном режиме рекомендуем использовать утилиту [[minicom]]:
{{Wbincludes:GSM Modem AT Prepare}}
Модем готов к передаче AT-команд.


Для работы в интерактивном режиме рекомендуем использовать утилиту <code>minicom</code>:
Чтобы закрыть minicom, нажмите на клавиатуре клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, затем клавишу <kbd>X</kbd> и подтвердите выход клавишей <kbd>Enter</kbd>.
* запускаем '''minicom''' с ключём, создающим профиль работы с портом (скорость передачи данных, чётность, и т.д.):
<syntaxhighlight lang="bash">
minicom -s /dev/ttyGSM
</syntaxhighlight>
[[Файл:Minicom settings.png |500px|thumb|right| Настройки Minicom]]
 
* Зайти в настройки minicom (нажать ''Ctrl+A'', затем ''O''), выбрать пункт '''Serial port setup''', там установить нужный порт <code>/dev/ttyGSM</code> (в нашем случае), скорость и чётность - <code>115200-8-N-1</code>, <code>Hardware flow control: No</code>, <code>Software flow control: No</code>
* Сохранить настройки: <code>Save setup as _dev_ttyGSM</code>.
* Далее запускать как <code>minicom /dev/ttyGSM</code> (все параметры будут сразу браться из профиля с названием ''/dev/ttyGSM'', который мы ранее создали).
* Первой вашей командой должна стать <code>AAAAAAAAAT</code> — с её помощью модуль распознает скорость, с которой мы к нему обращаемся.
* Второй командой выполните просто <code>AT</code>. Вам должен прийти ответ <code>OK</code>.


== Работа с sms и ussd ==
== Работа с sms и ussd ==
Строка 132: Строка 140:


=== Примеры команд gammu ===
=== Примеры команд gammu ===
Перед использованием утилиты убедитесь, что соединение с интернетом по протоколу ppp завершено (см. раздел [[#Интернет через PPP | Интернет через PPP]])


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 156: Строка 165:
|Теле2||*120#||*120*1#||неизвестно||неизвестно
|Теле2||*120#||*120*1#||неизвестно||неизвестно
|}
|}
Для надежной отправки SMS на русском надо проверить локаль и установить LC_ALL=ru_RU.utf8


=== SMS-уведомления ===
=== SMS-уведомления ===
Строка 161: Строка 172:
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье «[[Notification_module#Настройка модуля уведомлений| Модуль уведомлений]]».


== Интернет через ppp ==
== Интернет через PPP ==
{{YouTube
| link= https://youtu.be/ZbJUwoifbzE
| text= Настройка интернета через PPP с помощью 2G-модема
}}
=== Быстрый выход в интернет ===
Настройки быстрого подключения сбрасываются после перезагрузки контроллера. Если вам нужен постоянный доступ к интернету — настройте автоматический запуск подключения.


Перед выходом в интернет необходимо, чтобы модем был включен. Для этого вручную или в файле настройки сетевых интерфейсов (см. далее) выполните команду <syntaxhighlight lang="bash">wb-gsm restart_if_broken</syntaxhighlight>
В стандартное ПО контроллера входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, то для быстрого подключения к интернету нужно перезапустить модем и подключится с использованием одной из настроек:
#Перезапустите модем:
#:<syntaxhighlight lang="bash">
wb-gsm restart_if_broken
</syntaxhighlight>
#Установите соединение, например, для оператора МТС:
#:<syntaxhighlight lang="bash">
pon mts
</syntaxhighlight>
#:<code>mts</code> можно заменить на <code>megafon</code> или <code>beeline</code> — зависит от вашего оператора связи.
# Если соединение больше не нужно — вы можете его завершить командой:
#:<syntaxhighlight lang="bash">
poff mts
</syntaxhighlight>


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


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


Если на контроллере установлен 3G-модем, то для увеличения пропускной способности соединения, демону pppd нужно указать другой порт: в файле <code>/etc/ppp/peers/ваш_провайдер_сотовой_связи</code> (в примере — МТС) замените устройство <code>/dev/ttyGSM</code> на <code>/dev/ttyACM0</code>
Порты <code>/dev/ttyUSB0</code>,<code>/dev/ttyUSB1</code>,<code>/dev/ttyUSB2</code> появляются автоматически после включения модема командой <code>wb-gsm on</code>.
[[Файл:GSM-ACM.png|thumb|right|Файл /etc/ppp/peers/<ваш_провайдер_связи>]]


[[File:Etc-network-interfaces.png|300px|thumb|right|Файл ''/etc/network/interfaces'', автоматически запускающий подключение к МТС]]
=== Автоматический запуск подключения ===
Чтобы подключение запускалось автоматически и перезапускалось при обрыве, откройте файл <code>/etc/network/interfaces</code> и раскомментируйте или отредактируйте следующие строки:
[[Image:Etc-network-interfaces.png|300px|thumb|right|Файл ''/etc/network/interfaces'', автоматически запускающий подключение к МТС]]
<syntaxhighlight lang="bash">
 
Чтобы подключение запускалось автоматически:
#Откройте файл <code>/etc/network/interfaces</code> для редактирования:
#:<syntaxhighlight lang="bash">
nano /etc/network/interfaces
</syntaxhighlight>
#Раскомментируйте или отредактируйте следующие строки:
#:<syntaxhighlight lang="bash">
auto ppp0
auto ppp0
iface ppp0 inet ppp
iface ppp0 inet ppp
   provider mts # можно заменить mts на megafon или beeline
   provider mts # можно заменить mts на megafon или beeline
   #рестартуем модем, если он завис
   #перезапускаем модем, если он завис
   pre-up wb-gsm restart_if_broken   
   pre-up wb-gsm restart_if_broken   
   #Затем ждем, пока он загрузится и найдет сеть.
   #Ждем, пока он загрузится и найдет сеть.
   pre-up sleep 10
   pre-up sleep 10
</syntaxhighlight>
# Сохраните изменения и закройте файл.
# Теперь запустите интерфейс <code>ppp0</code> командой:
#:<syntaxhighlight lang="bash">
ifup ppp0
</syntaxhighlight>
#:через 10­-15 секунд интерфейс <code>ppp0</code> будет доступен.
# Настройка завершена, теперь при перезагрузке контроллера подключение к интернету восстановится автоматически.
Параметры протокола пакетной передачи данных и номера для соединения для каждого провайдера хранятся в директории <code>/etc/chatscripts</code>. В большинстве случаев ничего менять в этих файлах не придется.
Для 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].
=== Резервирование канала связи ===
Особенности резервирования выхода в интернет описаны в статье [[Wirenboard6:InstallingOnTheRemoteSite#PPP — основной и резервный выход в интернет|Сетевые настройки контроллера]].
== Интернет с 4G-модемом (LTE) ==
{{YouTube
| link= https://youtu.be/vWNwxB7Lino
| text= Настройка модема [[WBC-4G]] на контроллере Wiren Board 6.7.2
}}
[[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-комманд для модема в терминале программы [[minicom]]]]
[[Image: Minicom-AT-4G-Exit.png |500px|thumb|right| Выход из программы [[minicom]]]]
=== Настройка модема как сетевой карты ===
В отличие от 2G- и 3G-модулей, [[WBC-4G]] поддерживает выход в интернет через виртуальную сетевую карту по протоколу RNDIS.
'''Настройка с помощью minicom''':
# Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля [[WBC-4G#Конфигурирование | WBC-4G]].
{{Wbincludes:GSM Modem AT Prepare}}
# Отправьте из терминала minicom AT-команды для модема:
#* Настроить автоматическое подключение: <code>AT+DIALMODE=0</code>.
#* Установить APN: <code>AT+CGDCONT=1,"IP","xxx"</code>, где xxx — точка подключения (APN). Имя точки подключения зависит от оператора, например, у МТС она выглядит так: <code>internet.mts.ru</code>.
#* Проверить получение IP адреса: <code>AT+CGCONTRDP</code>.
# Закройте minicom, для этого нажмите на клавиатуре клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, затем клавишу <kbd>X</kbd> и подтвердите выход клавишей <kbd>Enter</kbd>.
После этого интернет будет доступен через интерфейс <code>usb0</code>, который можно настроить как обычную сетевую карту.
'''Настройка с помощью chat''':
# Убедитесь, что модем правильно сконфигурирован. Подробнее смотрите на странице модуля [[WBC-4G#Конфигурирование | WBC-4G]].
# Подключитесь к контроллеру по [[SSH]].
# Перезапустите модем командой:
#: <syntaxhighlight lang="bash">
wb-gsm restart_if_broken
</syntaxhighlight>
# Замените в строке ниже APN_INTERNET на точку подключения вашего провайдера, вставьте изменённую строку консоль контроллера и нажмите на клавиатуре <kbd>Enter</kbd>:
#: <syntaxhighlight lang="bash">
PORT=/dev/ttyGSM; /usr/sbin/chat -s TIMEOUT 20 ABORT "ERROR" ECHO ON "" "AAAAAAAAAAAAAT" OK "AT+CMGF=1" OK "AT+DIALMODE=0" OK "AT+CGDCONT=1,\"IP\",\"APN_INTERNET\"" OK  "AT+CGCONTRDP" "OK"  > $PORT < $PORT
</syntaxhighlight>
</syntaxhighlight>


Выполните команду <code>ifup ppp0</code> — через 10-15 секунд интерфейс <code>ppp0</code> будет доступен.  
Этот способ можно использовать при написании скриптов.
После перезагрузки интерфейс будет автоматически включаться и восстанавливать соединение после обрыва сотовой связи


Для 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]).
=== Настройка виртуальной сетевой карты ===
==== Включение ====
После того как мы настроили модем, нужно настроить виртуальную сетевую карту:
# Откройте файл <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>
#: автоматически запустить модем, интерфейс и получать IP-адрес. Задержки ''pre-up sleep'' перед и после включения модема нужны для надёжного старта.
# Сохраните и закройте файл <code>interfaces</code>. {{Wbincludes:Save nano}}
# Запустите интерфейс командой:
#:<syntaxhighlight lang="bash">
ifup usb0
</syntaxhighlight>


=== Маршрутизация и настройка <u>''резервного''</u> подключения через ppp ===
Настройка завершена, теперь модем по DHCP назначит контроллеру IP-адрес в подсети <code>192.168.0.1</code>, а после перезагрузки контроллера соединение с интернетом восстановится автоматически.


'''Важно!''' По умолчанию интерфейс <code>ppp0</code> при инициализации '''не добавляет нового маршрута по умолчанию''' через ppp, в случае, если такой маршрут существует и настроен, например, через eth0. Если это требуется, то изменение таблицы маршрутизации можно выполнять через скрипты в директориях <code>ip-down.d</code>, <code>ip-up.d</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>


Подробнее в статье [[Wirenboard6:InstallingOnTheRemoteSite#PPP — основной и резервный выход в интернет|Сетевые настройки контроллера]].
{| 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
|}


Для более сложных случаев, когда физическое соединение на интерфейсе <code>eth0</code> не пропадает, рекомендуется применять скрипты, которые на основе доступности какого-либо сетевого узла в интернете через один из интерфейсов переключают маршрут по умолчанию. В интернете предлагается множество решений решений такого рода задачи, можно выбрать одно из них.
'''Предупреждение!''' Данная функция может не работать на модемах со старыми прошивками. Узнать, что модем поддерживает эту функцию можно командой
<syntaxhighlight lang="bash">
AT+USBNETIP?
</syntaxhighlight>
Функция поддерживается, если получен ответ
<syntaxhighlight lang="bash">
+USBNETIP: mode


Если контроллер обычно подключён к Интернету через Ethernet или Wi-Fi, а GPRS должен использоваться только при неполадках основного канала, такой режим работы называется ''failover''. Обычно он работает так:
OK
# Организуется работа через основной канал.
</syntaxhighlight>
# Постоянно проверяется наличие доступа в Интернет через основной канал.
# В случае неполадок запускается запасное соединение, меняются настройки ''default gateway''.
# Основное соединение постоянно проверяется, и если доступ в Интернет через него восстанавливается, система возвращается к работе через него, изменяя ''default gateway''.


В качестве примера укажем две инструкции по организации такого режима работы:
==== Отключение ====
*[http://lstein.github.io/Net-ISP-Balance/ Net-ISP-Balance]
# Остановите интерфейс командой:
*[https://serverfault.com/questions/360131/ubuntu-failover-from-ethernet-to-adsl-modem-to-usb-3g-dongle?rq=1 Ubuntu failover from Ethernet-to-ADSL-modem to USB 3G dongle]
#:<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}}


==Мультиплексирование==  
==Мультиплексирование==  
Строка 235: Строка 381:
|}
|}


= GPRS на модемах SIM7000E 2G/NB-IoT =
== GPRS на модемах 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).