如何添加 CPU 调控器
CPU 调控器本身只是 1 C 文件,位于 kernel_source / drivers / cpufreq /中,例如:cpufreq_smartass2.c。你自己负责找到调控器(查看你设备的现有内核仓库)但是为了成功调用并将此文件编译到你的内核中,你必须进行以下更改:
- 复制你的调控器文件(cpufreq_govname.c)并浏览到 kernel_source / drivers / cpufreq,现在粘贴它。
- 并且在添加内核时打开 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 已完成,你可以保存并关闭该文件。
- 在仍然在
/drivers/cpufreq
文件夹中时,打开 Makefile。在 Makefile 中,添加与 CPU Governor 对应的行。例如:
obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS2) += cpufreq_smartass2.o
你不称之为本机 C 文件,而是 O 文件! 这是编译的 C 文件。保存文件。
- 转到:
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 调控器设置现已完成。当你成功完成所有步骤后,你应该可以从菜单中选择你的调控器(menuconfig
,xconfig
,gconfig
,nconfig
)。在菜单中检查后,它将被包含在内核中。
提交与上述说明几乎相同: 添加 smartassV2 和 lulzactive 调控器提交