# ectool 命令参考(中文) `ectool` 是 Chrome OS 嵌入式控制器(EC)的命令行工具,用于从用户空间与 EC 通信。在刷了 coreboot 的 Chromebox/Chromebook 上,可通过 Coolstar CROS-EC 驱动的 `ectool.exe` 使用。 ## 基本用法 ```text ectool [选项] <命令> [参数] ``` ### 常用选项 | 选项 | 说明 | |------|------| | `--dev=n` | 指定设备号 | | `--interface=dev\|i2c\|lpc` | 指定接口类型 | | `--i2c_bus=n` | 指定 I2C 总线号(如 `--i2c_bus=7` 使用 /dev/i2c-7),隐含 `--interface=i2c` | | `--device=vid:pid` | 指定 USB 端点(如 `18d1:5022`) | | `--name=cros_ec\|cros_fp\|cros_pd\|cros_scp\|cros_ish` | 指定 EC 类型 | | `--ascii` | 以 ASCII 格式输出 | --- ## 风扇相关命令 ### fanduty [idx] \ 强制将风扇 PWM 设为固定占空比(0–100)。 ```text ectool fanduty 75 # 所有风扇 75% ectool fanduty 0 50 # 风扇 0 设为 50% ``` ### autofanctrl \ 开启 EC 自动风扇转速控制。取消手动 `fanduty` 后,应调用此命令恢复 EC 自动控速。 ```text ectool autofanctrl ``` ### pwmgetfanrpm [\ | all] 读取风扇转速(RPM)。 ```text ectool pwmgetfanrpm 0 # 读取第 0 号风扇,输出如 "Fan 0 RPM: 2621" ectool pwmgetfanrpm all # 读取所有风扇 ``` ### pwmgetnumfans 显示风扇数量。 ### pwmsetfanrpm \ 设定目标风扇转速(RPM)。部分 EC 支持基于目标转速的控制。 ### pwmgetduty \ | kb | disp 读取当前 PWM 占空比(16 位,0–65535)。 ```text ectool pwmgetduty 0 # 风扇 0,输出如 "Current PWM duty: 50462"(约 77%) ``` 百分比 = 数值 / 65535 × 100 ### pwmsetduty 设置 PWM 占空比(16 位)。需配合具体参数使用。 --- ## 温度相关命令 ### temps \ 读取指定温度传感器的温度,以及与 `fan_off` / `fan_max` 的比值。 ```text ectool temps 0 # 输出如 "Core 336 K (= 63 C) 100% (313 K and 333 K)" ``` 输出为开尔文(K)及摄氏(C)。传感器 ID 因主板而异,用 `tempsinfo` 查看。 ### tempsinfo \ 显示温度传感器信息,用于确认本机支持的传感器 ID 和名称。 ```text ectool tempsinfo 0 ``` --- ## 电源与电池 ### battery 显示电池信息。 ### powerinfo 显示电源相关信息。 --- ## 系统与固件 ### chipinfo 显示 EC 芯片信息。 ### version 显示 EC 固件版本。 ### hello 检测与 EC 的基本通信是否正常。 ### console 显示 EC 调试控制台最新输出。 ### sysinfo [flags\|reset_flags\|firmware_copy] 显示系统信息。 --- ## 其他常用命令 ### switches 显示 EC 开关状态(如盖板、电源等)。 ### boardversion 显示板级版本。 ### flashinfo 显示 EC Flash 信息。 ### rtcget / rtcset 读取/设置 EC 内部 RTC。 ### led \ \ 控制 LED 颜色或查询亮度范围。 --- ## 与 Chromebox 风扇温控的对应关系 本仓库中的 **ChromeboxFanControl** 和 **FanControl.ChromeboxEC** 插件主要使用以下命令: | 功能 | 命令 | 说明 | |------|------|------| | 设定风扇占空比 | `ectool fanduty <0-100>` | 手动控速 | | 恢复自动控速 | `ectool autofanctrl` | 退出时恢复 | | 读取转速 | `ectool pwmgetfanrpm 0` | 显示 RPM | | 读取温度 | `ectool temps` | 从 EC 读取温度 | 不同主板的 `pwmgetfanrpm`、`temps` 参数可能不同,请用 `ectool help` 和 `ectool tempsinfo` 确认本机用法。 --- ## 完整命令列表(英文字母序) | 命令 | 说明 | |------|------| | adcread \ | 读取 ADC 通道 | | addentropy [reset] | 向设备秘密添加熵 | | apreset | 发起 AP 复位 | | autofanctrl \ | 开启自动风扇控制 | | backlight \ | 启用/禁用 LCD 背光 | | basestate [attach\|detach\|reset] | 强制底座状态 | | battery | 电池信息 | | batterycutoff [at-shutdown] | 切断电池输出 | | batteryparam | 读写板级电池参数 | | boardversion | 板级版本 | | button [vup\|vdown\|rec] \ | 模拟按键 | | cbi | 读写 Cros Board Info | | chargecurrentlimit | 设置最大充电电流 | | chargecontrol | 强制停止充电或放电 | | chargeoverride | 覆盖充电口选择逻辑 | | chargesplash | 充电动画相关 | | chargestate | 充电状态 v2+ | | chipinfo | 芯片信息 | | cmdversions \ | 命令版本掩码 | | console | EC 调试控制台输出 | | cec | CEC 消息读写 | | echash [CMDS] | EC hash 相关 | | eventclear \ | 清除 EC 主机事件 | | eventclearb \ | 清除 EC 主机事件副本 B | | eventget | 原始 EC 主机事件标志 | | eventgetb | 原始 EC 主机事件标志副本 B | | eventgetscimask | SCI 掩码 | | eventgetsmimask | SMI 掩码 | | eventgetwakemask | 唤醒掩码 | | eventsetscimask \ | 设置 SCI 掩码 | | eventsetsmimask \ | 设置 SMI 掩码 | | eventsetwakemask \ | 设置唤醒掩码 | | extpwrlimit | 外部功率限制 | | fanduty \ | 固定风扇 PWM 占空比 | | flasherase \ \ | 擦除 EC Flash | | flasheraseasync \ \ | 异步擦除 EC Flash | | flashinfo | EC Flash 信息 | | flashspiinfo | EC SPI Flash 信息 | | flashpd \ \ \ | 通过 PD 刷写 | | flashprotect [now] [enable\|disable] | Flash 写保护 | | flashread \ \ \ | 从 EC Flash 读取 | | flashwrite \ \ | 写入 EC Flash | | forcelidopen \ | 强制盖板为打开 | | fpcontext | 指纹传感器上下文 | | fpencstatus | 指纹加密引擎状态 | | fpframe | 获取指纹图像 | | fpinfo | 指纹传感器信息 | | fpmode [mode...] | 指纹传感器模式 | | fpseed | 设置 TPM seed | | fpstats | 指纹匹配时序统计 | | fptemplate [\\|\] | 添加/导出指纹模板 | | gpioget \ | 读取 GPIO | | gpioset \ | 设置 GPIO | | hangdetect | 挂起检测定时器 | | hello | 检测 EC 通信 | | hibdelay [sec] | 休眠前延时 | | hostsleepstate | 主机睡眠状态 | | hostevent | 主机事件掩码 | | i2cprotect \ | I2C 总线保护 | | i2cread | I2C 读取 | | i2cspeed \ [speed] | I2C 总线速率 | | i2cwrite | I2C 写入 | | i2cxfer \ \ \ [write bytes...] | I2C 传输 | | infopddev \ | USB-C 配件信息 | | inventory | 支持功能列表 | | kbfactorytest | 键盘工厂测试 | | kbid | 键盘 ID | | kbinfo | 键盘矩阵信息 | | kbpress | 模拟按键 | | keyscan \ \ | 按键扫描测试 | | led \ \ | LED 控制 | | lightbar [CMDS] | 灯条控制 | | locatechip \ \ | 查找芯片地址 | | mkbpget \ | MKBP 按键/开关 | | mkbpwakemask | MKBP 唤醒掩码 | | motionsense [CMDS] | 运动传感器 | | panicinfo | 崩溃信息 | | pause_in_s5 [on\|off] | S5 关机时是否暂停 | | pchg [\] | 外设充电口 | | pdcontrol [suspend\|resume\|reset\|disable\|on] | PD 芯片控制 | | pdchipinfo \ | PD 芯片信息 | | pdlog | PD 事件日志 | | pdwritelog \ \ | 写入 PD 日志 | | pdgetmode \ | 获取 USB-PD 模式 | | pdsetmode \ \ \ | 设置 USB-PD 模式 | | port80flood | 快速写 port 80 | | port80read | port 80 历史 | | powerinfo | 电源信息 | | protoinfo | EC 主机协议信息 | | pse | PoE PSE 端口功率 | | pstoreinfo | 持久存储信息 | | pstoreread \ \ \ | 读取持久存储 | | pstorewrite \ \ | 写入持久存储 | | pwmgetfanrpm [\\|all] | 风扇转速 | | pwmgetkblight | 键盘背光百分比 | | pwmgetnumfans | 风扇数量 | | pwmgetduty | 当前 PWM 占空比 | | pwmsetfanrpm \ | 设定目标风扇转速 | | pwmsetkblight \ | 键盘背光百分比 | | pwmsetduty | 设置 PWM 占空比 | | rand \ | 生成随机数 | | readtest | EC 读取测试 | | reboot_ec \ | 重启 EC | | reboot_ap_on_g3 [\] | G3 后自动重启 AP | | rgbkbd ... | RGB 键盘 | | rollbackinfo | 回滚块信息 | | rtcget | 读取 RTC | | rtcgetalarm | RTC 闹钟剩余秒数 | | rtcset \ | 设置 RTC | | rtcsetalarm \ | 设置 RTC 闹钟 | | rwhashpd | PD MCU rw_hash | | rwsig \ | RW 签名相关 | | sertest | 串口输出测试 | | smartdischarge | 智能放电参数 | | stress [reboot] [help] | 压力测试 | | sysinfo [flags\|reset_flags\|firmware_copy] | 系统信息 | | switches | EC 开关状态 | | temps \ | 温度传感器读数 | | tempsinfo \ | 温度传感器信息 | | thermalget | 读取热阈温 | | thermalset | 设置热阈温 | | tpselftest | 触摸板自检 | | tpframeget | 触摸板帧数据 | | tmp006cal | TMP006 校准 | | tmp006raw | TMP006 原始数据 | | typeccontrol \ \ | USB PD 策略 | | typecdiscovery \ \ | USB-C 发现信息 | | typecstatus \ | USB-C 状态 | | uptimeinfo | EC 运行时长与 AP 复位 | | usbchargemode \ \ | USB 充电模式 | | usbmux \ | USB Mux 状态 | | usbpd | USB PD 控制(已弃用) | | usbpddps [enable\|disable] | 动态 PDO 选择 | | usbpdmuxinfo [tsv] | USB-C SS Mux 信息 | | usbpdpower [port] | USB PD 功率 | | version | EC 版本 | | waitevent \ [\] | 等待 MKBP 事件 | | wireless \ | WLAN/蓝牙无线控制 | --- ## 常用命令速查(实测 Coolstar ectool) | 操作 | 命令 | |------|------| | 读取温度 | `ectool temps 0` | | 读取风扇转速 (RPM) | `ectool pwmgetfanrpm 0` 或 `ectool pwmgetfanrpm all` | | 读取占空比 (16 位) | `ectool pwmgetduty 0`,百分比 = 数值/65535×100 | | 设置风扇占空比 | `ectool fanduty 75`(所有风扇)或 `ectool fanduty 0 50`(风扇 0) | | 设置目标 RPM | `ectool pwmsetfanrpm 2000` | | 恢复 EC 自动控速 | `ectool autofanctrl` | --- ## 参考 - [Chrultrabook ectool 安装说明](https://docs.chrultrabook.com/docs/installing/ectool.html) - [Coolstar CROS-EC 驱动](https://github.com/coolstar/crwindows)