FanControl.ChromeboxEC
Plugin for Fan Control that controls Chromebox fan via ectool. Reads EC temperature, sets fan duty. For Chromebox with coreboot.
Requirements
- Fan Control (Rémi Mercier)
- Coolstar CROS-EC driver / crosec with
ectool.exe - Run Fan Control as Administrator
No separate .NET installation needed — the plugin runs inside Fan Control’s process.
Build
- Copy
FanControl.Plugins.dllfrom your Fan Control installation tolib/:- Typical path:
C:\Program Files (x86)\FanControl\FanControl.Plugins.dll
- Typical path:
- Build from
FanControl.ChromeboxECdirectory:cd FanControl.ChromeboxEC dotnet build -c Release
Install
- Copy
FanControl.ChromeboxEC.dllto Fan Control’sPluginsfolder (same folder asFanControl.exe) - Optional: Copy
FanControl.ChromeboxEC.json.exampletoFanControl.ChromeboxEC.jsonand edit - Start Fan Control as Administrator
Configuration
Create FanControl.ChromeboxEC.json in the Plugins folder to override defaults. See ectool commands reference.
| Field | Default | Description |
|---|---|---|
EctoolPath |
C:\Program Files\crosec\ectool.exe |
Path to ectool |
TempArgs |
["temps", "0"] |
Read temp: ectool temps <sensorid>. Use ectool tempsinfo for your board |
FanRpmArgs |
["pwmgetfanrpm", "0"] |
Read RPM: ectool pwmgetfanrpm [index|all] |
AutoFanCtrlArgs |
["autofanctrl"] |
Restore auto fan when control disabled |
Plugin sensors
| Sensor | ectool command | Description |
|---|---|---|
| Chromebox EC Temperature | temps <sensorid> |
EC temp for fan curves |
| Chromebox EC Fan RPM | pwmgetfanrpm |
Fan speed |
| Chromebox EC Fan | fanduty / autofanctrl |
Fan control, restores auto on disable |
Recommended config
CPU core temp + board temp (EC Temp) dual curves, take max to set fan.
- Create curve CPU Package: temp source = CPU Package, output 0–100% duty
- Create curve Board Temp: temp source = Chromebox EC Temperature, output 0–100% duty
- Create Mix curve: function = Max, inputs = both curves above
- Set Chromebox EC Fan control to use Mix curve
The fan will respond to whichever sensor is hotter.
Troubleshooting: fan sensor not found
If "Chromebox EC Fan" control cannot pair with a speed sensor:
- Run Fan Control as Administrator (ectool requires it)
- Test ectool manually: open CMD as admin, run
If it fails, try
"C:\Program Files\crosec\ectool.exe" pwmgetfanrpm 0pwmgetfanrpm(no args) orpwmgetfanrpm all - Create config file: in Fan Control’s
Pluginsfolder, createFanControl.ChromeboxEC.jsonand adjustFanRpmArgs, e.g.:or{ "FanRpmArgs": ["pwmgetfanrpm"], "EctoolPath": "C:\\Program Files\\crosec\\ectool.exe" }["pwmgetfanrpm", "all"] - Check ectool path: if crosec is elsewhere, set correct
EctoolPathin config
中文 / Chinese
Fan Control 插件,通过 ectool 读取 Chromebox EC 温度并控制风扇。适用于刷了 coreboot 的 Chromebox。
依赖
- Fan Control(Rémi Mercier)
- Coolstar CROS-EC 驱动 / crosec,内含
ectool.exe - 以管理员身份运行 Fan Control
无需单独安装 .NET,插件在 Fan Control 进程内运行。
编译
- 将 Fan Control 安装目录下的
FanControl.Plugins.dll复制到lib/:- 常见路径:
C:\Program Files (x86)\FanControl\FanControl.Plugins.dll
- 常见路径:
- 在
FanControl.ChromeboxEC目录下编译:cd FanControl.ChromeboxEC dotnet build -c Release
安装
- 将
FanControl.ChromeboxEC.dll复制到 Fan Control 的Plugins文件夹(与FanControl.exe同目录) - 可选:将
FanControl.ChromeboxEC.json.example复制为FanControl.ChromeboxEC.json并修改配置 - 以管理员身份启动 Fan Control
配置
在 Plugins 文件夹中创建 FanControl.ChromeboxEC.json 可覆盖默认值。ectool 命令说明见 ectool 命令参考。
| 字段 | 默认 | 说明 |
|---|---|---|
EctoolPath |
C:\Program Files\crosec\ectool.exe |
ectool 路径 |
TempArgs |
["temps", "0"] |
读取温度:ectool temps <sensorid>。用 ectool tempsinfo 查看本机传感器 ID |
FanRpmArgs |
["pwmgetfanrpm", "0"] |
读取转速:ectool pwmgetfanrpm [index|all] |
AutoFanCtrlArgs |
["autofanctrl"] |
禁用控制时恢复自动风扇 |
插件功能
| 传感器 | ectool 命令 | 说明 |
|---|---|---|
| Chromebox EC Temperature | temps <sensorid> |
EC 温度,可用于风扇曲线 |
| Chromebox EC Fan RPM | pwmgetfanrpm |
风扇转速 |
| Chromebox EC Fan | fanduty / autofanctrl |
风扇控制,禁用时恢复 EC 自动控速 |
推荐配置
CPU 核心温度 + 板载温度(EC Temp)双曲线,取最大值设置风扇。
- 新建曲线 CPU Package:温度源选「CPU Package」,按温度输出 0–100% 占空比
- 新建曲线 Board Temp:温度源选「Chromebox EC Temperature」,按温度输出 0–100% 占空比
- 新建 Mix 曲线:函数选「最大」,输入上述两条曲线
- 将 Chromebox EC Fan 控制的曲线设为 Mix
这样风扇会以 CPU 和板载温度中较高者为依据控速。
故障排除:找不到风扇传感器
若「Chromebox EC Fan」控制无法配对到转速传感器(配对时找不到风扇):
- 确认以管理员身份运行 Fan Control(ectool 需要)
- 手动测试 ectool:以管理员打开 CMD,执行
若报错或输出异常,尝试
"C:\Program Files\crosec\ectool.exe" pwmgetfanrpm 0pwmgetfanrpm(无参数)或pwmgetfanrpm all - 创建配置文件:在 Fan Control 的
Plugins目录新建FanControl.ChromeboxEC.json,按本机 ectool 输出调整FanRpmArgs,例如:或{ "FanRpmArgs": ["pwmgetfanrpm"], "EctoolPath": "C:\\Program Files\\crosec\\ectool.exe" }["pwmgetfanrpm", "all"] - 确认 ectool 路径:若 crosec 安装在其他位置,在配置中设置正确的
EctoolPath