linux内核中,自带了cpufreq子系统用来控制cpu的频率和频率控制策略。本文我们以imx6ul为例来讲解cpufreq子系统的使用。
首先,编译内核之前,make menuconfig,进入菜单Power management and ACPI options->CPU Frequency scaling
将相关的项选上可以将cpufreq子系统编译入内核,默认的调频策略通过Default CPUFreq governor
选择。
进入目录/sys/devices/system/cpu/cpu0/cpufreq
,ls一下,会看到目录中有如下文件:
cpuinfo_cur_freq // 当前CPU频率(从硬件读取)
cpuinfo_max_freq // 当前调频策略下CPU可用的最高频率(从硬件读取)
cpuinfo_min_freq // 当前调频策略下CPU可用的最低频率(从硬件读取)
scaling_available_frequencies // 当前调频策略下CPU可用的所有频率
scaling_available_governors // 支持的调频策略
scaling_cur_freq // 当前CPU频率(从cpufreq模块缓存中读取)
scaling_governor // 当前的调频策略,可以通过这个节点修改当前策略
scaling_max_freq // 当前调频策略下CPU可用的最高频率(从cpufreq模块缓存中读取)
scaling_min_freq // 当前调频策略下CPU可用的最低频率(从cpufreq模块缓存中读取)
scaling_setspeed