AC后OS获取DMI信息为空,再次重启OS,信息存在问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:EXU和BCU。
  • 软件版本:openUBMC 25.09。
  • 涉及功能:DMI信息。
  • 触发条件:AC。
  • 业务表现:预期AC后OS正常获取DMI信息;实际AC后OS获取DMI信息为空,再次重启OS后,DMI信息获取成功。

问题复现步骤

  1. ATX机型只有EXU和BCU。
  2. AC后,OS下DMI获取的信息为空。
  3. 执行dmidecode -t 1和dmidecode -t 2内容都为空。
  4. 再次重启OS后,DMI信息获取成功。

关键日志信息

两次ac截图:

第一次AC后系统侧读取信息截图:

第二次AC后系统侧截图:

定位过程

  1. 修改策略:
    • CPLD先让BMC启动,再让BIOS启动
  2. 猜测是FruData组件加载较慢,或BMC,BIOS加载策略需要进行调整。

问题原因

FruData组件加载较慢。

解决方案

在不影响开机时间的情况下,调整组件加载顺序:

  1. 调整systemd配置文件的启动依赖。

  2. 调整launch_control.json文件中下面的"seconds"字段。该字段含义为指定在拉起改组组件前睡眠多少秒,"uptime"可不配置。

    json
    "delay": {
        "seconds": 15,
        "uptime": 100
    }
  3. 如果组件在service.json中配置了"required",也会等待依赖接口上树后再启动组件。