风扇占空比更新太慢问题分析
更新时间: 2026/05/29
在Gitcode上查看源码

问题背景

  • 单板类型:自研板;
  • 软件版本:openUBMC 25.12;
  • 涉及功能:风扇转速;
  • 触发条件:设置手动调速,level设置为50,打开风扇信息页面实时刷新,查看占空比数值变化;
  • 业务表现:预期快速更新至50%;实际长时间不更新时间上大概需要1分多钟;

问题复现步骤

  1. web页面设置手动调速模式,且设置50%转速;
  2. 开启实时刷新风扇信息;
  3. 确认占空比值变化;

关键日志信息

app.log日志信息如下:

web页面风扇占空比信息:

属性上硬件占空比信息:

定位过程

web界面的占空比数值来源是PWMPercentage属性,PWMPercentage是监听到HardwarePWM更新时才变化的,通过资源树发现HardwarePWM属性很快就变化了,但是PWMPercentage值一直未改变,查看代码,确认风扇占空比百分比更新方案,发现WMPercentage的值是在组件initial时获取一次占空比百分比,start时刷新一次占空百分比,设置占空比时刷新一次百分比,其他时候并未实时更新,因此,需要考虑在风扇监听时,加入占空比百分比数值获取,保证占空比,百分比等信息能根据实际情况获取。

问题原因

组件thermal_mgmt中未实时监听风扇占空比变化,进而根据风扇占空比的变化来修改PWMPercentage属性值。

解决方案

风扇在位状态监听的地方加入风扇硬件占空比数值变化监控,一旦硬件占空比有变化,则立刻更新PWMPercentage,供前台显示。