Аппаратное отслеживние событий запуска/halt контроллера

Здравстввуйте!
Имеестя ли возможность аппаратно извне (по уровню на каком-либо выводе, замыканию или размыканию контакат какого-то реле и т.п.) наблюдать за началом и завершением перходных процессах запуска и останова?
Интерсует получение информации о наступлении следующих событий:

  1. успешное начало загрузки (независисмо от причины – после подачи питания, после срабатывани сторожевого таймера, после пропадания и восстановления питания);

  2. “корректное завершение” загрузки – переходе в состояние, после которого поведение контроллера должно считаться предсказуемым в соответсвии со всей совокупностью установленных программ, если считать их правильно написанными;

  3. начало выполнения останова (запуск halt);

  4. завершение останова – от момента завершения выполнения halt до выключения, перзагрузки сторожевым таймеров или отключением питания.

Пока более-менее понятно с п.3 – замкнуть в одной команде перед halt контакты некоего реле (например, одного из встраиваемых модулей). Но непонятно, в какой момент оно будет сброшено в процессе halt, чтобы по нему же определять событие 4.

С событием 1 – гипотеза, что здесь что может дать наблюдение за выводами питания, если они изменяют состояние в начале процесса загрузки. И нет идей по событию 2.

Не подскажете, как можно определить перечисленные события и насколько реализуемы предлагаемые варианты?

P.S.: Контроллера ещё нет, выясняем, как он впишется в текущую идею алгритмов и какие могут понадобиться доп. модули и т.п.

Здравствуйте.
На выходах питания есть напряжение и когда контроллер отключен.
Можно следить за GPIO контроллера - каналами A1-A3, например.

Но вообще, так как это не совсем ПЛК, а скорее компьютер - использовать электрические методы контроля кажется не слишком оправданным.

К тому же, что такое в Вашем понимании останов? shutdown -n now? Отключение переключателем на контроллере?

Опишите, пожалуйста, решаемую вами задачу — вдруг она решается проще.

Здравствуйте!

Согласен в целом про компьютер, но здесь нужно как-то сообщить ИБП о достижении состояния, в котором можно безопасно отключить всё питание после того, как upsd уже заврешил свою работу в процессе останова.

Когда за ИБП следил сам сервер (linux), это было видимо просто пропадание после выключения сигнала индикатора питания – вместо светодиода пара проводков уходила внутрь ИБП. Точная конструкция того, что было сделано в старом ИБП для этого неизвестна – утрачена вместе с ним и контактами её автора. При таком отключении срзау отключался и маршрутизатор (программный, OpenBSD), который мог не успеть завершить работу.

Сейчас идея – сделать наблюдение за электропитанием и ИБП менее энергопотребляющим и сторонним по отношению уже к двум “серверам” и “маршрутизатору”. С оповещением не только по интернету через подключенных к маршрутизатору провайдеров интернета.
И с возможностью:

  1. последовательно отключать серверы и маршуртизатор для экономии времнеи работы от ИБП;
  2. автоматически безапасно самому “наблюдателю” отключиться в ожидании восстановления внешнего электропитания, с переключением ИБП в режим ожидания подачи питания извне с отключеним батарей и всей своей электроники;
  3. запуск “наблюдателя” после подачи внешнего питания и успешного включения ИБП;
  4. последовательный запуск “наблюдателем” “маршрутизатора” и “серверов”;
  5. дистанционного отключения всей этой ИТ-конструкции так, что включить будет можно только приехав и что-то подключить/нажать в ручную. Всё-таки это не ЦОД, а квартира. И когда антресоли начинают затапливать сверху, лучше всё отключить.

Есть ещё пара идей по наблюдению за температруой на тех же антресолях (как определять протечку на потолке даже не спрашиваю) и проверкой, отключена ли большая часть квартиры при отъезде. Идеи “непрофессионалов” часто появляются в процессе, раз нет четких рамок задач.

Вопрос про сигналы – результат обсуждения с потенциальным исполнителем либо переделки нового относительно простого ИБП или поиска подходящего аппартано управляемого из “не очень серверного уровня” (мощность/размер/цена). Хотя по назначению мне больше понятен последний сигнал – после останова для отключения. Которое для Wirenboard надо успеть сделать до перзапуска сторожевым таймером.

Пока Wirenboard как контроллер и перефирия лидирует за счет большей заявленной надежности за разумную цену и лучшего понимания в администрировании и программировании. За исключеним вот этого момента, как подать аппаратно “теперь питание контрроллера можно отключить”.

Видимо не очень корректно выразился, сразу написав один из возможных вариантов команды.
Останов – перевод системы в состоятние, когда питание ещё не отключено, но работы всех осмысленных процессов корректно завершена, никакие программы уже не выполняются (ну или бесконечный цикл пустой операции, или ожилание люойклавиши для перезагрузки и т.п.). И из такого состояния систему можно либо перзапустить не отключая питания по некоторому аппаратному сигналу сброса (reset), поскольку все остальные части системы готовы к работе, либо полностью выключить (теперь уже аппаратно, без взаимоействия с процессором). Представление на основе PC-совместимых компьютеров. Как добиться сейчас такого без выключения питания – давно не интерсовался, для linux в большинстве спецификаций их сейчас стали отждествлять. В OpenBSD shutdown -h now фактически приводит к такому состоянию, с надписью “press any key to reboot”.
На контроллере Wirenboard, насколько пока понимаю, этому определению соотвествует состояние между программным заврешеним работы и либо физическим отключением, либо перезапуском по сторожевому таймеру.

P.S.: Спасибо за время, потраченое на идеи “сисадмина-любителя”.

Здравствуйте!

Наверное, пока проще дать ссылку на предшествующий ответ, чем четко и однозначно сформулировать решаемую задачу.

Нормально)
А у бесперебойника точно нету чего-нибудь типа RS232? Какой вообще модели упс?
Потому что если у него вдруг есть цифра, можно было бы использовать nut…с ним отлично работают всякие китайские бесперебойники занедорого.
А на слежение за ним (nut server) уже можно повесить серваки, компы, маршрутизаторы…
Сам WB гасить по событию “все выключились”.

Его, кстати, можно оснастить собственной батареей - и тогда можно сначала всё отключить, а уже потом выключиться самому. Ну или даже не отключаться - автономной работы там 8 часов…

1 лайк

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

Наш контроллер не умеет выключаться пока — по halt он просто ребутнётся.

У старого (~10-11 лет, раза три батарею менял, последний раз предложили выкупить на запчасти – отдал, не подумав про “доделку”), то ли PowerMan, то ли PCOM – был USB, по которому nut тогда умудрялся только прочитать %заряда и режим работы сеть/батарея. На команды не реагировал – из-за чего тогда и появилась вся идея с переделкой схемы. Была ли вообще в нём возможность отложенного отключения через графическую утилиту для Windows – не помню.

Новый – выбираем ещё.
Одно из требований уже есть – как раз полная поддержка в nut всего, что он может о себе рассказать и чем даст управлять.
Может и такой же простенький и бесшумный Eaton 5E как сейчас на настольном компьютере, елси нормально настроить все части nut. Если он подойдет по остальным требованиям.

Насколько пока понимаю, у WB нет ни функции “отключиться, включиться только по замыканию опредленной пары контактов, если в тот момент будет подано питание” (по аналогии с персональными компьютерами на базе ATX системных плат и БП), ни “отключиться, включиться только если внешнее питание сначала пропадет, а потом появиться снова”. Причем если после отключение это внешнее питание остается, все равно не включаться, пока оно не пропадет и не плявиться заново.
Насколько понимаю, здесь и кроется подвох: вместо реакции именно на внешнее отключение питания, ещё до него может сработать сторожевой таймер – и сделать то самое отключение и повторонео включение, но уже внутри самого WB.

Похоже на задачу в целом решением будет искать, по совету из следующего ответа – Аппаратное отслеживние событий запуска/halt контроллера - #8 от пользователя BrainRoot, такой ИБП, у которого можно настроить и время задержки отключения после получения команды на отключение выхода (нагрузки), и последующее поведение после появления внешнего электропитания.

И тогда другой вопрос: к WB по USB подключить ИБП можно? Или нижний разъем USB тоже имеет специальное назначение, как и верхние?

Нижний USB вполне себе обычный и полнофункциональный - в нем будет работать всё, что поддерживается debian’ом.

1 лайк

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.