# Chromebox 风扇温控(Windows) 在刷了 coreboot 的 Chromebox 上,用 **LibreHardwareMonitor** 读取 **CPU 核心温度**,通过 Coolstar **crosec** 自带的 **`ectool`** 设置 **`fanduty`**,并从 **ectool** 读取 **风扇转速(RPM)**。主界面提供三条实时曲线:温度、目标占空比、转速。 ## 依赖 1. 安装 [Coolstar CROS-EC 驱动](https://github.com/coolstar/crwindows)(或您当前使用的 crosec 安装包),确保存在默认可执行文件: `C:\Program Files\crosec\ectool.exe` 若路径不同,在程序「高级」选项卡中修改。 2. **以管理员身份运行**本程序(清单已要求提升权限;LHM 与 EC 通信通常需要管理员)。 3. 本机安装 [.NET 8 运行时](https://dotnet.microsoft.com/download/dotnet/8.0)(若使用 `dotnet publish --self-contained false` 发布,目标机需运行时)。 ## 编译 ```powershell .\build.ps1 ``` 发布到 `dist\`: ```powershell .\build.ps1 -publish ``` 需已安装 [.NET 8 SDK](https://dotnet.microsoft.com/download)。 ## 配置 - 安装目录旁的 **`appsettings.json`**:默认选项。 - **`%AppData%\ChromeboxFanControl\config.json`**:保存后会覆盖同名项(用户配置)。 重要字段: | 项 | 说明 | |----|------| | `FanRpmArgs` | 读取转速时传给 ectool 的参数(默认 `pwmgetfanrpm` `0`),请用本机 `ectool help` 核对。 | | `FanDutyArgs` | 读取占空比时传给 ectool 的参数(如 `pwmget` `0`);空则跳过,显示目标占空比。 | | `AutoFanCtrlArgs` | 退出程序时恢复 EC 自动风扇(默认 `autofanctrl`),若命令名不同请修改。 | | `TempSource` | `AverageCore` 或 `MaxCore`。 | | `CurvePoints` | 13 个 0–100 的占空比控制点(与 Chrultrabook-Tools 曲线逻辑一致)。 | ## 使用说明 - 启动后任务栏托盘有图标;可「暂停控制」(不再下发 `fanduty`,EC 保持上次状态)。 - **退出**或关闭前会尝试执行 **自动风扇恢复**命令(见配置)。 - 若连续多次读不到 CPU 温度,将进入**安全模式**(固定占空比或 `autofanctrl`,见界面选项)。 ## 免责声明 软件按「原样」提供。错误的风扇策略可能导致过热或硬件损坏;请自行承担使用风险。 ## 许可 本项目为实现计划而编写的原创代码;风扇曲线算法行为参考 Chrultrabook-Tools 的公开逻辑描述,未复制其 GPL 源码。