提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录
文章目录
[二、查看cpu 信息命令](#二、查看cpu 信息命令)
[四、查看CPU 在各频率下的工作时间](#四、查看CPU 在各频率下的工作时间)
前言
I.MX6U-ALPHA 开发板所使用的 I.MX6ULL 芯片主频都是 792MHz 的,也就是NXP 官方宣传的 800MHz 版本,所以要在此设置好主频在 792MHz.
一、准备工作
确保 EMMC 中的根文件系统可用!然后重新启动开发板,进入终端(可以输入命令),如下图所示:

二、查看cpu 信息命令
进入下图所示的命令行以后输入如下命令查看 cpu 信息:

上图有 BogoMIPS 这一条,此时 BogoMIPS 为 3.00,BogoMIPS 是 Linux 系统中衡量处理器运行速度的一个"尺子",处理器性能越强,主频越高,BogoMIPS 值就越大。BogoMIPS 只是粗略的计算 CPU 性能,并不十分准确。但是我们可以通过 BogoMIPS 值来大致的判断当前处理器的性能。在上图中并没有看到当前 CPU 的工作频率,那我们就转变另一种方法查看当前 CPU 的工作率。进入到目录/sys/bus/cpu/devices/cpu0/cpufreq 中,此目录下会有很多文件,如下图所示:
此目录中记录了 CPU 频率等信息,这些文件的含义如下:
cpuinfo_cur_freq:当前 CPU 工作频率,从 CPU 寄存器读取到的工作频率。
cpuinfo_max_freq:处理器所能运行的最高工作频率(单位:KHz)。
cpuinfo_min_freq:处理器所能运行的最低工作频率(单位:KHz)。
cpuinfo_transition_latency:处理器切换频率所需要的时间(单位:ns)。
scaling_available_frequencies:处理器支持的主频率列表(单位:KHz)。
scaling_available_governors:当前内核中支持的所有 governor(调频)类型。
scaling_cur_freq:保存着 cpufreq 模块缓存的当前 CPU 频率,不会对 CPU 硬件寄存器进行检查。
scaling_driver:该文件保存当前 CPU 所使用的调频驱动。
scaling_governor:governor(调频)策略,Linux 内核一共有 5 种调频策略:
Performance:最高性能,直接用最高频率,不考虑耗电。
Interactive:一开始直接用最高频率,然后根据 CPU 负载慢慢降低。
Powersave:省电模式,通常以最低频率运行,系统性能会受影响,一般不会用这个!
Userspace:可以在用户空间手动调节频率。
Ondemand:定时检查负载,然后根据负载来调节频率。负载低的时候降低 CPU 频率,这样省电,负载高的时候提高 CPU 频率,增加性能。
scaling_max_freq:governor(调频)可以调节的最高频率。
cpuinfo_min_freq:governor(调频)可以调节的最低频率。
stats 目录下给出了 CPU 各种运行频率的统计情况,比如 CPU 在各频率下的运行时间以及变频次数。
三、查看当前cpu频率
使用如下命令查看当前 CPU 频率:
cat cpuinfo_cur_freq
结果如下图所示:

cpuinfo_cur_freq=198000 cpuinfo_max_freq=792000 cpuinfo_min_freq=198000 scaling_cur_freq=198000 scaling_max_freq=792000 cat scaling_min_freq=198000 scaling_available_frequencies=198000 396000 528000 792000 cat scaling_governor=ondemand
可以看出,当前 CPU 支持 198MHz、396MHz、528Mhz 和 792MHz 四种频率切换,其中调频策略为 ondemand,也就是定期检查负载,然后根据负载情况调节 CPU 频率。因为当前我们开发板并没有做什么工作,因此 CPU 频率降低为 198MHz 以省电。
四、查看CPU 在各频率下的工作时间
查看 stats 目录下的 time_in_state 文 件可以看到 CPU 在各频率下的工作时间,命令如下:
cat /sys/bus/cpu/devices/cpu0/cpufreq/stats/time_in_state

五、修改调频策略
从上图中可以看出,CPU 在 198MHz、396MHz、528MHz 和 792MHz 都工作过,其中 198MHz 的工作时间是最长的!如果想让 CPU 一直工作在 792MHz ,就得配置 Linux 内核,将调频策略选择为 performance。或者修改 imx_alientek_emmc_defconfig 文件, 此文件中有下面几行:
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
修改成下边模式:修改完成以后重新编译 Linux 内核,编译之前先清理一下工程!因为我们重新修改过默认配 置文 件了, 编译 完成以 后使 用新 的 zImage 镜 像文 件重新 启动 Linux。再次查看 /sys/devices/system/cpu/cpu0/cpufreq/ cpuinfo_cur_freq 文件的值

可以看到当前 CPU 频率为 792MHz了,也就是高性能模式,一直以最高主频运行。
总结
对如何设置主频进行了介绍。