news 2026/8/24 23:01:17

如何使用 TPFanCtrl2:ThinkPad 双风扇控制的三步完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用 TPFanCtrl2:ThinkPad 双风扇控制的三步完整指南

如何使用 TPFanCtrl2:ThinkPad 双风扇控制的三步完整指南

【免费下载链接】TPFanCtrl2ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2

深夜敲代码,风扇毫无征兆地全速轰鸣;白天负载上来,机身发烫转速却不涨。这类"散热不听话"在 ThinkPad 上并不少见。TPFanCtrl2 是一款面向 Windows 10/11 的 ThinkPad 双风扇控制工具:它绕过系统 API,直接和 EC 对话、逐个写入两把风扇的档位,全部散热行为由程序目录里一份TPFanControl.ini决定。


定位:TPFanCtrl2 解决了什么问题

原版 TPFanControl 只带单风扇参数,双风扇机型上第二把风扇够不着。TPFanCtrl2 在原版基础上并入双风扇改造,支持两个风扇设备,默认曲线偏安静,60°C 之前风扇保持停转。它没有复杂的图形配置器,行为全由 ini 文件控制。

方面BIOS 内置策略TPFanCtrl2
曲线写死Level行自由增删
双风扇BIOS 统一调度逐把选择后分别写档位
模式单一BIOS / Smart / Manual,外加两套曲线
可观测性黑盒每个传感器都标出寄存器地址,日志可回放

上手:TPFanCtrl2 安装步骤与首次运行

  1. 拿程序:执行git clone https://gitcode.com/gh_mirrors/tp/TPFanCtrl2,用 Visual Studio 2022 打开 fancontrol/ 里的fancontrol.sln,选 Debug + Win32 编译;直接使用已编译的发行版可跳过此步。 ⚠️ 编译依赖仓库里的TPFCIconTPFCIcon_noballons两个子项目,缺了它们主程序跑不起来。
  2. 装 TVicPort 驱动:它是程序读写 EC 寄存器的通道,缺失时启动会报tvicport.sys missing,届时只能看温度、动不了风扇。驱动位数要和系统一致。
  3. 管理员运行:右键fancontrol.exe,在弹出菜单里选"以管理员身份运行",并确认TPFanControl.ini与 exe 同目录。没有管理员权限,程序拿不到 EC 写权限。
  4. 确认首次成功:默认配置Active=2启动即进 Smart 模式,Cycle=5每 5 秒读一轮温度。窗口左栏出现类似cpu 87°C (0x78)的条目、托盘图标带上温度数字,就算接上了。✅

Windows XP 到 8 均未测试,官方口径只保证 Win10/11。


能力:核心功能逐个看

三种模式:BIOS、Smart、Manual

  • 解决什么:不同时段想要"系统管""曲线管""我说了算"。
  • 怎么开:窗口里点单选按钮,或热键Ctrl+Shift+B/Ctrl+Shift+S/Ctrl+Shift+M
  • 改完你会看到:底部 Status 行滚动出Fan: 0x07 / Switch: 87°C这类条目,托盘图标按IconLevels=65 75 80三级阈值变黄、橙、红。

双风扇逐个调速

  • 解决什么:双风扇机型第二把风扇没人管。
  • 怎么实现:程序先往寄存器 0x31 写 0x00(风扇 1)或 0x01(风扇 2)选定目标,再把档位写进 0x2F。
  • 改完你会看到:Speed 栏显示成对转速,例如4373/4373 RPM

手动模式的温度兜底

  • 解决什么:想锁死低档位图安静,又怕高负载下过热。
  • 怎么开:Active=3配合ManFanSpeed=0ManModeExit=78
  • 改完你会看到:冷启动风扇不转,温度一过 78°C 自动回到 Smart 模式。

托盘温度图标

  • 解决什么:窗口最小化后不想开窗口也知道热不热。
  • 怎么开:ShowTempIcon=1,图标每IconCycle秒刷新一次。
  • 改完你会看到:托盘里多出一个带温度数字的小图标,气泡提示可用NoBallons关掉。

配置:TPFanControl.ini 配置示例

Level行格式为Level=温度 档位 hystUp hystDown,后两列是升温、降温迟滞。以Level=60 0 0 5为例:温度升到 60°C 立即进入该档,降回去则要再掉 5°C,避免风扇在临界点来回扑动。

曲线一:深夜码字(默认值,风扇晚启动、低档停得久)

Level=50 0 0 0 Level=60 1 0 0 Level=70 2 0 0 Level=80 4 0 0 Level=90 7 0 0

预期效果:50°C 以下全静,90°C 才见 7 档。

曲线二:长负载渲染(每 10°C 爬一档,顶端留应急档)

Level=45 1 0 0 Level=55 3 0 0 Level=65 5 0 0 Level=75 7 0 0 Level=85 64 0 0

预期效果:55°C 以下风扇已在 3 档。⚠️ 64 属于极端档,可能是厂商未定义的工况;Lev64Norm=1时它按普通档带迟滞运行,否则表现为脉冲式应急。128 不是档位,含义是"把控制权交还给 BIOS"。

曲线三:会议超静音(第二套曲线,一键切换)

MenuLabelSM2=会议超静音/ Level2=55 0 0 0 Level2=65 1 0 0 Level2=75 3 0 0 Level2=85 7 0 0

预期效果:托盘菜单或Ctrl+Shift+2切到这套曲线,白天跑满速、开会切低噪。

💡 0–7 是厂商预留的档位集合;写十六进制 0–128 可以更细地控制风扇,128 的写法是 80。


原理:背后的 EC 对话链路

ThinkPad 的 EC(嵌入式控制器)是独立小板,管电源、电池和风扇。TPFanCtrl2 所有寄存器读写都经 TVicPort 驱动转发,一整圈控制回路分六步:

  1. Cycle(默认 5)秒,批量读回 0x78 起 12 个传感器寄存器;
  2. IgnoreSensors剔除干扰项、用SensorOffset修正,取最高温;
  3. 最高温对照Level曲线逐级比对,叠加迟滞,得出目标档位;
  4. 向 0x31 写 0x00/0x01,选中风扇 1 或风扇 2;
  5. 向 0x2F 写目标档位,并回读 0x2F 校验写成功;
  6. 读 0x84 处的 16 位转速值,把 RPM 更新到界面和日志。

一句话串起来:温度寄存器 → 最高温 → 曲线匹配 → 选风扇 → 写档位 → 读转速 → RPM 反馈

💡 动 EC 之前,程序要拿到名为Access_Thinkpad_EC的系统互斥锁,避免和 BIOS、其他监控软件互相踩;连续 10 次读失败(MaxReadErrors)则自动退回 BIOS 并退出。

懂这条链路,就能解释两个参数为什么这么设:Cycle调太小,每轮都要走一遍 EC 读写,假读会更多;Level不写迟滞,温度停在阈值附近时档位会反复横跳。


排障:四道常见坑

症状原因解法
启动提示tvicport.sys missingTVicPort 没装或驱动位数不符重装驱动并核对系统位数
风扇完全不动权限不足,或与其他监控软件争抢 EC提权到管理员重跑,关掉其余硬件监控工具
一把风扇提速、另一把没跟上EC 通信偶发延迟切到 BIOS 模式再切回原模式,通常能恢复
单风扇机型 RPM 显示 0已知问题,修复中等新版,或临时换用 archive/ 里的 2.1.5B

⚠️ 机型方面两条:P50 的控制参数不同,走archive/里的 2.1.5B,该版温度显示有已知缺陷,建议手动模式;部分 ThinkBook 使用另一套 EC 地址,先短时间试用再决定长期跑。


生态:版本、分支与参与方式

主线当前为 2.3.3 Dual Fan;老版本和机型衍生版收在archive/,例如 2.1.5b(P50 用)与 2.2.0a。

FanDjango 的 V2.3.9 分支正在做一次大重构:日志措辞和界面细节重新梳理,新增型号支持,以早期测试形式发布,反馈足够后可能并入主线。已确认支持的机型包括 P53、Z13、Z16 Gen1/Gen2、P16 Gen1 AMD、T16 Gen1 AMD、X1 Carbon Gen12、X230T、P1 Gen7。

代码与二进制均为公共领域(Unlicense),随意使用、再分发。最低参与门槛是反馈:在自己机型上验证兼容性、或分享一份跑通过的曲线,对项目的价值不亚于修一个 bug。要写代码的话,提 PR 并至少通过 1 次 review 即可合入。


收尾:落地清单

  • 先把原始TPFanControl.ini备份一份,改坏了能随时还原
  • 确认 TVicPort 装好、启动方式固定为"以管理员身份运行"
  • 默认曲线原样跑一周,顺手把Log2csv=1打开导出温度历史
  • 按使用场景换一套曲线,核对风扇动作是否对得上阈值
  • 启用第二套曲线与热键,验证Ctrl+Shift+2切换即时生效
  • 机型遇到兼容问题,把型号报给项目 Issues

下次深夜风扇突然吼起来,你手上有的是能改的曲线,而不是只能忍着——每次改动,5 秒内就能看到结果。

【免费下载链接】TPFanCtrl2ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 22:55:38

Windows下编译Ceres Solver 2.2.0:集成CUDA与SuiteSparse全攻略

1. 项目背景与动机:为什么要在Windows上手动编译Ceres Solver?如果你正在处理计算机视觉、机器人或者任何涉及非线性优化的项目,Ceres Solver这个名字对你来说一定不陌生。作为谷歌开源的C库,它在处理大规模、复杂的优化问题上表现…

作者头像 李华
网站建设 2026/8/24 22:55:25

Java大厂面试核心:Spring Security与微服务架构深度解析

1. 互联网大厂Java技术面试的核心考察维度在大厂Java技术面试中,面试官通常会从三个层面进行考察:基础深度、架构广度和实战经验。Spring Security和微服务架构作为高频考点,恰恰覆盖了这三个维度。Spring Security考察的是候选人对于安全机制…

作者头像 李华
网站建设 2026/8/24 22:55:06

Zed 字体配置指南:把代码读得不累眼

Zed 字体配置指南:把代码读得不累眼 【免费下载链接】zed Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. 项目地址: https://gitcode.com/GitHub_Trending/ze/zed Zed 字…

作者头像 李华
网站建设 2026/8/24 22:53:20

Hive-SQL核心语法与大数据查询优化实战指南

1. 从数据仓库到数据湖:为什么Hive-SQL是数据工程师的必备技能如果你正在处理海量数据,无论是TB级的用户日志,还是PB级的交易记录,你迟早会碰到一个核心问题:如何用一种熟悉、高效且可扩展的方式来查询和分析它们&…

作者头像 李华