网页端读不到bios版本问题分析
更新时间: 2026/05/20
在Gitcode上查看源码

问题背景

  • 单板类型:自研板;
  • 软件版本:openUBMC 25.09;
  • 涉及功能:ipmi,升级,bios与BMC交互;
  • 触发条件:升级bios版本后,登录BMC,首页查看设备信息,设备信息中的bios版本显示异常。
  • 业务表现:预期显示bios版本为6.219;实际显示的bios版本为000。

问题复现步骤

升级bios后WEB登录BMC,查看首页的设备信息,设备信息中的bios版本显示为000.

关键日志信息

web页面bios版本信息查看结果: app.log日志如下:

定位过程

  1. 系统下通过dmidecode可以看到bios版本
text
dmidecode -t bios

查询结果可知,bios的版本为6.219,并非web页面的000,截图如下:

  1. 确认bios版本来源;与bios开发沟通,bios版本来源为bios通过bt通道走ipmi命令上报;
  2. 确认bios上报给BMC版本号的ipmi命令,确认bios是否给BMC上报版本信息;具体方法如下:BMC侧启动trace命令跟踪ipmi后系统重启;重启完成后,在tmp目录下的ipmi.txt文件中搜索上报bios版本的ipmi命令;
shell
  busctl --user call bmc.kepler.ipmi_core /bmc/kepler/Debug/IpmiCore/TraceIpmi bmc.kepler.Debug.IpmiCore.TraceIpmi Trace a{ss}bsyyss 0 true "bt" 0xff 0xff "" "file"

在ipmi.txt文件中搜索如下关键字:

text
  30 92 db 07 00 02
  1. 按照上述方法,确认bios侧未正常上报bios版本;

问题原因

bios侧未上报bios版本,导致bmc侧的web页面显示的是默认值。

解决方案

bios侧添加BMC与bios交互的ipmi命令相关执行代码,在bios启动时上报bios版本到bmc侧。涉及的ipmi命令NetFn为0x30,Cmd为0x92,子命令为0x02,具体如下图: