关机期间的最后命令

Last command during poweroff

我正在编写一些软件来关闭连接到我的控制板上的一些外部硬件。问题是我需要等待关机操作的最后一刻才能发送信号(通过 gpio 输出)。我现在正在权衡一些选择,但我很好奇在哪里可以看到内核在关机前实际做了什么。

有没有我可以查看的文件?

kernel/reboot.c 中的函数 kernel_power_off 开始,然后按照代码进行操作。最后的关机操作是非常特定于平台的,所以如果你想一直追下去,你需要弄清楚你正在使用哪些特定于架构的代码。

发送信号的一种更简单的方法是注册一个 kmsg_dump 处理程序。 kernel_power_off 在调用特定于平台的断电代码之前做的最后一件事是执行 kmsg_dump(KMSG_DUMP_POWEROFF);。 (忽略除那个以外的任何 kmsg_dump 个调用。)