何如调用服务函数

我调试IPMB功能,已经根据参考资料配置IPMB bus和IPMIChannel参数,怎么通过指令发起访问?怎么在程序中实现指令发送和数据读取的功能呢?

通过指令发起访问,可以使用ipmitool工具,可以参考一下


程序中实现的话,可以参考一下

也可以参考一下 ipmi_mgmt:基于 IPMI 协议的管理应用项目 - AtomGit这个开源项目中对IPMB功能的处理

通过IPMItool 我怎么指定选择哪一路IIC总线呢?

根据论坛中测试说明,使用指令

busctl --user call bmc.kepler.ipmi_core /bmc/kepler/IpmiCore bmc.kepler.IpmiCore Request a{ss}yyyyyay 0 1 11 0x2E 0 0x33 0

进行发送,结果IIC总线上也没有值

这个是我单独提的另外一个帖子

BMC IPMB主无法发出信息 - 交流互助区 - openUBMC 论坛

感谢

我了解到的是:ipmitool 无法直接指定物理 I2C 总线 ,它通过 IPMI 协议让 BMC 自动路由

那BMC上有多条IIC都执行IPMB协议,应该能区分哪个设备传来的信息吧,通过调用bmc.kepler.ipmi_core参数里能指定配置的IIC链路等信息,但是我按照同样的方法发现也不行,论坛里有大佬回复需要配置复用模式,我还在研究 :rofl:

我了解到的是:硬件层面和驱动层完全可以区分是哪个I2C控制器(IIC链路)传来的信息,但在上层IPMI应用层(如bmc.kepler.ipmi_core)中,这种区分通常是“透明”或“聚合”的,除非进行了特殊的定制化开发。你可以先按照那个大佬的回复先试试。