MSI Modern 15H AI C1MG-096IT Linux 热管理 - 逆向工程 EC 控制,带风扇配置文件和电池阈值
这个应用程序源于为 Linux 上的 MSI 笔记本电脑用户的必要性。旅程始于我发现 Intel 和 MSI 都没有为我的 Linux Mint Xia 发行版提供合适的驱动程序或控制应用程序。
经过广泛搜索,只有一个仓库对我的 Intel Core Ultra 5 125H CPU 看起来有希望: OpenFreezeCenter
然而,该项目最初是为 Intel 第10/12代 CPU 设计的。我的 Meteor Lake 架构带有 P 核和 E 核,带来了原始软件无法完全理解的独特挑战。
我开始了为期一年的逆向工程之旅:
该项目遵循现代开发实践,AI 工具辅助代码实现,而所有架构决策、逆向工程和问题解决仍由人类主导。
"AI 不知道我的 EC 地址是 0x68(CPU 温度)和 0xbf(电池)——我通过广泛的逆向工程和测试发现了这些!"
这种方法反映了当今专业开发者使用 GitHub Copilot 等工具的方式——作为实现人类识别问题解决方案的助手。
虽然这不是视觉上最惊艳的应用程序,但它提供了实用的控制:
cpufrequtils 配合 performance 调控器以获得最佳运行本项目专门针对 MSI Modern 15H AI C1MGT-096IT 进行了调校。
如果您有不同的 MSI 型号,EC 地址可能需要调整。
核心架构应该可以工作——您只需要映射您的特定硬件地址。
澄清一下:我没有选择 msi_ec 或 MControlCenter 不是因为忽略了它们,而是因为它们在我的笔记本电脑上从未工作过。
我的型号——MSI Modern 15H AI C1MG-096IT——在官方 msi_ec 兼容性列表中仍被列为 Unimplemented。
当我最初测试时,加载模块总是导致:modprobe: ERROR: could not insert 'msi_ec': Operation not supported。
只有今天(28/11/25),感谢我一位使用 NixOS 的密友,他给我发了一个链接,因为我发现了一个 GitHub 讨论,提到了 MSI Modern 15H AI C1MG 的潜在进展:
🔗 修复 GitHub 帖子
我之前确实不知道这个问题——这是我的错,没有早点再次检查。
不过,该线程中没有任何内容确认对我的具体型号的支持,而且该模块在我的系统上仍然失败。
我还尝试使用 MControlCenter,但它在启动时失败:Failed to load ec_sys kernel module
这是我当时发的原始 Reddit 帖子:
🔗 加载 ec_sys 内核模块失败 (Reddit 帖子)
因为这两个工具对我都不起作用,我最终出于必要构建了自己的解决方案——不是因为我想取代或与其他项目竞争。
如果你的笔记本电脑 确实 受 msi_ec 或 MControlCenter 支持,我绝对建议先尝试这些工具。我的项目只是像我的这样不受支持硬件的备用方案。
项目结构设计为可适应。虽然我无法为其他型号提供积极支持,但代码有详细文档,适合那些想要在自己的硬件上尝试 EC 逆向工程的人。
在花费一年时间在这个项目上之后——经历了无数个逆向工程、温度测试和调试的夜晚——我终于自豪地与社区分享这个解决方案。
起初只是因为对笔记本电脑热性能的极度沮丧,后来演变成了一个实际可用的功能工具。
如果你有不同的 MSI 型号,架构就在那里——你可能只需要修改几个 EC 地址。困难的部分(理解 MSI 的 EC 如何工作)已经完成。
从一个沮丧的 MSI Linux 用户到另一个——我希望这对你的帮助和对我的帮助一样大。
本项目包含最初源自 OpenFreezeCenter 的安装或辅助文件,该库基于 AGPL-3.0 许可证。
为了保持许可证兼容性,本项目根据 GNU AGPL-3.0 许可证 进行分发。
所有新代码(逆向工程、电池映射、EC 工具等)是 Anthonippillai Vincent Nishan 的原创作品。