Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
wiki:sbros_zavisshego_usb-modema_soedinenija_3g_4g [2013/08/20 19:34] c61 |
wiki:sbros_zavisshego_usb-modema_soedinenija_3g_4g [2013/08/28 08:29] (текущий) c61 |
||
---|---|---|---|
Строка 33: | Строка 33: | ||
fi</code>ID производителя и продукта (в примере - для Huawei E392) можно узнать при помощи утилиты lsusb, установить её можно так:<code>opkg install usbutils</code>Адрес 8.8.8.8 в примере - DNS от Google, но можно любой иной, в котором Вы уверены) | fi</code>ID производителя и продукта (в примере - для Huawei E392) можно узнать при помощи утилиты lsusb, установить её можно так:<code>opkg install usbutils</code>Адрес 8.8.8.8 в примере - DNS от Google, но можно любой иной, в котором Вы уверены) | ||
- | Разместим usbmcc в /media/DISK_A1/system/etc, разрешим выполнение<code>chmod 755 /media/DISK_A1/system/etc/usbmcc</code>и добавим задание для cron - /media/DISK_A1/system/etc/crontabs/root<code>*/5 * * * * /media/DISK_A1/system/etc/usbmcc</code>Выполнять usbmcc чаще, чем раз в 5 минут, не следует, поскольку от сброса модема до его автоматического рестарта проходит обычно 2-3 минуты, лучше задать с запасом, при этом в журнале (если выполнялся сброс) будут примерно такие записи:<code>20 авг 09:52:49 kernel usb 1-1.4: reset high speed USB device using dwc_otg and address 30 | + | Разместим usbmcc в /media/DISK_A1/system/etc, разрешим выполнение<code>chmod 755 /media/DISK_A1/system/etc/usbmcc</code>и добавим задание для cron - /media/DISK_A1/system/etc/crontabs/root (не забудьте перезапустить cron)<code>*/5 * * * * /media/DISK_A1/system/etc/usbmcc</code>Выполнять usbmcc чаще, чем раз в 5 минут, не следует, поскольку от сброса модема до его автоматического рестарта проходит обычно 2-3 минуты, лучше задать с запасом, при этом в журнале (если выполнялся сброс) будут примерно такие записи:<code>20 авг 09:52:49 kernel usb 1-1.4: reset high speed USB device using dwc_otg and address 30 |
20 авг 09:54:50 pppd[17825] No response to 4 echo-requests | 20 авг 09:54:50 pppd[17825] No response to 4 echo-requests | ||
20 авг 09:54:50 pppd[17825] Serial link appears to be disconnected. | 20 авг 09:54:50 pppd[17825] Serial link appears to be disconnected. | ||
Строка 63: | Строка 63: | ||
20 авг 09:55:04 dnsmasq[15463] read /etc/hosts - 2 addresses | 20 авг 09:55:04 dnsmasq[15463] read /etc/hosts - 2 addresses | ||
...</code> | ...</code> | ||
+ | Периодический пинг какого-то ресурса в настройках модема рекомендуется включить (например, тот же 8.8.8.8 каждые 60 секунд). | ||
+ | |||
+ | Однако, и на солнце есть пятна... Порой сервера Гугла не отвечают. Не беда, будем тестировать несколько серверов, для чего модифицируем созданный файл (заодно сделаем его немного "красивее"):<code>#!/bin/sh | ||
+ | |||
+ | # Vendor:Product for Huawei E392 | ||
+ | VENDOR_ID=12d1 | ||
+ | PRODUCT_ID=1506 | ||
+ | |||
+ | # Ping resources & test packets | ||
+ | PING_RESOURCES="8.8.8.8 8.8.4.4 ya.ru" | ||
+ | TEST_PACKETS=2 | ||
+ | |||
+ | # Test interface string | ||
+ | TEST_IFACE="ppp" | ||
+ | TEST_PPP="`ifconfig | grep -o $TEST_IFACE`" | ||
+ | |||
+ | # Temp file | ||
+ | TMP_FILE="/tmp/usbmcc.tmp" | ||
+ | |||
+ | if [ "$TEST_PPP" != "$TEST_IFACE" ]; then | ||
+ | echo "interface $TEST_IFACE not found" | ||
+ | else | ||
+ | echo "interface $TEST_IFACE found" | ||
+ | # Initial success = unsuccess | ||
+ | local success=0 | ||
+ | # Resources loop | ||
+ | for resource in $PING_RESOURCES; do | ||
+ | # Ping | ||
+ | ping $resource -c $TEST_PACKETS > $TMP_FILE | ||
+ | # Test for success | ||
+ | echo "ping resource $resource..." | ||
+ | if grep -q 'packets received,' $TMP_FILE; then | ||
+ | if grep -q ', 0 packets received,' $TMP_FILE; then | ||
+ | echo "...unsuccess, packets not received" | ||
+ | else | ||
+ | echo "...success" | ||
+ | success=1 | ||
+ | break | ||
+ | fi | ||
+ | else | ||
+ | echo "...unsuccess, ping packets not sent" | ||
+ | fi | ||
+ | done | ||
+ | rm -f $TMP_FILE | ||
+ | if [ $success -eq 0 ]; then | ||
+ | echo "reset interface $TEST_IFACE equipment..." | ||
+ | /bin/usb_modeswitch -v $VENDOR_ID -p $PRODUCT_ID -R | ||
+ | echo "...reset done, wait 3 minutes for $TEST_IFACE autorestart" | ||
+ | fi | ||
+ | fi | ||
+ | </code>Теперь мы можем задать несколько серверов в PING_RESOURCES (в примере - два DNS от Гугла и поисковик Яндекса). | ||
+ | |||
P.S. Эксперименты проводились на GIGA (первая версия), модем Huawei E392 (от МТС). Полномасштабное тестирование пока не закончено - могут быть глюки, просьба сообщать автору... | P.S. Эксперименты проводились на GIGA (первая версия), модем Huawei E392 (от МТС). Полномасштабное тестирование пока не закончено - могут быть глюки, просьба сообщать автору... | ||
P.P.S. Для некоторых модемов сброс может не проходить и приводить к зависаниям модема и т.п. - такая информация найдена в сети. | P.P.S. Для некоторых модемов сброс может не проходить и приводить к зависаниям модема и т.п. - такая информация найдена в сети. |