Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:5
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:9
Форум » starterkit.ru » Embedded Linux
Как запустить и работать с Watchdog в linux?
Wad1970
Добавлено 15.10.2015 16:09
0
Сообщение: 1
Wad1970
5

Пункты: 3734
Регистрация: 24.11.2014
Надо чтобы устройства на основе imx6 не зависали - их будет много и в разных точках города.
Пытаюсь настроить WDT.
В идеале он должен быть аппаратный.
Пока включил Software watchdog в kernel и собрал ядро.
В /etc/init.d присутствует S15watchdog.
В /dev есть watchdog файл

При
int fd = open("/dev/watchdog", O_WRONLY);
fd получается = -1 - что я делаю не так?

Вообщем, надо чтоб модуль при зависании пересбрасывался.
Помогите пожалуйста.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 15.10.2015 16:25 Редактировалось 15.10.2015 16:27 Сообщение: 2
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Об этом написано в руководстве пользователя

http://www.starterkit.ru/html/doc/Manual_imx6_VBM.pdf

перед сборкой buildroot надо установить галку

Bootloaders --->
[*] Enable HW watchdog

ничего больше трогать не надо, если включили после сборки - достаточно заново пересобрать только u-boot (./uboot_rebuild.sh)
Спуститься к концу Подняться к началу
Персональная информация
AGevork
Добавлено 20.10.2015 11:44 Редактировалось 20.10.2015 11:44 Сообщение: 3
AGevork
4.71

Пункты: 10580
Регистрация: 14.08.2013
Добрый день. А возможно ли сделать так что бы плата автоматически перезагружалась например раз в сутки в 4 часа утра ?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 20.10.2015 12:18 Сообщение: 4
Pavel Ivanchenko
Admin
4.39

Пункты: 93008
Регистрация: 24.03.2009
Пол: Мужчина
Конечно можно, например, гугл - cron.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.10.2015 12:43 Сообщение: 5
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Да - cron только надо немного поплясать с бубном в буилдруте :) там директория /var/spool - симлинк на /tmp которая в tmpfs и все задания будут пропадать при перезагрузке. Проще всего удалить симлинк /var/spool и создать директорию на диске
mkdir -p /var/spool/cron/crontabs
ну и прописать загрузочный скрипт ддля crond - его нет помоему штатно.

Только тут вопрос меня больше смущает другой - какой смысл перезагружать если нет проблемы, часы собьются и никак не проконтролировать - когда будет перезагружаться.
Спуститься к концу Подняться к началу
Персональная информация
AGevork
Добавлено 20.10.2015 13:36 Редактировалось 20.10.2015 13:42 Сообщение: 6
AGevork
4.71

Пункты: 10580
Регистрация: 14.08.2013
Цитата
Да - cron только надо немного поплясать с бубном в буилдруте :) там директория /var/spool - симлинк на /tmp которая в tmpfs и все задания будут пропадать при перезагрузке. Проще всего удалить симлинк /var/spool и создать директорию на диске
mkdir -p /var/spool/cron/crontabs
ну и прописать загрузочный скрипт ддля crond - его нет помоему штатно.

Только тут вопрос меня больше смущает другой - какой смысл перезагружать если нет проблемы, часы собьются и никак не проконтролировать - когда будет перезагружаться.

Хм, почему то думал что при наличии батарейки для RTC время сбиваться не будет. Надо подтянуть мат часть, а то каша в голове.
Беда такая что приложение иногда зависает, но при этом сама ОС не перезагружается конечно же. Пока не найден баг в самой программе хотелось влепить вот такой "костыль".
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.10.2015 14:09 Сообщение: 7
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Цитата

почему то думал что при наличии батарейки для RTC время сбиваться не будет


может и не будет, можно системное время синхронизировать с RTC или с интернета по NTP брать

Цитата

Беда такая что приложение иногда зависает, но при этом сама ОС не перезагружается конечно же. Пока не найден баг в самой программе хотелось влепить вот такой "костыль".


а она что у вас - по расписанию в 4 утра зависает ? :) а если в 4-30 зависнет ?
Спуститься к концу Подняться к началу
Персональная информация
AGevork
Добавлено 20.10.2015 14:13 Редактировалось 20.10.2015 14:15 Сообщение: 8
AGevork
4.71

Пункты: 10580
Регистрация: 14.08.2013
Цитата
Цитата

почему то думал что при наличии батарейки для RTC время сбиваться не будет


может и не будет, можно системное время синхронизировать с RTC или с интернета по NTP брать

Цитата

Беда такая что приложение иногда зависает, но при этом сама ОС не перезагружается конечно же. Пока не найден баг в самой программе хотелось влепить вот такой "костыль".


а она что у вас - по расписанию в 4 утра зависает ? :) а если в 4-30 зависнет ?


Нет, зависает она как раз таки рандомно , точнее крашется без объяснения причины, вот думаю мб отслеживать как то в системе если процесс умер, то запустить его заново возможно ? Что то типо контроля служб в Windows
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.10.2015 14:42 Редактировалось 20.10.2015 14:42 Сообщение: 9
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Цитата

Что то типо контроля служб в Windows


Конеечно :) если программа ничего не портит - пропишите ее запуск в /etc/inittab, например

Цитата

# Put a getty on the serial port
ttymxc0::respawn:/sbin/getty -L ttymxc0 115200 vt100
tty1::respawn:/sbin/getty 38400 tty1 linux
::respawn:/usr/lib/qt/examples/multimedia/video/qmlvideo/qmlvideo


тогда она будет перезапускаться пока init жив
Спуститься к концу Подняться к началу
Персональная информация
AGevork
Добавлено 20.10.2015 15:00 Сообщение: 10
AGevork
4.71

Пункты: 10580
Регистрация: 14.08.2013
Цитата
Цитата

Что то типо контроля служб в Windows


Конеечно :) если программа ничего не портит - пропишите ее запуск в /etc/inittab, например

Цитата

# Put a getty on the serial port
ttymxc0::respawn:/sbin/getty -L ttymxc0 115200 vt100
tty1::respawn:/sbin/getty 38400 tty1 linux
::respawn:/usr/lib/qt/examples/multimedia/video/qmlvideo/qmlvideo

тогда она будет перезапускаться пока init жив

Я так понял что запускать надо не через S9X скрипт, а через inittab ?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux