// 此模板仅供参考,如果不适用可以修改
问题描述
日志如下
null_19700101-0012 (3).tar.gz (6.9 MB)
期望结果
希望得知问题发生原因以及解决方案
答案内容由AI生成,仅供参考:
在“通电开机策略”已设置为保持上电的前提下,AC 上电后系统未按策略自动上电;这属于通电开机策略不生效类问题。在知识库中,已有对应的故障模式库记录《通电开机策略不生效》,并且存在相关修复 PR(关联 issue:openUBMC/analysis_assets/issues/5),这说明该现象属于已被识别并跟踪的已知问题类型。
参考同类问题(AC 压测过程中,策略为“保持上电”但偶现服务器不上电)的分析结论:
framework.log 显示 certificate 组件拉起异常;rest_type 为 softreset,因此不再走通电开机策略。也就是说,策略本身配置正确,但上电流程在“释放上电锁与 BMC 复位”这一时序点上被中断。
powerapi 为 nil另一类相关案例中(OS 上电失败),核心报错为:
mdb_client.lua(241): rpc call PowerCtrl has error BMC.Error.Unknow:
.../fructrl_obj_mgnt.lua:43: attempt to index field 'powerapi' (a nil value)
powerapi 字段,但该字段为 nil(未加载或未引用成功);init.lua(79): register to bus for class, error name: kepler.class.ClassNotDefined,说明某类注册时未定义,可能影响 fructrl 相关对象创建,间接导致 powerapi 不可用。若同时定制了延迟上电参数,需要注意:
| 定制项 | 说明 | 取值 |
|---|---|---|
BMCSet_PowerRestoreDelayMode |
延迟上电模式 | DefaultDelay(默认延迟,机架为 0~2 秒随机延迟)、HalfDelay(取延迟时间一半)、FixedDelay(完全按延迟时间)、RandomDelay(0~120 秒随机) |
BMCSet_PowerRestoreDelayTime |
延迟上电时间 | 0~1200,单位 100ms |
DefaultDelay + BMCSet_PowerRestoreDelayTime=0,且默认延迟模式下延迟上电时间无效;在另一案例中,power_mgmt 组件在 init 时注册 GPIO 服务,例行扫描 GPIO 管脚,检测到 AC 闪断信号后上报给 fructrl,fructrl 判断为 AC 闪断后即执行通电开机策略。若该管脚状态异常,会造成上下电行为与预期不符。该案例给出的解决方案是:排查 power_mgmt 例行扫描的 GPIO 管脚是否正常。
确认策略配置值本身是否正确
BMCSet_POWERRESTOR 取值含义:poweroff=保持下电;poweron 或不配置=保持上电;powerrestore=恢复掉电前状态;其它值返回错误。poweron。检查上电锁状态
ipmcget -t main -d poweronlock 查询是否处于上电锁定状态;若回显为 locked,说明存在上电超时事件,也会阻止上电命令。检查对象分发是否完整
create other objects completed,确认 FruCtrl、PGSignal、PowerButton、ThermTrip、RecordFault 对象是否全部创建成功;缺少某个对象时,需检查对应配置或依赖组件是否正常启动。确认 fructrl 初始化状态与 powerapi 加载情况
powerapi 是否为 nil、是否存在 kepler.class.ClassNotDefined 之类的类注册错误。检查 BMC 侧组件异常与复位
framework.log 是否有组件(如 certificate 组件)拉起异常;rest_type 是否为 softreset(该值会导致不走通电开机策略)。排查 GPIO 与 AC 闪断信号
核对延迟上电参数
BMCSet_PowerRestoreDelayMode 与 BMCSet_PowerRestoreDelayTime 的实际取值,排除因延迟导致的“未立即上电”。analysis_assets/issues/5 关联的修改)。https://www.openubmc.cn/docs/zh/development/faq/Power_on_off_FAQ)中关于上下电流程与策略的说明。你提供的日志文件(null_19700101-0012 (3).tar.gz)内容未在可解析的上下文中呈现,因此以上内容均基于知识库中同类现象的已有分析结论。若需精确定位本次问题的根因,需要依据上述排查项(poweronlock 状态、create other objects completed、powerapi 是否为 nil、rest_type 取值、certificate 组件状态)对实际日志逐项核对。
结合日志和fructrl代码分析下看看是不是硬件问题还是软件流程问题