装备定制化后执行查询返回02问题分析
更新时间: 2026/05/27
在Gitcode上查看源码问题背景
- 单板类型:自研板;
- 软件版本:openUBMC 26.03;
- 涉及功能:装备定制化;
- 触发条件:330版本执行装备定制化,上传ini文件,执行"raw 0x30 0x90 0x21 0xf0"执行定制后,执行"raw 0x30 0x90 0x22 0xef"查询;
- 业务表现:预期返回01;实际返回02;
问题复现步骤
- 上传ini文件到bmc后台;
- 执行raw 0x30 0x90 0x21 0xf0执行定制;
- 调用raw 0x30 0x90 0x22 0xef查询;
关键日志信息
app.log组件日志信息:
customset.ini文件内容:
定位过程
- 尝试回退到1230版本上验证,同一份ini文件无此问题;
- 根据日志初步定位redfish相关定制项导致,但是与底层开发确认装备定制化是闭源组件,不过是作为中间件,上对接ini下对接参数是到profile_schema上;比如首先这个ini文件导入后,执行完成后会有个tmp的结果,告诉执行者哪个执行失败,然后根据这个失败项去匹配profile_schema,就可以知道具体哪个定制项执行失败;
- 尝试删掉profIle_schema中的BMCSet_RedfishAsyncOperationLocationHeader配置,定制成功,怀疑是330节点代码中有部分代码没有上到社区;
- 经确认这个与ini里面的配置有关,ini是装备定制化,没有配置的ini部分会自动执行默认装备定制化,目前执行失败要么是profile_schema对应错误,要么是中间过程有问题。
问题原因
根据定位过程中的提示,查找定制化的tmp文件,查看结果为BMCSet_RedfishAsyncOperationLocationHeader定制化失败,结合之前的app.log中”Import redfish configuration failed“来看,是这个定制项有问题,定制化的ini文件里没有这一项,它用的是默认参数,导致定制化失败,用ipmi命令查询执行结果为02;
解决方案
customset.ini中添加BMCSet_RedfishAsyncOperationLocationHeader定制化项,不让系统按照默认的参数进行定制化。