Последняя команда при выключении - PullRequest
0 голосов
/ 02 ноября 2018

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

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

1 Ответ

0 голосов
/ 02 ноября 2018

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

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

...