未适配的PCIe卡无法在Web上显示在位问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:NA;
  • 涉及功能:PCIE卡适配;
  • 触发条件:接入一张未适配过的PCIe卡。
  • 业务表现:预期未适配的卡也能显示在位,但是信息为空;实际PCIE卡无法在web上显示在位。

问题复现步骤

当接入一张未适配过的PCIe卡时,即使BMC已经通过PMU接收到该设备的四元组信息(Vendor ID、Device ID、SubVendor ID、SubDevice ID),但Web界面仍无法显示该卡在位。

关键日志信息

查看日志,确认报错如下:

text
hwdiscovery ERROR: get component sr failed, error: Local file not found

定位过程

从知识库信息可知:

  • BMC不会对未知设备进行“默认加载”,必须通过SR文件(即CSR配置文件)来定义设备的识别规则和属性。

  • CSR文件名由设备的四元组信息构成,格式为:<VendorID>_<DeviceID>_<SubVendorID>_<SubDeviceID>.sr,存放于 /opt/bmc/sr/ 路径下。

  • 如果系统中没有匹配该四元组的SR文件,即使Connector在位、Presence=1,BMC也会打印类似日志:

text
    hwdiscovery ERROR: get component sr failed, error: Local file not found

问题原因

当前问题并非BMC配置错误,而是缺少必要的CSR适配文件。openUBMC系统设计上要求所有PCIe设备必须通过SR文件明确定义,才能被识别和管理。只要补充对应四元组的SR文件,并确保Connector配置正确,即可实现未适配PCIe卡在Web上的正常显示与管理。

解决方案

  1. 获取设备四元组(Vendor ID、Device ID、SubVendor ID、SubDevice ID)信息。
  2. 在vpd/vendor/OpenUBMC/目录下创建CSR配置文件。
  3. 确保Connector配置正确。
  4. 部署并验证
    • 将SR文件集成到BMC镜像中,并升级固件。
    • 重启后检查日志是否有“get component sr failed”错误。
    • 查看Web界面【系统信息】→【其他】→【PCIe卡】是否出现该设备。