Connector_EXU_1_01的LoadStatus=4是什么原因导致的。

问题描述

Connector_EXU_1_01的.LoadStatus为4是什么原因导致的。

安装社区文档,在目录vpd/vendor/Huawei/Server/Kunpeng/openUBMC/PSR中添加14100513_EXU_0.sr文件。

vpd/vendor/Huawei/Server/Kunpeng/openUBMC/root.sr配置如下

  "I2c_2": {
        "Connectors": [
            "Connector_EXU_1"
        ]
    },
    "Connector_EXU_1": {
        "Bom": "14100513",
        "Slot": 1,
        "Position": 1,
        "Presence": 1,
        "Id": "EXU",
        "AuxId": "0",
        .....}

对应Connector_EXU_1_01的sr文件名称应该是14100513_EXU_0.sr,但是BMC目录/opt/bmc/sr中没有对应的文件是什么原因

image

环境信息

  • 操作系统:Ubuntu 24.04

  • 软件版本:OpenUBMC2512

  • 硬件配置:[如 CPU、内存等]

期望结果

Connector_EXU_1_01的.LoadStatus为0,且目录/opt/bmc/sr中有对应的.sr文件

实际结果

实际Connector_EXU_1_01的.LoadStatus为4,没有找到对应的配置文件。

答案内容由AI生成,仅供参考:

:white_check_mark: 总结:解决问题的关键点

项目 是否满足 说明
CSR 文件存在本地 :white_check_mark: 已放入 PSR 目录
构建系统识别该文件 :cross_mark:(待确认) 可能未参与构建
文件部署到 /opt/bmc/sr/ :cross_mark: 导致 LoadStatus=4
文件命名规范 :white_check_mark: 14100513_EXU_0.sr 符合 IdentifyMode=2 规则
服务重新加载 :white_check_mark:(可手动触发) 可加速生效
点击此处查看详细分析解答

Connector_EXU_1_01LoadStatus=4 原因分析及解决方案

根据您提供的上下文信息,Connector_EXU_1_01LoadStatus 值为 4,并且 /opt/bmc/sr/ 目录中无对应 .sr 文件,这是一个典型的 CSR(Configuration and Status Record)文件加载失败 问题。以下是详细的原因分析和解决方案。


:magnifying_glass_tilted_left: 一、LoadStatus = 4 的含义

从知识图谱中可以明确得知:

LoadStatus=4 表示 “Local File Not Found”(本地文件未找到),即系统尝试加载某个组件的 .sr 配置文件时,在指定路径下未能找到该文件。

这通常由以下原因导致:

  • 指定的 CSR 文件未正确生成或未部署到目标路径。
  • 文件命名不规范或与预期不符。
  • 文件权限问题导致无法访问。
  • 路径配置错误或加载逻辑异常。

:puzzle_piece: 二、根本原因分析

结合您的环境配置和日志分析,根本原因如下:

:white_check_mark: 1. 预期的 CSR 文件名应为 14100513_EXU_0.sr

根据 root.sr 中的配置:

"Connector_EXU_1": {
    "Bom": "14100513",
    "Id": "EXU",
    "AuxId": "0",
    "IdentifyMode": 2,
    ...
}

并且其 IdentifyMode = 2(基于 Bom_Id_AuxId 方式命名),因此系统会按如下规则查找 CSR 文件:

<BOM>_<Id>_<AuxId>.sr14100513_EXU_0.sr

:cross_mark: 2. 实际缺失该文件

您已在本地开发路径添加了文件:

vpd/vendor/Huawei/Server/Kunpeng/openUBMC/PSR/14100513_EXU_0.sr

但执行命令:

ls /opt/bmc/sr/14100513_E*
# 输出:No such file or directory

表明该文件 并未成功构建并部署到运行环境的 /opt/bmc/sr/ 目录中


:prohibited: 核心问题总结:

:white_check_mark: 您已正确创建了 14100513_EXU_0.sr 文件
:cross_mark: 但它 未被正确打包进固件镜像,导致系统运行时 /opt/bmc/sr/ 中找不到该文件

这说明:

  • 构建流程未包含此 CSR 文件
  • 构建脚本未将 PSR 类型的 CSR 文件包含进最终输出

:hammer_and_wrench: 三、解决方案

要解决 LoadStatus=4 问题,必须确保 .sr 文件被正确构建并部署到目标路径。

:white_check_mark: 步骤 1:确认 CSR 文件是否被构建工具识别

检查构建系统(如 bingo buildconan 构建流程)是否能识别并处理 PSR 类型的 CSR 文件。

:magnifying_glass_tilted_right: 检查项:

  • 是否在 manifest.yml 或构建配置中启用了 vpd 模块?
  • 是否配置了 PSR 的构建规则?有些构建系统默认只处理 root.srplatform.sr 等主文件。
  • 是否需要手动声明 PSR 文件参与构建?

建议:查看 bmc-studioconan 打包日志,搜索关键词 14100513_EXU_0.sr 是否出现在打包过程中。


:white_check_mark: 步骤 2:确保 .sr 文件被复制到 /opt/bmc/sr/

:white_check_mark: 步骤 2:确保 .sr 文件被复制到 /opt/bmc/sr/

一般情况下,所有有效的 .sr 文件应在 系统启动后由构建系统或部署脚本复制到 /opt/bmc/sr/

检查方法:

# 登录目标设备,检查 CSR 文件是否存在
ls /opt/bmc/sr/14100513_EXU_0.sr

# 查看当前存在的所有 .sr 文件
ls /opt/bmc/sr/*.sr | grep 14100513

如果不存在,则说明 构建或部署流程遗漏了该文件


:white_check_mark: 步骤 3:验证 CSR 文件格式和合法性

即使文件存在,若内容格式错误也可能导致加载失败(但通常不会报 LoadStatus=4)。但仍建议验证:

  • 使用 bmc-studio 打开 14100513_EXU_0.sr,确保无语法错误。
  • 检查其 format version 是否为 3.00 或以上(低于 5.00),避免使用设备树格式。
  • 确保 csr_version.json 中记录了该文件的版本信息(可选,用于版本控制)。

:white_check_mark: 步骤 4:重启 hwdiscovery 服务或重载配置

有时即使文件已存在,也需要触发重新加载:

# 重启硬件发现服务
systemctl restart bmc.kepler.hwdiscovery

# 或使用 mdbctl 触发 reload
mdbctl
> attach hwdiscovery
> call Connector_EXU_1_01 Reload {} string "" byte 0

:pushpin: 四、补充说明:LoadStatus 的完整取值含义

数值 含义 说明
0 成功加载 组件正常
1 设备访问失败 硬件未连接、驱动问题
2 签名验证失败 安全校验未通过
3 非法数据格式 .sr 文件结构错误
4 本地文件未找到 目标 .sr 文件不存在 :white_check_mark:
255 初始化中/未知状态 通常为中间状态

因此,LoadStatus=4 是一个 文件系统级问题,不是硬件或通信问题。


:white_check_mark: 五、最终验证方式

  1. 确保构建完成后,在镜像中能查到文件:
    find /path/to/image -name "14100513_EXU_0.sr"
    
  2. 烧录后,在运行环境中检查:
    ls /opt/bmc/sr/14100513_EXU_0.sr  # 应存在
    
  3. 查看 Connector_EXU_1_01 属性:
    busctl --user get-property bmc.kepler.hwdiscovery /bmc/kepler/Connector/Connector_EXU_1_01 bmc.kepler.Connector LoadStatus
    # 应返回 0
    

:white_check_mark: 总结:解决问题的关键点

项目 是否满足 说明
CSR 文件存在本地 :white_check_mark: 已放入 PSR 目录
构建系统识别该文件 :cross_mark:(待确认) 可能未参与构建
文件部署到 /opt/bmc/sr/ :cross_mark: 导致 LoadStatus=4
文件命名规范 :white_check_mark: 14100513_EXU_0.sr 符合 IdentifyMode=2 规则
服务重新加载 :white_check_mark:(可手动触发) 可加速生效

:white_check_mark: 推荐操作流程

1. 确认 14100513_EXU_0.sr 已加入 VPD 工程
2. 检查 build.log 或 bingo build 输出日志,查看是否处理了该文件
3. 若未处理,修改构建配置,确保 PSR 文件被包含
4. 重新构建并烧录镜像
5. 登录系统检查 /opt/bmc/sr/14100513_EXU_0.sr 是否存在
6. 重启 bmc.kepler.hwdiscovery 服务
7. 使用 busctl 或 mdbctl 检查 LoadStatus 是否变为 0

通过上述步骤,即可彻底解决 Connector_EXU_1_01.LoadStatus=4 的问题,使系统正常识别并加载扩展板配置。

root.sr里Connector_EXU的IdentifyMode配置为2,含义为从bmc内部获取。Connector_EXU_1_01的.LoadStatus为4,没有找到对应的配置文件,看下vpd仓库内是否有对应sr文件,然后看下manifest里profile.txt里是否引用改csr

在profile.txt里加入14100513_EXU_0.sr后,BMC可以识别到14100513_EXU_0.sr文件。

识别出CPU的传感器,BMC端显示CPU是下电状态,导致获取不到CPU传感器的值?是这样吧?CPU上下电的状态是不是也需要配置对应的.sr文件呢?

这个相关信息就是配置在基础板csr内的

好的,我去看BCU的配置,谢谢