Обработка отключения встроенной платы - PullRequest
3 голосов
/ 27 ноября 2009

Я работаю со встроенной платой (BeagleBoard) и использую дистрибутив Linux (Angstrom Linux). Я хотел бы аккуратно остановить операционную систему, когда данная кнопка нажата на плате. Что я планирую сделать, это:

  1. В init запустите демон "выключения" от имени пользователя root
  2. «выключение» запускает магический код, чтобы проверить, нажата ли данная кнопка
  3. Если кнопка нажата, «выключение» вызывает «остановку»

Прежде чем перейти к моему текстовому редактору и коду, есть ли какой-нибудь стандартный демон Linux, чтобы сделать это?

Ответы [ 2 ]

2 голосов
/ 27 ноября 2009

Демон init (ID процесса 1) настроен для отображения сигнала SIGWINCH на действие kb («запрос клавиатуры»), которое вы можете определить самостоятельно. init - это то, что отображает нажатие клавиши ctrl-alt-del для перезагрузки; так что имеет смысл init обрабатывать и вашу кнопку выключения.

Чтобы реализовать это, вам просто нужно написать небольшой код ядра, чтобы сопоставить кнопку «выключить» для отправки SIGWINCH в PID 1, а затем настроить действие kb для вызова shutdown -h в /etc/inittab .

0 голосов
/ 27 ноября 2009

Я не знаю деталей вашей доски ... но взгляните на демона 'hal'.

...