commit 7e3a7e3f67595f8228d0ae9a23efd70eb2b155bb Author: jack Date: Sat Mar 21 05:47:29 2026 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..a850c37 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# 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 源码。