ipmb init失败,报了channel,instance is invalid错误


看app.log的报错,channel和Instance是invalid,函数应该是闭源组件的,看不到具体报错原因。

这个10和11我们以前这么配置是成功的,现在除了ipmb地址通过访问寄存器动态获取,没有其他差异,配置里好像也没有和他重复的

补充:

之前配置固定的ipmb地址是在platform.sr下的,可以成功,现在因为要动态获取挪到了root.sr下面。

一开始IPMB下的"Instances"参考其他sr,没有配置,会报instance [nil] 的错,后面改成了[10]就变成上面instance [10] is invalid了

@caiyesheng_b48v3 蔡总,麻烦看看哪位对这块比较懂呢。帮忙看看这个报错原因是什么,得怎么配置的

        "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

问题较复杂,请问能提供下一键收集吗?caiyesheng1@huawei.com

已发,第一个邮件里日志是客户机器上刷的2503版本,第二个邮件里的日志是在蓝区环境刷的2506版本收集的日志

之前配置固定的ipmb地址是在platform.sr下的,可以成功,现在因为要动态获取挪到了root.sr下面。 ------- 能不能把移动到platform.sr再把寄存器获取的slave_address先暂时写死,看看会不会报错,我怀疑是对象加载

后面试过了,不行的,之前是1230版本上做的,同样的配置放2503和2506上都不行。

现在我们已经把动态ipmb这个需求用1230来做了,是OK的。

1230版本交付可以满足你们的要求吗

有些功能在1230上还是不满足的,2503上可以,所以还是希望把ipmb的问题在新版本上尽快解决了。

经过指导已解决该问题,新版本与旧版的配置上会有所差异。

1、IPMB和IPMIChannel和ChannelID作为IPMB都要配成6

2、ChanType为1

3、IPMB的Instances属性要和IPMIChannel的Instance对应

以下是我们ok的配置,通过读取硬件寄存器来动态配置地址


        "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
        }

请问一下您这边Accessor_IPMBAddr是怎么配置的?

这个具体看你们硬件是怎么样的。Accessor的字典官网和gitcode也有,也可以参考现有的sr来配置 GitCode - 全球开发者的开源社区,开源代码托管平台