Disparando o encerramento do Linux na falha de energia

3

Eu tenho um sistema Linux embarcado (atualmente rodando o Angstrom) com hardware de supercapacitor para dar tempo para as gravações serem concluídas e evitar sistemas de arquivos corrompidos quando a energia externa é removida. Arquitetura é ARM, SOC é Freescale iMX6Q

Há uma entrada GPIO que monitora a presença de energia externa.

Qual é a melhor maneira de ligar esta entrada à lógica existente para manipulação de powerfail? Devo transmitir SIGPWR para todos os processos em execução? Levante apenas para systemd ? Escreva algo para /dev/initctl ? Faça outra coisa para que o próprio kernel envie SIGPWR ?

Existe um mecanismo existente para entradas de powerfail de hardware que eu possa configurar no devicetree? Ou é um daemon de modo de usuário (com alta prioridade) sondando um arquivo sysfs gpio a melhor abordagem?

Esta pergunta anterior apontou as vantagens do backup de bateria, mas parou com "manter a energia em tempo suficiente", sem entrar em detalhes de como acionar o caminho powerfail no código de lavagem de gravação. (Como a perda de energia é iminente, o sistema não deve perder tempo no desligamento normal do processo, apenas executar operações que protejam a integridade dos dados. Especialmente as operações que registram o desligamento devem ser evitadas, pois aumentam a chance de corrupção executando gravações, incluindo atualizações para usar dados de nivelamento, no pior momento possível. Debate .)

    
por Ben Voigt 13.10.2015 / 21:33

0 respostas