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了,也就是高性能模式,一直以最高主频运行。


总结

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

相关推荐
馨谙8 小时前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
逍遥德8 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
承渊政道8 小时前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器
艾莉丝努力练剑8 小时前
【Linux:文件】基础IO
linux·运维·c语言·c++·人工智能·io·文件
_OP_CHEN8 小时前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
南烟斋..8 小时前
Linux设备驱动开发完全指南:从启动流程到Platform驱动模型
linux·驱动开发·uboot
脏脏a8 小时前
告别物理出勤:Nginx 搭配 cpolar 实现远程开发无缝协作
运维·nginx
小草cys9 小时前
在 openEuler 上安装 DDE 图形桌面环境(适用于华为鲲鹏服务器/PC)
运维·服务器
天才奇男子16 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋17 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障