Интернет-центры Keenetic умеют управлять питанием USB-модемов без участия пользователя. Дело в том, что многие современные модемы — это самостоятельные устройства, которые стартуют и работают независимо от интернет-центра. С одной стороны, это хорошо. Но с другой, многие компактные USB-модемы рассчитаны главным образом на эпизодическую работу в ноутбуке, но не на круглосуточную работу, от которой они, увы, могут сбоить или зависать. В этом случае функция перезагрузки модема по питанию может восстановить связь.

NOTE: Важно! Интернет-центры первого поколения в белом корпусе (Zyxel Keenetic, Zyxel Keenetic Giga и Zyxel Keenetic 4G), а также Zyxel Keenetic DSL аппаратно не поддерживают функцию управления питанием на порту USB.

Перезагрузку USB-модема по питанию можно выполнить следующими способами:

1. Перезагрузка через веб-интерфейс интернет-центра.

Подключитесь к веб-интерфейсу интернет-центра по адресу http://my.keenetic.net, либо по IP-адресу 192.168.1.1, предустановленному по умолчанию. На стартовой странице “Системный монитор” нажмите “Подробнее о соединении” для отображения дополнительной информации и в строке “Модем” нажмите “Перезагрузить”.

modem.png

2. Перезагрузка через интерфейс командной строки интернет-центра.

Подключитесь к интерфейсу командной строки (CLI) интернет-центра и для требуемого USB-подключения укажите команду:

interface {имя} usb power-cycle {пауза}

Интерфейс USB-модема может быть любого типа — UsbModem, UsbLte, YotaOne или CdcEthernet. Узнать имя нужного интерфейса можно командой show interface.
Значение {пауза} — это интервал времени, на которое будет отключено питание на порту USB (в миллисекундах). Например:

(config)> interface YotaOne0 usb power-cycle 1000

3. Автоматическая перезагрузка USB-модема при потере соединения с сетью Интернет.

В случае, если USB-модем периодически зависает, можно настроить автоматическую перезагрузку модема по питанию при потере доступа к какому-либо внешнему узлу. Для этого нужно использовать функцию Ping Check. Подробно о настройке Ping Check можно прочитать в статье “Проверка доступности Интернета (Ping Сheck)“. Настраивать проверку нужно для требуемого интерфейса USB-модема.

По умолчанию при использовании функции Ping Check для интерфейса USB-модема функция перезагрузки модема при потере соединения автоматически включена, чтобы исключить зависание модема как причину потери связи. Отключить ее можно через интерфейс командной строки (CLI) командой:

no ping-check profile {имя_профиля_connectivity-check} power-cycle

Чтобы снова включить, выполните команду: 

ping-check profile {имя_профиля_connectivity-check} power-cycle

Например, для отключения автоматической перезагрузки на интерфейсе YotaOne0 выполните команду: 

(config)> no ping-check profile _WEBADMIN_YotaOne0 power-cycle

Примечание 1

Перезагрузка USB-модема при потере соединения производится только один раз, когда Ping Check идентифицирует обрыв связи. Если по каким-то причинам после перезагрузки модем не смог установить соединение с сетью оператора (например, в условиях нестабильного сигнала), повторной перезагрузки не будет (до тех пор, пока связь с оператором снова не установится и до очередного обрыва связи с проверочным узлом функции Ping Check). Таким образом исключена возможность выхода USB-модема из строя из-за постоянного переключения питания в случае невозможности подключения к сети оператора.

Примечание 2

Помимо потери соединения встречаются случаи, когда модем пропадает из системы физически “сам по себе”, например из-за внутренних программных или аппаратных проблем модема или EMI (ElectroMagnetic Interference) — помех в USB-порту. Ядро при этом в логах выводит сообщение типа: ndmkernel: usb 1-1: USB disconnect, device number X

Причин подобной ситуации может быть много. В качестве решения можно подключить модем через короткий USB-кабель, переместить сам Keenetic с USB-модемом, в другое место, возможно помехи создает какое-либо устройство рядом с Keenetic’ом; подключить USB-модем через активный USB-хаб (с собственным питанием) к Keenetic’у; заменить модем, возможно он неисправен.

А можно решить проблему более радикально. Одному нашему заказчику, использующему большое число USB-модемов, в подобной ситуации помогла команда:

interface UsbLte0 usb power-fail 60 reboot

где UsbLte0 – название интерфейса модема, для Yota это будет YotaOne0.

При такой настройке, в описанной выше ситуации, USB-модем был перезагружен по питанию, после чего он начинал функционировать корректно.
Полный синтаксис команды: 

interface {имя} usb power-fail {интервал} (retry {пауза} | reboot)

Перед ее добавлением необходимо обновить ОС NDMS Keenetic до версии 2.10.С0 и выше.

Данная команда никаких действий с модемом не выполняет, а только включает дополнительные исправляющие механизмы в ситуации, когда power-cycle не привела к восстановлению работы USB-устройства. Таких механизмов три: 

1. Восстановление работы повторным сбросом питания командой interface {имя} usb power-fail {интервал} retry {пауза} через указанный {интервал} секунд на {паузу} сек.

2. Восстановление работы устройства (подключения к Интернету) перезагрузкой всей системы командой interface {имя} usb power-fail {интервал} reboot через {интервал} сек. Повторного выключения и включения питания в этом случае не происходит. Если после power-cycle USB-устройство не появилось в системе через {интервал} сек, система полностью перезагружается.

3. Восстановление работы USB-устройств, которые в результате собственных внутренних сбоев самопроизвольно отключаются от шины USB, а затем появляются в системе как устройства, которые система KeeneticOS не может опознать (не CD-ROM и не USB-модем). Из этого состояния их можно вывести только повторным принудительным отключением питания.
Этот режим восстановления работает всегда, когда активна команда power-fail. Это однократное действие, которое выполняется только при удалении устройства из порта. Оно будет повторяться, если устройство само после включения питания исчезает с шины. При этом значение {интервал}, указанное в команде, игнорируется, а питание на USB-порту, к которому было подключено устройство, отключается сразу же после пропадания из системы и включается через 2 сек.

NOTE: Важно! В механизмах 1 и 2 для корректной работы значение {пауза} должно быть меньше значения {интервал}.

Для сохранения указанных выше настроек в памяти Keenetic, выполните команду: 

system configuration save