Ich arbeite an einer modifizierten Version des 2.6.35-Kernel für Olinuxino, eine ARM9-basierte Plattform. Ich versuche, den Energieverwaltungstreiber (den architekturspezifischen Teil) zu ändern.Shutdown (embedded) Linux vom Kernel-Space
Der Prozessor ist ein Freescale i.MX23. Dieser Prozessor hat einen "speziellen" Pin namens PSWITCH, der einen Interrupt auslöst, der vom Power-Management-Treiber gehandhabt wird. Wenn der Schalter gedrückt wird, wechselt das System in den Standby-Modus. Dies wird im Treiber durch den Aufruf pm_suspend(PM_SUSPEND_STANDBY)
getan.
meine Hardware-Setup gegeben, würde Ich mag an, stattdessen das System herunterfahren. Also meine Frage ist:
Was ist der bevorzugte Weg für einen Kernel-Space-Prozess zu einem sauberen System Halt/Poweroff auslösen?
Ich nehme an, es ist ein netter kleiner Funktionsaufruf gab, aber ich konnte es nicht so weit finden.
Mein Kernel-Code (die Datei, an der ich arbeite, ist arch/arm/mach-mx23/pm.c) kann hier gefunden werden: github.com/spairal/linux-for-lobster, obwohl meine Frage nach einem allgemeinen Linux-Kernel-Ansatz verlangt.
Sie könnten eine 'strace' auf' init tun 0 'und sehen, welche syscalls ausgeführt werden. –