问题描述
关机时KVM不显示power off,升级bios时也不显示bios upgrading,但是开机时kvm显示正常
环境信息
- 软件版本:OpenUBMC2512
重现步骤
-
打开H5 kvm
-
执行关机
期望结果
关机时KVM显示power off
实际结果
显示黑屏
尝试过的解决方案
重启bmc,无法恢复
分析结论
"POWER OFF"等预置图像是否丢失,尝试看了下该/opt/bmc/soc/kvm/poweroff.jpeg文件正常
关机时KVM不显示power off,升级bios时也不显示bios upgrading,但是开机时kvm显示正常
打开H5 kvm
执行关机
关机时KVM显示power off
显示黑屏
重启bmc,无法恢复
"POWER OFF"等预置图像是否丢失,尝试看了下该/opt/bmc/soc/kvm/poweroff.jpeg文件正常
答案内容由AI生成,仅供参考:
| 项目 | 结论 |
|---|---|
| 问题本质 | KVM 在系统下电后未能主动推送“Power Off”静态图像,且因 PCIe 链路或 Framebuffer 失效导致无图像数据可捕获 |
| 是否为软件 Bug | 可能为 KVM 显示逻辑缺陷:应在系统 Power Off 后立即切换至本地预设图像 |
| 是否硬件相关 | 是,与 PCIe 建链、BIOS Framebuffer 驱动、CPLD 控制密切相关 |
| 根本解决路径 | 1. 完善 KVM 服务的“状态图像切换”机制 2. 升级底层固件确保各组件协同工作 |
Power Off 显示问题分析与解决方案在使用 H5 KVM(HTML5 虚拟控制台)访问系统时,当执行关机操作或升级 BIOS 时,KVM 界面无法正常显示“Power Off”或“BIOS Upgrading”等预置状态画面,仅显示黑屏。然而,在开机过程中 KVM 显示正常,可正确呈现启动画面。
/opt/bmc/soc/kvm/poweroff.jpeg 存在且正常根据知识库内容,BMC 的 KVM 功能通过读取分配给 OS 的 BAR(Base Address Register)空间中的 Framebuffer 数据来捕获视频帧,并将其编码传输至浏览器端。这一过程依赖于以下条件:
根本原因推测:尽管存在
poweroff.jpeg等静态图像文件,但当前实现可能未在系统断电后主动推送该预设画面,而是继续尝试抓取已失效的 Framebuffer 数据,最终因无有效输入而输出黑屏。
部分文档指出,KVM 可通过 V4L2 捕获 Framebuffer 并封装为视频流进行 MJPEG 编码发送。若系统未在断电瞬间由 BMC 主动注入预设图像(如 “Power Off”),而是等待 Framebuffer 数据,就会出现短暂或持续的无信号状态。
此外,KVM 的本地显示策略中配置项如:
这表明在切换状态时若会话未正确释放或资源未刷新,也可能加剧黑屏现象。
| 来源 | 关键信息 |
|---|---|
| 《上电后KVM界面显示NO SIGNAL》(topic_id:2170) | 提出:显示 “No Signal” 是因 BMC 驱动未拿到图像数据,可能因 PCIe 未建链或 Framebuffer 驱动异常。建议排查 BIOS 的 Framebuffer 驱动是否与 BMC 芯片交互正常。 |
| 《KVM失效问题咨询》(topic_id:653) | 报告了类似黑屏问题:系统下电状态下重启 OpenUBMC 后 KVM 黑屏,需在上电状态下重启才能恢复。说明 KVM 图像生成对系统电源状态高度依赖。 |
| KVM 故障原理 | 若 BMC 无法从 VCE 寄存器读取有效图像数据,将直接导致 KVM 输出 “NO SIGNAL” 或黑屏。 |
检查 BMC 是否具备在以下事件中主动推送静态图像的功能:
Chassis Control: Power Down)
建议操作:
# 检查 BMC 中是否存在 KVM 静态画面推送服务
ps | grep kvm
ls /opt/bmc/soc/kvm/ # 确认 poweroff.jpeg, bios_upgrade.jpeg 等文件存在
journalctl -u kvm_service | grep "send poweroff image"
确保 BMC 作为 PCIe Endpoint(EP)能与 Host 成功建立通信。
建议操作:
lspci 或 dmesg 查看 PCIe 设备是否枚举成功
注:如果 PCIe 链路断开,即使 BMC 侧有静态图也无法获得视频源。
根据技术建议(shenwei 百信):
“建议更新下 CPLD、BIOS,更换 BMC 卡……这些底层对于 openubmc 来说基本不会涉及,但会影响 KVM 图像采集。”
推荐操作:
rootfs_openUBMC_2_iBMC.hpm 或 Openubmc25_09 固件包进行完整升级避免因会话堆积导致资源异常。
建议配置:
{
"KVM Enable": "Enabled",
"Port": 2198,
"Idle Timeout (minutes)": 30,
"Max Sessions": 4,
"Active Sessions": 0 (手动清理)
}
可通过 Web 页面清理旧会话或调用 API 强制注销。
如问题复杂且难以定位,可在 BMC 和客户端两侧抓包:
tcpdump -i any port 2198 -w kvm.pcap
分析是否在关机后仍有视频流发送,或是否发生连接中断、编码失败等情况。
| 项目 | 结论 |
|---|---|
| 问题本质 | KVM 在系统下电后未能主动推送“Power Off”静态图像,且因 PCIe 链路或 Framebuffer 失效导致无图像数据可捕获 |
| 是否为软件 Bug | 可能为 KVM 显示逻辑缺陷:应在系统 Power Off 后立即切换至本地预设图像 |
| 是否硬件相关 | 是,与 PCIe 建链、BIOS Framebuffer 驱动、CPLD 控制密切相关 |
| 根本解决路径 | 1. 完善 KVM 服务的“状态图像切换”机制 2. 升级底层固件确保各组件协同工作 |
/opt/bmc/soc/kvm/poweroff.jpegNO SIGNAL, Set power state failed, KVM timeout
最终建议:提交 issue 至 OpenUBMC 社区,请求增强 KVM 在系统下电/升级时的静态图像展示能力,确保用户获得明确的状态反馈。
看当前是开启了Baidu客户定制,有kvm显示相关定制