ipmb init失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:openUBMC 25.03;
- 涉及功能:ipmb init;
- 触发条件:1230版本配置固定的ipmb地址是在platform.sr下的,可以成功,现在2503版本因为要动态获取挪到了root.sr下面。
- 业务表现:预期ipmb init成功;实际ipmb init失败,报了channel,instance is invalid错误。
问题复现步骤
- 1230版本配置固定的ipmb地址是在platform.sr下的,可以成功,现在2503版本因为要动态获取挪到了root.sr下面。
- ipmb init失败,报了channel,instance is invalid错误
关键日志信息
查看日志,确认报错如下:
定位过程
json
"IPMIChannel_A": {
"ChanType": 0,
"Instance": 1,
"ChanPro": 1,
"ChannelID": 10,
"DestAddr": 112,
"SrcAddr": 0,
"MedType": 1
},
"IPMIChannel_B": {
"ChanType": 0,
"Instance": 2,
"ChanPro": 1,
"ChannelID": 11,
"DestAddr": 112,
"SrcAddr": 0,
"MedType": 1
},
"IPMB_A": {
"ChannelID": 10,
"SlaveAddr": "#/Accessor_NCA9555_IO1.Value |> expr(($1 & 62)+ ($1 & 1) * 64)",
"BusID": 1
},
"IPMB_B": {
"ChannelID": 11,
"SlaveAddr": "#/Accessor_NCA9555_IO1.Value |> expr(($1 & 62)+ ($1 & 1) * 64)",
"BusID": 2
},
"IPMIChannel_C": {
"ChanType": 0,
"Instance": 3,
"ChanPro": 1,
"ChannelID": 12,
"DestAddr": 50,
"SrcAddr": 0,
"MedType": 1
},
"IPMIChannel_D": {
"ChanType": 0,
"Instance": 4,
"ChanPro": 1,
"ChannelID": 13,
"DestAddr": 50,
"SrcAddr": 0,
"MedType": 1
},
"IPMB_C": {
"ChannelID": 12,
"SlaveAddr": "#/Accessor_NCA9555_IO1.Value |> expr(($1 & 62)+ ($1 & 1) * 64)",
"BusID": 1
},
"IPMB_D": {
"ChannelID": 13,
"SlaveAddr": "#/Accessor_NCA9555_IO1.Value |> expr(($1 & 62)+ ($1 & 1) * 64)",
"BusID": 2
}以上配置在1230版本上都是ok的: 但是在2503版本上提示ERROR:ipmb init failed, because channel , instance is invalid
问题原因
新版本与旧版的配置上会有所差异。
解决方案
修改新版上的配置:
IPMB和IPMIChannel和ChannelID作为IPMB都要配成6
ChanType为1
IPMB的Instances属性要和IPMIChannel的Instance对应
json"IPMB_Bus1": { "ChannelID": 6, "Instances": [1,3], "SlaveAddr": "#/Accessor_IPMBAddr.Value ", "BusID": 1 }, "IPMB_Bus2": { "ChannelID": 6, "Instances": [2,4], "SlaveAddr": "#/Accessor_IPMBAddr.Value", "BusID": 2 }, "IPMIChannel_A": { "ChanType": 1, "Instance": 1, "ChanPro": 1, "ChannelID": 6, "DestAddr": 112, "SrcAddr": 0, "MedType": 1 }, "IPMIChannel_B": { "ChanType": 1, "Instance": 2, "ChanPro": 1, "ChannelID": 6, "DestAddr": 112, "SrcAddr": 0, "MedType": 1 }, "IPMIChannel_C": { "ChanType": 1, "Instance": 3, "ChanPro": 1, "ChannelID": 6, "DestAddr": 50, "SrcAddr": 0, "MedType": 1 }, "IPMIChannel_D": { "ChanType": 1, "Instance": 4, "ChanPro": 1, "ChannelID": 6, "DestAddr": 50, "SrcAddr": 0, "MedType": 1 }