Последняя команда при отключении питания

Я пишу некоторое программное обеспечение для отключения некоторого внешнего оборудования, подключенного к моей плате управления. Подвох в том, что мне нужно дождаться ОЧЕНЬ конца операции отключения питания, чтобы отправить сигнал (через вывод gpio). Я сейчас обдумываю некоторые варианты, но мне любопытно, где я могу увидеть, что на самом деле делает ядро ​​​​прямо перед отключением питания.

Есть ли где-нибудь файл, в который я могу заглянуть?


person Austin    schedule 02.11.2018    source источник


Ответы (1)


Начните с функции kernel_power_off в kernel/reboot.c и следуйте коду. Окончательные операции отключения сильно зависят от платформы, поэтому, если вы хотите дойти до конца, вам нужно точно определить, какие фрагменты кода, специфичного для архитектуры, вы используете.

Одной из более простых возможностей для отправки ваших сигналов является регистрация обработчика kmsg_dump. Последнее, что делает kernel_power_off перед вызовом кода отключения питания для конкретной платформы, — это выполняет kmsg_dump(KMSG_DUMP_POWEROFF);. (Просто игнорируйте любые вызовы kmsg_dump, кроме этого.)

person Gil Hamilton    schedule 02.11.2018