Sto lavorando su una versione modificata del kernel 2.6.35 per Olinuxino, una piattaforma basata su ARM9. Sto cercando di modificare il driver di gestione dell'alimentazione (la parte specifica dell'architettura).Shutdown (incorporato) linux dallo spazio del kernel
Il processore è un iMX23 di Freescale. Questo processore ha un pin "speciale", chiamato PSWITCH, che attiva un interrupt gestito dal driver di gestione dell'alimentazione. Se si preme l'interruttore, il sistema passa in standby. Questo viene fatto nel driver chiamando pm_suspend(PM_SUSPEND_STANDBY)
.
Data la mia configurazione hardware, mi piacerebbe, invece, spegnere il sistema. Quindi la mia domanda è:
Qual è il modo preferito per un processo nello spazio del kernel per avviare un arresto/spegnimento del sistema pulito?
Suppongo che ci sia una bella funzione chiamata, ma non ho potuto trovarla finora.
Il mio codice del kernel (il file su cui sto lavorando è arch/arm/mach-mx23/pm.c) può essere trovato qui: github.com/spairal/linux-for-lobster, sebbene la mia domanda richieda un approccio generale del kernel Linux.
Si potrebbe eseguire un 'strace' su' init 0' e vedere quali sysc vengono eseguite. –