添加内置sr文件之后,在网页能够看到正确的上下电状态,但是进行下电操作时会显示操作失败,是在sr中缺了某些object吗
busctl --user call bmc.kepler.fructrl /bmc/kepler/Systems/1/FruCtrl/FruCtrl_1_0_00 bmc.kepler.Systems.FruCtrl FruPowerCtrl a{ss}ssy 0 On ChassisControlCommand 1
通过busctl命令操作上电看一下打印,然后在fructrl模块内定位一下
会报错
Call failed: {“name”:“BMC.Error.Unknow”,“format”:“./opt/bmc/libmc/lualib/mc/context.lua:185: ./opt/bmc/libmc/lualib/sd_bus/init.lua:117: ./opt/bmc/apps/fructrl/lualib/fructrl_obj_mgnt.lua:42: attempt to index field ‘powerapi’ (a nil value)”}
上环境看下"FruCtrl", “PGSignal”, “PowerButton”, “ThermTrip”, “RecordFault”,这几个类是不是都有?没有的话会报你当前的这个错误。
或者关注一下app.log内有没有73行的打印,可以看见哪个类没被初始化成功。
大概率是某个器件的软件SR没有加载成功,导致部分类缺失从而影响了功能
以及我观察到 “ThermTrip”, “RecordFault”这两个类是依赖于Smc_CpuBrdSMC这个chip的,也就是说Smc_ExpBoardSMC是无法实现的是吗?我们的模块是通过smc连接cpld控制模块上下电的,需要加载Smc_CpuBrdSMC吗?
检查一下这个SR文件是否被正常加载了,PGSignal在mdbctl内能否查到。
ThermTrip与RecordFault这两个类必须要在,但是本质上是关联一些硬件信号,监控CPU的状态等信息。如果不通过SMC提供,需要咨询你们的硬件提供CPLD寄存器
下电状态下才能发上电指令,上电发了肯定没效果。
安全下电你设置下电超时看下呢
app.log里查看ForceRestart对象有没有正常分发
复位bmc后,查看组件初始化时ForceRestart这个对象是否分发
应该是正常分发了的
在sr中添加了ForceReset_1类之后,强制重启可以实现了,但是安全下电和上电还是一样的现象,会显示操作成功但是无法将系统下电或上电