1230版本Sensor组件ipmi定制问题



如图所示,目前正在自定义开发获取传感器数据记录命令,该命令位于sensor组件,绑定了ipmi_get_device_sdr函数用来构建返回消息。如图二所示,目前在ipmi_get_device_sdr中新增了日志的打印和修改next_recid的逻辑,但构建出包后并未出现日志打印,同时最后一项sdr的id也未变成0x0000,可以得出在ipmi_get_device_sdr中的修改并没有生效,请问应该如何修改代码或者配置,才能让修改生效?
经过测试,即使我把ipmi_get_device_sdr整个删掉,构建出包再次使用GetDeviceSdr命令也并没有出现任何错误,依旧执行原有的逻辑,成功返回原先的格式。
所以不清楚这个命令是不是在哪里设置了无法修改,或者ipmi_get_device_sdr这个函数逻辑已经被定死了,如果可以修改,应该怎样修改才能生效呢

经过测试,将ipmi.json中的Datas换成Data,执行gen之后构建出包依旧能够ipmitool调用成功这个命令,并且返回了对应的值,并没有因为ipmi.json的rsp的内容更改而导致ipmi_get_device_sdr函数发生错误,理论上此时rsp已经没有对应的Datas了,而是Data,应该出错才对

为提升带内带外标准命令 ipmitool sdr list/elist 的性能, 该命令里包含的相关原子命令已实现在闭源组件 rmcpdipmi_core ,不再路由执行 sensor 组件下定义的命令。

@duzhou13_51cdj @xuzhijia 关于 SDR 的标准 IPMI 命令定义已经由 openUBMC 实现,如果需要自定义实现标准SDR的命令,则需要将命令的优先级调整到最高优先级,保证 openUBMC 在 IPMI 调用时能调用到你们定制的标准命令。修改方案:建议将定制的 IPMI 命令的优先级使用 EndUser

@xuzhijia 请按照上述方案进行重试,如果已经解决,请标记解决方案并且关闭本帖;如果未解决,请明确当前问题进展并且补充提供问题的输入。