Android Come aggiungere un CPU Governor


Esempio

Il governor CPU stesso è solo un file C, che si trova in kernel_source / drivers / cpufreq /, ad esempio: cpufreq_smartass2.c. Sei responsabile di te stesso per trovare il governatore (guarda in un repository del kernel esistente per il tuo dispositivo) Ma per chiamare e compilare con successo questo file nel tuo kernel dovrai apportare le seguenti modifiche:

  1. Copia il tuo file governor (cpufreq_govname.c) e vai a kernel_source / drivers / cpufreq, ora incollalo.
  2. e apri Kconfig (questa è l'interfaccia del layout del menu di configurazione) quando aggiungi un kernel, vuoi che venga visualizzato nella tua configurazione. Puoi farlo aggiungendo la scelta del governatore.
config CPU_FREQ_GOV_GOVNAMEHERE
tristate "'gov_name_lowercase' cpufreq governor"
depends on CPU_FREQ
help
governor' - a custom governor!

ad esempio, per smartassV2.

config CPU_FREQ_GOV_SMARTASS2
 tristate "'smartassV2' cpufreq governor"
 depends on CPU_FREQ
 help
 'smartassV2' - a "smart" optimized governor! 

accanto all'aggiunta della scelta, devi anche dichiarare la possibilità che il governatore venga scelto come governatore predefinito.

 config CPU_FREQ_DEFAULT_GOV_GOVNAMEHERE
 bool "gov_name_lowercase"
 select CPU_FREQ_GOV_GOVNAMEHERE
 help
 Use the CPUFreq governor 'govname' as default.

ad esempio, per smartassV2.

config CPU_FREQ_DEFAULT_GOV_SMARTASS2
 bool "smartass2"
 select CPU_FREQ_GOV_SMARTASS2
 help
 Use the CPUFreq governor 'smartassV2' as default.

- Non riesci a trovare il posto giusto per metterlo? Cerca “CPU_FREQ_GOV_CONSERVATIVE” e inserisci il codice sotto, la stessa cosa conta per “CPU_FREQ_DEFAULT_GOV_CONSERVATIVE”

Ora che Kconfig è finito puoi salvare e chiudere il file.

  1. Mentre /drivers/cpufreq ancora nella cartella /drivers/cpufreq , apri Makefile. In Makefile, aggiungi la riga corrispondente al tuo CPU Governor. per esempio:
obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS2)    += cpufreq_smartass2.o

Be ware che non chiami il file C nativo, ma il file O! che è il file C compilato. Salva il file.

  1. Sposta in: kernel_source/includes/linux . Ora apri cpufreq.h Scorri verso il basso finché non vedi qualcosa del tipo:
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND)
 extern struct cpufreq_governor cpufreq_gov_ondemand;
 #define CPUFREQ_DEFAULT_GOVERNOR    (&cpufreq_gov_ondemand)

(sono elencati anche altri governatori della CPU)

Ora aggiungi la tua voce con la CPU Governor selezionata, ad esempio:

#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS2)
 extern struct cpufreq_governor cpufreq_gov_smartass2;
 #define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_smartass2)

Salva il file e chiudilo.

La configurazione iniziale di CPU Governor è ora completa. quando hai eseguito tutti i passaggi correttamente, dovresti essere in grado di scegliere il tuo governatore dal menu ( menuconfig , xconfig , gconfig , nconfig ). Una volta selezionato nel menu, verrà incluso nel kernel.

Commit che è quasi uguale alle istruzioni di cui sopra: Aggiungi smartassV2 e commit del governatore lulzactive