Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.05.2017, 19:15   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Сообщение от to_ Посмотреть сообщение
Доброго времени суток!
Прошу объясните мне, пожалуйста, почему после вылолнения команд
PHP код:
umount /dev/sda1 
sleep 2
echo > /sys/class/gpio/gpio8/value
sleep 5
echo > /sys/class/gpio/gpio8/value 
не работает reboot. Команда вроде проходит, но роутер не перегружается, а виснет? В обычном режиме все нормально. Что надо сделать , чтобы его перегрузить после передергивания питания USB?
А для чего GPIO дергать?
Admin вне форума   Ответить с цитированием
Старый 19.05.2017, 21:46   #2
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
А для чего GPIO дергать?
Он хочет отключить/включить usb, а потом ребутнуть весь роутер.
Цитата:
Что надо сделать , чтобы его перегрузить после передергивания питания USB?
to_, а можно поинтересоваться целью данных команд? Что в итоге ожидаете получить?
Tohin вне форума   Ответить с цитированием
Старый 17.08.2017, 20:15   #3
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Он хочет отключить/включить usb, а потом ребутнуть весь роутер.


to_, а можно поинтересоваться целью данных команд? Что в итоге ожидаете получить?
Не долго я радовался. Давненько не заходил к Вам. Прошу прощенья.

Задача такая - время от времени роутер становится недоступен - почему не знаю. Хотя судя по лампочкам (на роутере крутится файл с паузой 5 сек) запись идет (и флэшка живет и мигает). Поэтому в кроне каждые 10 мин вызывается файл с содержимым

PHP код:
#! /bin/sh
# Checks if the wifi conn is up.  If not, it tries to restart
# the wifi.  If that fails, then reboot.

if (! ping -c 3 ya.ru >/dev/nill 2>&1)
        
then
                
{
                echo 
> /sys/class/gpio/gpio8/value
                sleep 5
                
echo > /sys/class/gpio/gpio8/value
                sleep 5
                reboot 
&&  exit
                }
      
fi 
, который обесточивает USB со всеми его девайсами( их там до 3х , адаптер питания поменян на 3А), и в случае отсутствии пинга перегружает роутер.
Когда роутер работает нормально (доступ есть, выключаю внешнюю точку доступа) , скрипт отрабатывает правильно.
Как найти причину отвала? На роутере крутится много процессов и что влияет мне не понятно, поскольку зайти на него нельзя. Иногда без проблем работает неделю, иногда 1 день.
Уважаемый ALL, прошу помощи.
to_ вне форума   Ответить с цитированием
Старый 17.08.2017, 21:49   #4
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

А есть уверенность, что в случае зависания роутера скрипт вообще стартует?
Может стоит добавить в начало скрипта touch /path/to/usb/imworking
и проверить наличие файла после ребута.
Ну и соответственно искать, что именно происходит при зависании, записывая (в файл на флешке) выхлопы команд.

Сложный вариант: Распаять Uart и смотреть, во время зависания, что именно там происходит.
Tohin вне форума   Ответить с цитированием
Старый 17.08.2017, 22:44   #5
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
А есть уверенность, что в случае зависания роутера скрипт вообще стартует?
Может стоит добавить в начало скрипта touch /path/to/usb/imworking
и проверить наличие файла после ребута.
Ну и соответственно искать, что именно происходит при зависании, записывая (в файл на флешке) выхлопы команд.

Сложный вариант: Распаять Uart и смотреть, во время зависания, что именно там происходит.
вот добавил , если флэшка отвалит (файл FILE=/www/my.db, в который все время пишется перестанет изменятся в течение более 600 сек):
PHP код:
#!/bin/sh
#

# which file to check
FILE=/www/my.db
# time limit in seconds
TLIMIT=600

# main
CURRENT="$(date +%s)"
FILEMOD="$(stat ${FILE} -c %Y)"
TDIFF="$(echo ${CURRENT}-${FILEMOD} | bc)"

# comparison
if [[ ${TDIFF} -gt ${TLIMIT} ]]
  
then
{
date >> /www/log.log
echo "File ${FILE} was last modified more than ${TLIMIT} seconds ago." >> /www/log.log

  
echo > /sys/class/gpio/gpio8/value
  sleep 5
  
echo > /sys/class/gpio/gpio8/value
  sleep 5
  reboot 
&&  exit
}

  else
        echo 
'ok'
fi 
и еще через пару минут , то же по крону , если сеть отвалит дополнил:
PHP код:
#! /bin/sh
# Checks if the wifi conn is up.  If not, it tries to restart
# the wifi.  If that fails, then reboot.

if (! ping -c 3 ya.ru >/dev/nill 2>&1)

        
then
                
{
date >> /www/log.log
echo "lost connect">> /www/log.log

                
echo > /sys/class/gpio/gpio8/value
                sleep 5
                
echo > /sys/class/gpio/gpio8/value
                sleep 5
                reboot 
&&  exit
                }
        else
                echo 
'ping ok'


fi 
А это я не понял :
touch /path/to/usb/imworking Это ...Устанавливает дату последнего изменения и доступа к файлу? А какого файла после ребута? Самого скрипта? или FILE=/www/my.db?
Думаю, если флэшка отвалится, все равно ничего не запишем никуда .

Последний раз редактировалось to_; 17.08.2017 в 22:53.
to_ вне форума   Ответить с цитированием
Старый 17.08.2017, 23:01   #6
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

Цитата:
touch /path/to/usb/imworking Это ...Устанавливает дату последнего изменения и доступа к файлу? А какого файла после ребута? Самого скрипта? или FILE=/www/my.db?
Это создает файл, если он отсутствует. Или обновляет дату изменения для существующего.

Я исходил из того, что "запись идет (и флэшка живет и мигает)"

А /www случайно не на виртуальной фс? А то лог не переживет ребута.
Tohin вне форума   Ответить с цитированием
Старый 17.08.2017, 23:13   #7
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Это создает файл, если он отсутствует. Или обновляет дату изменения для существующего.

Я исходил из того, что "запись идет (и флэшка живет и мигает)"

А /www случайно не на виртуальной фс? А то лог не переживет ребута.
Опять не понял. Что значит виртуальный? Имеете ввиду RAM? У меня все как описано в руководстве CyberWRT - использование флэшки в качестве системного диска. Конечно если внешняя флэшка отвалится во флэш роутера не запишится. Или я не догоняю о чем идет речь? Я не силен в Линуксах. Лог лежит /www/log.log

И опять , о каком файле идет речь в команде touch?
to_ вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:20. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика