chenxinyi 发表于 2023-10-31 17:38

【原创】发一个自修改后的DELL笔电风扇速度控制程序(仅限EC控制, 2023-11-7更新)

本帖最后由 chenxinyi 于 2023-11-7 23:25 编辑

原作者:AaronKelley

注意:
此程序可能不适用于控制DELL笔电Intel 11代及以上BIOS系统,
此程序可以与DELL公司提供的Power Manager > 散热管理(热度调节)共存同步

此程序除了对原作者程序的汉化以外,作了一些精简,
并特别改进"平滑"模式下,在设定温度范围内自动调节风扇速度,尽可能避免笔电常时间工作在不必要的高风速,高噪音中。

下载解压运行DellFanManagement.exe即可。
如果无法运行,请下载安装.NET Framework 5.0(或者直接微软网站下载安装)




1. 低于温度下限停止风扇 (并同时可设置延迟x秒以后停止)
2. 最小化图标支持显示实时CPU温度
3. 修正了动画图标与风扇速度不同步问题






原始”平滑"模式下调节风扇原理:风扇速度只有在CPU温度(包括GPU,下面不再作特别说明)全部低于设置的上,下限,并且当前风扇速度
低于设置的限值时,风扇速度被锁定在RPM限值下,此后,如果工作负荷有增量时,不至于风噪突然增高。(参看英文链接)

改进"平滑"模式可以更智能地调节风速(在设定的温度范围内),减少噪音:

一个经常发生的故事是,如果笔电经常工作在某个特殊的温度上,下限范围内(比如65到90度),
按DELL SMBIOS自动调节,只有关闭,中速,高速三种模式,此时,笔电CPU温度在75度附近很可能风扇就自动被拉到高速,
并使CPU温度维持在75度附近,虽然温度降了,但高速的噪音无法忍受?
那么,能不能这个时候能适当降低风扇速度,但又保持一个较高的温度上限90度(不至于到100度)?

如果你不介意的CPU温度可以更高点,但风扇速度降低点,噪音少一点,这个修改后的程序就比较适合你。

举例:(见下图)
我的DELL latitude 7490中速RPM是3400,高速RPM是近7000 (可以通过”手动"模式,关闭EC, 调节中,高速得知)
现在我选择”平滑“模式, 并把CPU低温限制在65,高温限制在90,
RPM限值在中速RPM 3400,在多数高于65度并低于等于90度的场景模式下,风扇可以维持在中速(几乎很小噪音)
原理是,当温度检测在你设置的65到90度范围内,但风速高于RPM限值 3400,程序就自动试着将风扇降到中速。



此程序只在我的笔电上试运行,效果还可以, 感兴趣的朋友有类似需求的,想在90度或以下工作环境中保持低噪音的,可以试一下此程序,
设置方法参考上述, 温度范围可以差不多就设在65-90,RPM限值通过检测中速RPM值设定 (比如你的笔电中速RPM可能是2400)

关于”平滑“模式下的设置和更多的案例说明:
1. 注意不要将温度范围设置的太靠近,也不将温度上限设置高于95度(你懂的)

2. 你的工作环境需要经常保持在高负荷,比如你玩3D游戏,CPU温度保持很高常常在高速风扇时也有85度以上,就不得不常期开启高速风扇,此时,RPM限值可以往高速RPM调节(甚至8000,9000都可以),这样,程序就不会总是尝试去降速,然后又增速,反复切换;
3. 高负荷工作在90度边缘十分频繁(时常超越90度),“平滑”模式下,自动调节反复尝试降低风速,导致风速忽高忽低。此时,可以试着合并选择”热度调节“ > "安静” , 原理是关闭了睿频, 牺牲了一定的性能,使CPU温度不至于超过90度,风扇始终保持中速运行(其实在上面2的游戏场景,也可以试下这种设置方式)。

4. ... 没有了,等待发现惊人的bug !哈哈

关于“手动”模式
使用场景仅限于你笃定你的工作负荷恒定,比如,对应在50度附近 - 可关闭风扇,70度附近 - 中速,90度附近 - 高速

最后,如果“手动”和“平滑”模式的选项处于失效不可设置,大概率可能是驱动程序签名问题,
可以参考本坛另一个风扇程序控制(那个程序太老了,我自已用不了),在控制台运行命令:bcdedit.exe -set TESTSIGNING ON

使用此程序自担风险!Enjoy it !






wqnfs 发表于 2023-10-31 21:29

老哥牛逼立体。

keroro1138 发表于 2023-10-31 22:11

刚刚测试了一下,电脑是5400,EC控制风扇不能选关,手动灰色,设置不了

chenxinyi 发表于 2023-10-31 22:29

keroro1138 发表于 2023-10-31 22:11
刚刚测试了一下,电脑是5400,EC控制风扇不能选关,手动灰色,设置不了




试下这个命令行程序

DellFanCmd.exe test

keroro1138 发表于 2023-10-31 22:51

chenxinyi 发表于 2023-10-31 22:29
试下这个命令行程序

DellFanCmd.exe test

刚刚测试了一下,成功添加了命令程序,EC控制和手动仍旧是灰色的,但是平顺模式下,CPU风扇的限速可以用了

keroro1138 发表于 2023-10-31 23:02

chenxinyi 发表于 2023-10-31 22:29
试下这个命令行程序

DellFanCmd.exe test

谢谢指点,刚刚又试了一下,可以用了,手动可以调节了,谢谢

wshuda 发表于 2023-10-31 23:18

mark,下载试下看看!!

xuancheng 发表于 2023-11-4 22:05

今天刚找到测试了原来英文版,来论坛就发现你的中文版,多谢兄台!
这个程序配合ThrottleStop,在8950上用起来感觉很好

xuancheng 发表于 2023-11-4 22:18

试了下,windows11下,程序说没有.net,装了5.0也没用,原版可以跑,不知那里问题了!

xuancheng 发表于 2023-11-5 00:43

安装了dotnet 5.0 framework,不是简化的runtime,可以打开使用了,多谢兄台指教,期待你的改进版,多谢!

xuancheng 发表于 2023-11-9 09:09

多谢兄台,已安装新版本,可以自动加载这个不错,多谢!

xuancheng 发表于 2023-11-9 10:01

不过自动加载的windows11预览版下,加载后任务栏没有图标,任务管理器会出现风扇程序图标,又会消失,双击风扇程序文件打开运行正常

chenxinyi 发表于 2023-11-9 10:20

本帖最后由 chenxinyi 于 2023-11-9 10:24 编辑

xuancheng 发表于 2023-11-9 10:01
不过自动加载的windows11预览版下,加载后任务栏没有图标,任务管理器会出现风扇程序图标,又会消失,双击 ...
作为服务不会有界面出现,你可以新建一个任务计划,以最高权限权运行,每天每隔一分钟自启动, 可以参看下图:











明仔真帅 发表于 2024-1-8 22:06

大佬,请问我这边显示ec控制风扇那里显示的是开,且是灰色的,不可以更改,这怎么回事啊?但自动和平滑选项可以调节。下载了那个dellfancmd,运行后一闪而过,但ec控制风扇没变化。我的是i5 8350U,是不是不适合啊

linst 发表于 2024-1-9 09:32

在用 多谢楼主

明仔真帅 发表于 2024-1-9 21:59

明仔真帅 发表于 2024-1-8 22:06
大佬,请问我这边显示ec控制风扇那里显示的是开,且是灰色的,不可以更改,这怎么回事啊?但自动和平滑选项 ...

应该是下载安装NET5,打开dellfanman,显示ec开启,不可调节,手动灰色不可调节。要下载dellfancmd那个压缩包。但打开后一闪而过,没有效果。
不知道控制台是哪个,是这个dellfancmd文件吗

明仔真帅 发表于 2024-1-9 22:18

大佬,有时间录屏讲解下,小白需要您的指点,感谢

xm7780 发表于 2024-1-12 21:11

可以提供下修改的源码么,谢谢

cuguess 发表于 2024-5-8 23:33

chenxinyi 发表于 2023-10-31 17:38
原作者:AaronKelley

注意:


兄弟,刚刚才找回专门网的账号、看到、下载并使用了你的这个应用,想咨询个问题、并提个建议:

1、我的是7577,用你的测试工具显示只有2档风速,即 中速接近2500,高速接近4800。这和使用 手动 并手动控制设置为中速、高速的结果一致。但问题是,如果我使用 平滑,设置温度限度为65和90、风俗限制值为2700后,应用状态为:a、风速降低到4300就不会再降低了;b、状态栏一直提示:风扇速度高、等待EC降低速度 —— 实际上并不会再降低速度;c、如果我勾选 低于温度下限停止风扇,风扇表现为要么停止、要么直接4300。
不知道这是不是正确现象,如何才能实现EC平滑的降低风速到低速??

2、增加一种 半自动模式,或者修改 手动模式,可以实现:档低于温度下限时,风扇停转;在区间内时,为中速;高于上限时,为高速。

无论如何,感谢你贡献的应用 {:1_306:} {:1_306:}

cuguess 发表于 2024-5-9 22:34

chenxinyi 发表于 2023-10-31 17:38
原作者:AaronKelley

注意:


我注意到这样的状况:
当模式为【平滑】时,【EC控制风扇】会选中开、并整体变为灰色。

我建议的【半自动模式】应为:选中后【EC控制风扇】为关、并按照温度区间由应用设置风速为 关、中速、高速

从目前我的尝试来看,EC控制风扇在我机型上是无效果的、手动控制风扇是有效的、所以只有增加了这个逻辑的【半自动模式】才能实现控制风扇的需要。

另外,我用的是你的最新版,我看你的截图中 热度调节 是可操作选择的,而我的无论选择什么模式都是灰色的,这是为什么?

cuguess 发表于 2024-5-12 11:01

chenxinyi 发表于 2023-10-31 17:38
原作者:AaronKelley

注意:


研究了几天,发现原作者的程序就是这么设定的逻辑,所以写了一个批处理来自己实现需求:

@echo off & setlocal enabledelayedexpansion
cd /d %~dp0

for /f "skip=10 tokens=1-2 delims=:" %%a in (' nvidia-smi -q -d=TEMPERATURE ') do (       
        set tmpD=%%a
        if "!tmpD:~-34!"=="GPU Current Temp                  " (
                set /a tmpD=90
                for /f "tokens=1 delims= " %%i in ("%%b") do ( set /a tmpD=%%i)

                if !tmpD! GEQ 80 (
                        DellFanCmd.exe ec-disable-nofanchg
                        DellFanCmd.exe fan1-level2
                        DellFanCmd.exe fan2-level2
                )
                if !tmpD! LEQ 50 (
                        DellFanCmd.exe ec-disable-nofanchg
                        DellFanCmd.exe fan1-level1
                        DellFanCmd.exe fan2-level1
                )                       
                echo %DATE% %TIME% 当前GPU温度为:!tmpD! >> "Temperature.TXT"
                goto :break_loop
        )
        msg %username% /time:30 "警告: 未能读取到GPU温度!!!!"
)

:break_loop

这里用了:
a、原作者的 DellFanCmd 程序来控制风扇转速;
b、N卡自己的 nvidia-smi 程序来获取GPU温度。
逻辑是:当获取到GPU的温度高度80度,则开启最高风速;当低于50度,则设置为半速。
然后在计划任务中设置每1分钟触发一次判断。
这基本满足了我的需要。

再次感谢你的应用,给了我很多启发。
页: [1]
查看完整版本: 【原创】发一个自修改后的DELL笔电风扇速度控制程序(仅限EC控制, 2023-11-7更新)