我检查了我的 Linux sys 文件,没有:
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
我的内核配置没有 CONFIG_X86_INTEL_PSTATE,并且它仍然没有使用 acpi-cpufreq 驱动程序。
这里的sys文件只在intel_pstate启用时创建?
我使用的是 yocto 环境,而不是 CentOS 或 Ubuntu。
答案1
简短回答 该路径不会在您的系统上显示的原因是 cpufreq 驱动程序未加载。该驱动程序在 sysfs 中创建 /sys/devices/system/cpu/cpuY/cpufreq 并用值填充它。当尝试在没有 CONFIG_X86_INTEL_PSTATE 的情况下编译内核时,pcc_freq 和 acpi_freq 驱动程序编译先决条件会强制启用它,因此我想您必须设置它才能编译驱动程序。
更多细节 查看drivers/cpufreq/下的内核代码,我们可以看到sysfs中的scaling_max_freq条目是由cpufreq.c定义和维护的。有两个驱动程序实现 cpufreq 功能 -pcc_cpufreq和acpi_cpufreq。为了初始化路径,必须加载 cpufreq 驱动程序之一。
内核配置中的相关字段:
#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ=m
检查您的系统pcc_cpufreq司机。如果可用,您应该使用 cpufreq 路径而不加载acpi_cpufreq,但由于您说 CONFIG_X86_INTEL_PSTATE 未在内核配置文件中设置,因此您可能会丢失所有 cpufreq 驱动程序。
希望这可以帮助。