黑匣子收集的blackbox.dat日志打开全部为null值问题分析
更新时间: 2026/06/01
在Gitcode上查看源码

问题背景

  • 单板类型:自研板;
  • 软件版本:OpenUBMC 25.12;
  • 涉及功能:一键收集,黑匣子;
  • 触发条件:维护诊断页签下载黑匣子日志。
  • 业务表现:预期黑匣子日志内容正常;实际黑匣子日志内容全为null。

问题来源

社区

问题复现步骤

  1. 登录BMC的web端,点击维护诊断;
  2. 点击左侧系统日志;
  3. 下载黑匣子日志;
  4. 查看日志文件;

关键日志信息

日志文件下载: 一键收集中黑匣子日志文件查看: os侧查看日志文件:

定位过程

  1. 在OS侧安装了iBMA后掉电重启系统后,进入系统后使用web端收集黑匣子数据依旧打开为null,使用hwkbox工具打开依旧失败,如日志中显示的全部为NULL。
  2. 手动往ps_black_box.log日志文件中注入数据后,使用web端收集的黑匣子数据依旧为null。
  3. 确认黑匣子日志产生机制;黑匣子依赖带内安装BMA记录信息,没有发生过故障,就不会有黑匣子日志。因为与BMA版本,操作系统linux内核驱动版本相关,可以与BMA管道申请故障注入方式进行尝试;

问题原因

系统无电源故障,不会产生黑匣子日志,需要注入故障,开启黑匣子功能才可以产生日志。

解决方案

  1. 测试环境准备:操作系统侧安装iBMA,并检查iBMA正常运行;确认PCIe接口已开启(黑匣子功能依赖 PCIe 接口);关闭系统kdump功能(必须操作);
  2. 修改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
  1. 关闭 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
  1. 构造系统异常
shell
  sudo sh -c 'echo 1 > /proc/sys/kernel/sysrq && echo c > /proc/sysrq-trigger'
  1. 收集黑匣子日志 系统异常后等待60秒左右;登录BMC Web管理界面;进入路径:首页 → 系统管理 → 维护诊断 → 黑匣子功能;下载日志文件blackbox.tar
  2. 解析黑匣子日志 解压blackbox.tar得到blackbox.dat,执行解析命令得到dumplog.txt,查看dumplog.txt文件即可,解析命令如下:
shell
  /opt/huawei/ibma/bin/hwkbox --parse ./blackbox.dat dumplog.txt