黑匣子收集的blackbox.dat日志打开全部为null值问题分析
更新时间: 2026/06/01
在Gitcode上查看源码问题背景
- 单板类型:自研板;
- 软件版本:OpenUBMC 25.12;
- 涉及功能:一键收集,黑匣子;
- 触发条件:维护诊断页签下载黑匣子日志。
- 业务表现:预期黑匣子日志内容正常;实际黑匣子日志内容全为null。
问题来源
问题复现步骤
- 登录BMC的web端,点击维护诊断;
- 点击左侧系统日志;
- 下载黑匣子日志;
- 查看日志文件;
关键日志信息
日志文件下载: 一键收集中黑匣子日志文件查看: os侧查看日志文件:
定位过程
- 在OS侧安装了iBMA后掉电重启系统后,进入系统后使用web端收集黑匣子数据依旧打开为null,使用hwkbox工具打开依旧失败,如日志中显示的全部为NULL。
- 手动往ps_black_box.log日志文件中注入数据后,使用web端收集的黑匣子数据依旧为null。
- 确认黑匣子日志产生机制;黑匣子依赖带内安装BMA记录信息,没有发生过故障,就不会有黑匣子日志。因为与BMA版本,操作系统linux内核驱动版本相关,可以与BMA管道申请故障注入方式进行尝试;
问题原因
系统无电源故障,不会产生黑匣子日志,需要注入故障,开启黑匣子功能才可以产生日志。
解决方案
- 测试环境准备:操作系统侧安装iBMA,并检查iBMA正常运行;确认PCIe接口已开启(黑匣子功能依赖 PCIe 接口);关闭系统kdump功能(必须操作);
- 修改iBMA配置: 查看当前配置:
shell
ibmacli conf show -n iBMA.ini手动开启黑匣子:
shell
ibmacli conf modify --name iBMA.ini --arg iBMA_System.iBMA_kbox --value true验证配置:
shell
ibmacli conf show --name iBMA.ini --arg iBMA_System.iBMA_kbox- 关闭 kdump(关键步骤)
停止并禁用 kdump 服务
shell
systemctl stop kdump
systemctl disable kdump修改grub配置,按照如下命令打开文件,找到GRUB_CMDLINE_LINUX,删除crashkernel=xxx字段:
shell
vi /etc/default/grub重新生成 grub 配置:
shell
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg确认 kdump 已关闭:
shell
systemctl status kdump重启系统生效:
shell
reboot- 构造系统异常
shell
sudo sh -c 'echo 1 > /proc/sys/kernel/sysrq && echo c > /proc/sysrq-trigger'- 收集黑匣子日志 系统异常后等待60秒左右;登录BMC Web管理界面;进入路径:首页 → 系统管理 → 维护诊断 → 黑匣子功能;下载日志文件blackbox.tar
- 解析黑匣子日志 解压blackbox.tar得到blackbox.dat,执行解析命令得到dumplog.txt,查看dumplog.txt文件即可,解析命令如下:
shell
/opt/huawei/ibma/bin/hwkbox --parse ./blackbox.dat dumplog.txt