linux 系统移植(第十三期)---Linux 内核移植(2)- CPU 主频修改--- Ubuntu20.04

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录

文章目录

前言

一、准备工作

[二、查看cpu 信息命令](#二、查看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了,也就是高性能模式,一直以最高主频运行。


总结

对如何设置主频进行了介绍。

相关推荐
莫问前路漫漫4 小时前
Electerm 连接远程服务器完整指南
运维·服务器·git
苏宸啊4 小时前
Linux下diy程序:进度条
linux·运维·服务器
70asunflower4 小时前
Python with 语句与上下文管理完全教程
linux·服务器·python
tritone4 小时前
学习Chef自动化配置管理工具,为了实践环境部署,我选择了**阿贝云**的**免费虚拟主机**和**免费云服务器**来搭建测试平台。
服务器·学习·自动化
j_xxx404_4 小时前
Linux:调试器-gdb/cgdb使用
linux·运维·服务器
艳阳天_.4 小时前
华为云欧拉服务器问题记录
运维·服务器·华为云
驱动探索者4 小时前
AMD EPYC 服务器 CPU 学习
运维·服务器·学习·cpu
市安5 小时前
docker命令知识点1
运维·docker·云原生·容器·eureka
鸣弦artha5 小时前
TabBar标签页组件详解
linux·git·ubuntu
向上的车轮5 小时前
openEuler 内核解读(五):Linux 内核模块 “Hello World” 示例
linux·openeuler