iBMA 2.20.0 服务启动失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:iBMA 2.20.0;
  • 涉及功能:iBMA 2.20.0 安装;
  • 触发条件:iBMA正常静默安装。
  • 业务表现:预期iBMA可以安装和启动服务;实际iBMA安装成功,但是服务启动失败。

问题复现步骤

  1. 按照iBMA正常静默安装
  2. 启动iBMA服务

关键日志信息

查看日志,确认报错如下:

定位过程

  1. 检查内核模块是否存在

    bash
    find /opt/huawei/ibma -name "*.ko"
    lsmod | grep -i host

    查看是否存在 host_cdew_drv.ko 和 host_veth_drv.ko 文件。

  2. 确认内核开发环境是否安装

    bash
    rpm -qa | grep kernel-devel
    uname -r
    ls /lib/modules/$(uname -r)/build

    确保当前运行的内核对应有开发头文件,否则需安装:

    bash
    dnf install kernel-devel-$(uname -r)
  3. 尝试手动加载模块

    bash
    modprobe veth  # 先确认标准 veth 支持正常
    insmod /opt/huawei/ibma/driver/host_veth_drv.ko

    如果失败,使用 dmesg | tail 查看更详细的错误。

  4. 检查 Secure Boot 状态

    bash
    mokutil --sb-state

    若显示 Secure Boot 已启用,考虑临时禁用或使用已签名的驱动包。

  5. 检查 systemd 服务文件

    • 确认 /usr/lib/systemd/ibMA.service 内容是否正确,尤其是路径和依赖项。

问题原因

  1. iBMA驱动适配Hi1712芯片的版本是0.4.0(已合入openEuler 6.6内核,对应发布版本为openEuler 24.03 LTS SP3),openEuler 22.03 LTS SP4系统自带的iBMA驱动版本为0.3.6,不支持Hi1712。
  2. iBMA软件适配Hi1712芯片的版本是2.19.0
  • 在Hi1712场景下,iBMA安装时,会判断系统自带iBMA驱动版本是否小于0.4.0,如果小于,则尝试从iBMA软件包解压后的iBMA2.0/drivers/目录下查找匹配当前操作系统的iBMA驱动包并安装
  • iBMA适配Hi1712时对应的服务器兼容的openEuler操作系统版本为openEuler 24.03 LTS SP2,因此iBMA软件包中仅携带了openEuler 24.03 LTS SP2系统的驱动,并没有openEuler 22.03 LTS SP4系统的驱动

所以最终选择系统自带的0.3.6版本的iBMA驱动,无法正常加载,导致iBMA服务启动失败

解决方案

  • 部署openEuler 24.03 LTS SP3操作系统后,重新安装iBMA

  • 通过iBMA驱动源码包,编译0.4.0版本的适配openEuler 22.03 LTS SP4的iBMA驱动

    1. 从support网站获取iBMA 0.4.0驱动源码包:iBMA-dkms_0.4.0_Driver_aarch64_src.tar.gz
    2. 将源码包上传至操作系统,参考iBMA用户指南-编译iBMA驱动章节手动编译iBMA驱动
    3. 将编译好的驱动包 kmod-iBMA_driver-xxx.rpm 放到iBMA软件包解压后的 iBMA2.0/drivers/openEuler 目录下,重新安装iBMA,或通过rpm -ivh kmod-iBMA_driver-xxx.rpm 命令手动安装iBMA驱动rpm包后,重启iBMA服务。