如何添加 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 调控器提交