环境:2512+高可用组件环境
问题:9560-8i raid卡在存储管理不显示数据
问题定位:
查看app.log
registry controller失败
查看framework.log
缺少libsml_lsi.so
尝试解决:
manifest.yml,添加依赖
- conan: libmgmt_protocol
options:
storelib_enable: true
然后编译失败,task.log提示
环境:2512+高可用组件环境
问题:9560-8i raid卡在存储管理不显示数据
问题定位:
查看app.log
registry controller失败
尝试解决:
manifest.yml,添加依赖
- conan: libmgmt_protocol
options:
storelib_enable: true
然后编译失败,task.log提示
答案内容由AI生成,仅供参考:
在 openUBMC 25.12 + 高可用组件环境 下,Broadcom 9560-8i RAID卡 在存储管理界面中无法正常显示数据。根据日志分析,核心问题是RAID控制器注册失败,导致无法获取控制器信息。
app.log)storage ERROR: tasks.lua(92): task [Controller.register_controller.1] error:
...bmc/apps/storage/lualib/controller/controller_object.lua:706: [Storage] Failed to add controller 1, ret: 4357
4357 表明控制器添加失败。framework.log)framework ERROR: adapter.c(603): Failed to load lsi_sml_library /usr/lib64/libbsml_lsi.so
for MegaRAID SAS Controller. error : /usr/lib64/libbsml_lsi.so: cannot open shared object file: No such file or directory
libsml_lsi.so 动态库文件缺失。adapter.c 尝试加载 libsml_lsi.so 失败,导致 smlib : Add controller management 操作返回错误码 0x11d8。
注意:日志中
libbsml_lsi.so应为libsml_lsi.so,很可能是拼写错误或路径配置问题。
核心原因:
MegaRAID SAS Controller 依赖于 libsml_lsi.so 动态库进行通信和管理,而该库未包含在固件镜像中。
深层原因:
libmgmt_protocol 组件负责管理此类存储协议依赖库。storelib_enable 编译选项未启用,导致 libsml_lsi.so 未被正确打包进固件。历史背景:
根据文档《[openUBMC RAID卡管理解耦特性设计说明书]》,openUBMC引入了 RAID卡管理解耦特性,通过 dlopen 机制实现动态加载,避免强耦合。此特性依赖 libmgmt_protocol.storelib_enable 配置项控制是否包含专有库文件。
libmgmt_protocol 以启用 libsml_lsi.so 打包在 manifest.yml 文件中添加如下配置:
- conan: libmgmt_protocol
options:
storelib_enable: true
dependencies:
- conan: helloworld
version: 1.100.11
- conan: libmgmt_protocol
options:
storelib_enable: true
重要提示:根据参考文档 [RAID卡适配指导] 和 [openUBMC RAID卡管理解耦特性设计说明书],这是解决
libsml_lsi.so缺失的标准方法。
您遇到的如下编译错误:
ERROR: KeyError: 'pwd'
[31mERROR: 执行命令 conan create ... 错误
此问题并非由 storelib_enable: true 直接引起,而是构建环境或 Conan 配置问题。
清理构建环境
conan remove "*" --builds --force
rm -rf ~/.conan2/p/*
检查 Conan Profile 配置
确保 profile.ini 和 profile.dt.ini 文件正确配置,并包含必要的环境变量定义。
验证 Conan 是否支持 pwd 环境变量注入
.conan/profiles/your_profile 中是否有缺失字段。pwd 等上下文信息。尝试本地调试构建
# 先单独构建 libmgmt_protocol 并观察输出
conan create libmgmt_protocol/1.80.22@openUBMC.release/rc -o libmgmt_protocol:storelib_enable=True
参考成功案例
确保 vpd 模块的 SR 文件中配置了正确的 PCIe 设备四元组信息(Vendor ID、Device ID、SubVendor ID、SubDevice ID),例如:
14140130_100010e2_10004010.sr
参见:[RAID卡适配指导]
系统启动后,执行:
ls /usr/lib64/libsml_lsi.so
若文件存在,则说明打包生效。
成功日志应包含:
storage NOTICE: controller_object.lua(321): ctrl1 add_controller to link topo successfully
storage NOTICE: [Storage] Successfully added controller 1
busctl --user introspect bmc.kepler.storage /bmc/kepler/Systems/1/Storage/Controllers/Controller_*
预期输出应包括:
FirmwareVersionManufacturer (如 Broadcom)SerialNumberAssetName (如 MegaRAID 9560-8i 4GB)Huawei BMC 能识别而 openUBMC 不能?libsml_lsi.so 或关闭了依赖检查。storelib_enable。相关知识点:
昆仑太科_刘涛明确指出:“是只针对博通有效,目前是不开源的”。
| 项目 | 内容 |
|---|---|
| 根本原因 | libsml_lsi.so 动态库未打包进固件 |
| 直接原因 | libmgmt_protocol.storelib_enable 未启用 |
| 解决方案 | 在 manifest.yml 中启用 storelib_enable: true |
| 编译失败 | 为构建环境问题,非配置错误,需单独解决 |
| 验证方式 | 检查库文件是否存在、查看日志、D-Bus 查询 RAID 信息 |
最终建议:
修复 Conan 构建环境,重新构建并烧写固件,即可成功识别并管理 9560-8i RAID卡。
相关链接:
这个链接404了
联系PAE获取权限