重启BMC后风扇一直满转问题分析
更新时间: 2026/05/29
在Gitcode上查看源码

问题背景

  • 单板类型:S920X20;
  • 软件版本:openUBMC 25.06;
  • 涉及功能:BMC重启,风扇调速;
  • 触发条件:web固件升级界面重启BMC,观察风扇转速。
  • 业务表现:预期风扇按照实际的调速策略进行调速展示风扇转速;实际风扇满转,一直到直接按电源键开机后才正常。

问题复现步骤

BMC在web页面重启后查看风扇转速。

关键日志信息

app.log日志: cooling_control.log日志文件:

定位过程

  1. 从app.log日志中确认,当前还处于BMC启动阶段,启动阶段时下发固定风扇转速100,需要在BMC启动完成后(风扇加载完成),才会按照相应调速策略进行调速;
  2. 如果BMC已经启动完成的条件下,如果这个时候环境上没有生效的目标调速,则算不出来新的转速,此时就需要排查风扇调速策略;
  3. 确认Ncsi线缆是否在位,是否插入了OCP卡等,该种情况下,风扇是在下电情况下依然会转。

问题原因

转速下发100的原因存在两种可能:

  • src/lualib/basic_cooling/cooling_init_service.lua中85行日志记录转速,该转速为CoolingConfig中配置的初始转速;
  • OS下电状态,所有调速策略不生效:src/lualib/basic_cooling/cooling_requirememts.lua文件中函数function cooling_requirements:update_objs_isvalid(data, disk_temp_available, power_state, fans_config_o)函数入参power_state,在567行进行调速策略生效条件判断,调用get_requirement_invalid_cause函数,掉电状态返回PowerNotMeet字段,调速策略属性IsValid为0,无调速策略生效 按照当前问题描述,当重启BMC时,系统并未上电,此时风扇调速策略不生效,风扇满转属于正常现象。

解决方案

可尝试手动调整BMC重启过程中的风扇转速,代码限制最低50,最高100:

bash
  ipmitool -H <ip_addr> -I lanplus -p 623 -U Administrator -P xxx(密码) -C 17 raw 0x30 0x93 0xdb 0x07 0x00 0x5a 0x1f 0x00 0x01 0x00 0x33