如何新增 CPU 調控器

CPU 調控器本身只是 1 C 檔案,位於 kernel_source / drivers / cpufreq /中,例如:cpufreq_smartass2.c。你自己負責找到調控器(檢視你裝置的現有核心倉庫)但是為了成功呼叫並將此檔案編譯到你的核心中,你必須進行以下更改:

  1. 複製你的調控器檔案(cpufreq_govname.c)並瀏覽到 kernel_source / drivers / cpufreq,現在貼上它。
  2. 並且在新增核心時開啟 Kconfig(這是配置選單佈局的介面),你希望它顯示在你的配置中。你可以通過新增調控器選項來實現。
config CPU_FREQ_GOV_GOVNAMEHERE
tristate "'gov_name_lowercase' cpufreq governor"
depends on CPU_FREQ
help
governor' - a custom governor!

例如,對於 smartassV2。

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

在新增選項之後,你還必須宣告調控器被選為預設調控器的可能性。

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

例如,對於 smartassV2。

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

- 找不到合適的地方嗎?只需搜尋“CPU_FREQ_GOV_CONSERVATIVE”,並將程式碼放在下面,同樣的事情對“CPU_FREQ_DEFAULT_GOV_CONSERVATIVE”來說很重要

現在 Kconfig 已完成,你可以儲存並關閉該檔案。

  1. 在仍然在/drivers/cpufreq 資料夾中時,開啟 Makefile。在 Makefile 中,新增與 CPU Governor 對應的行。例如:
obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS2)    += cpufreq_smartass2.o

你不稱之為本機 C 檔案,而是 O 檔案! 這是編譯的 C 檔案。儲存檔案。

  1. 轉到:kernel_source/includes/linux。現在開啟 cpufreq.h 向下滾動,直到看到類似的內容:
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND)
 extern struct cpufreq_governor cpufreq_gov_ondemand;
 #define CPUFREQ_DEFAULT_GOVERNOR    (&cpufreq_gov_ondemand)

(其他 cpu 調控器也在那裡列出)

現在使用選定的 CPU 調控器新增你的條目​​,例如:

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

儲存檔案並關閉它。

初始 CPU 調控器設定現已完成。當你成功完成所有步驟後,你應該可以從選單中選擇你的調控器(menuconfigxconfiggconfignconfig)。在選單中檢查後,它將被包含在核心中。

提交與上述說明幾乎相同: 新增 smartassV2 和 lulzactive 調控器提交