- 首发:2023-05-07 00:26:23
- 教程
- 4064
在这篇文章中,我们将讨论如何通过修改EC寄存器来调整笔记本电脑的风扇转速。请注意,本文 不会给出直接的解决方案 ,而是提供解决问题的思路和大致方法。对于了解这些概念的用户,他们应该能够知道如何具体实现。对于不熟悉这些知识的用户来说,尝试进行相关操作可能存在很大的风险。
进行操作前,请务必备份当前EC寄存器的值,并确保具备拆机、断电和恢复BIOS的动手能力。
准备工作
安装 RW-Everything 软件。
在Windows 11中的
Windows安全中心
关闭内存隔离
-内存完整性
和内存访问保护选项
。以管理员权限运行RW-Everything。
编写软件工具
基于技术文档(如果有)或者通过逆向工程、参考开源项目等方式,编写一个可以读取和修改EC寄存器的软件工具。通常,这需要在操作系统级别编程,例如使用C或C++以及设备驱动程序的知识。例如,你可以在C++代码访问EC寄存器,通过C++操作Windows API读取和写入EC寄存器,需确保你的程序以管理员权限运行,以便访问底层硬件。
在编写之前,可以使用RW-Everything
软件进行手工控制测试。以下是具体的操作步骤。
操作步骤
以下是尝试修改EC寄存器以调整笔记本风扇转速的大致步骤:
- 备份当前设置 :在操作开始之前,请先备份当前EC寄存器的值,以便在发生问题时恢复。
- 识别EC芯片 :打开RW-Everything,并找到与EC芯片有关的部分。通常,您可以在工具栏上找到“Embedded Controller”或者类似的按钮。点击它以访问EC寄存器。
- 观察数据变化 :在正常运行状态下,观察EC寄存器中的数据变化。特别关注那些在风扇速度发生变化时数值也发生变化的寄存器。这些寄存器可能与风扇控制有关。可以通过对需要修改的风扇对应的器件进行压测并观察风扇转速来测试该值的变化。例如对CPU压测来寻找EC寄存器中影响CPU风扇的值,听风扇声音判断风扇的变化情况。同理,通过对GPU压测来寻找GPU风扇对应的EC寄存器。
修改寄存器值
在找到可能与风扇转速控制有关的寄存器后,尝试逐个修改它们的值。请注意,一个风扇可能对应2-3个寄存器,其中一个可能是使能寄存器(Enable),另外两个是读或写寄存器(Read/Write)。修改使能寄存器后,才能调整写寄存器实现修改风扇转速。
修改使能寄存器 :找到可能是使能寄存器的值,并尝试修改它。此操作将允许您访问和更改风扇控制相关的其他寄存器。一般可以尝试修改为极大值或极小值尝试使能。
调整写寄存器 :在修改使能寄存器后,尝试更改写寄存器的值以实现风扇转速的修改。如果不修改使能寄存器,写寄存器可能无法写入数据。
上图示例为小米笔记本pro 15 OLED版本的CPU风扇控制EC寄存器。同样的,GPU风扇也与这样的三个寄存器有关系。
由于掌握了EC寄存器操作的原理,使用具体代码读写是非常容易的,因此具体的代码的实现方法不再赘述,搞清楚与风扇相关的寄存器后,可以让ChatGPT4为你编写相关的代码。
注意安全事项
在调整风扇转速时,请注意不要将其设置得过低或关闭。否则可能导致过热和硬件损坏。在实施风扇控制方案时,始终考虑到散热需求。
在进行此类操作时,请始终谨慎,并充分了解所涉及的风险。在尝试任何方法之前,请确保准备好在出现问题时进行恢复。
暂无内容
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了