关于系统上下电的问题

添加内置sr文件之后,在网页能够看到正确的上下电状态,但是进行下电操作时会显示操作失败,是在sr中缺了某些object吗

企业微信截图_17525683765498

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模块内定位一下

1 个赞

image
会报错
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没有加载成功,导致部分类缺失从而影响了功能

请问为什么在sr中加了PGSignal这个类但是log中还是会显示分配失败呢?

以及我观察到 “ThermTrip”, “RecordFault”这两个类是依赖于Smc_CpuBrdSMC这个chip的,也就是说Smc_ExpBoardSMC是无法实现的是吗?我们的模块是通过smc连接cpld控制模块上下电的,需要加载Smc_CpuBrdSMC吗?

检查一下这个SR文件是否被正常加载了,PGSignal在mdbctl内能否查到。

ThermTrip与RecordFault这两个类必须要在,但是本质上是关联一些硬件信号,监控CPU的状态等信息。如果不通过SMC提供,需要咨询你们的硬件提供CPLD寄存器

通过添加ThermTrip与RecordFault这两个类,已经可以实现强制下电了,但是安全下电和上电还是无法实现,选择安全下电和上电的时候,虽然会显示操作成功,但是实际并没有给系统下电或上电

下电状态下才能发上电指令,上电发了肯定没效果。
安全下电你设置下电超时看下呢

上电指令是在下电状态发的,安全下电设置了时限还是没反应

强制重启会显示操作失败

上电会显示操作成功但系统不会上电

app.log里查看ForceRestart对象有没有正常分发


这个是app.log里有关ForceRestart的内容,怎么看有没有正常分发呢

复位bmc后,查看组件初始化时ForceRestart这个对象是否分发

应该是正常分发了的

在sr中添加了ForceReset_1类之后,强制重启可以实现了,但是安全下电和上电还是一样的现象,会显示操作成功但是无法将系统下电或上电