iBMA 2.20.0 服务启动失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:iBMA 2.20.0;
- 涉及功能:iBMA 2.20.0 安装;
- 触发条件:iBMA正常静默安装。
- 业务表现:预期iBMA可以安装和启动服务;实际iBMA安装成功,但是服务启动失败。
问题复现步骤
- 按照iBMA正常静默安装
- 启动iBMA服务
关键日志信息
查看日志,确认报错如下:
定位过程
检查内核模块是否存在
bashfind /opt/huawei/ibma -name "*.ko" lsmod | grep -i host查看是否存在 host_cdew_drv.ko 和 host_veth_drv.ko 文件。
确认内核开发环境是否安装
bashrpm -qa | grep kernel-devel uname -r ls /lib/modules/$(uname -r)/build确保当前运行的内核对应有开发头文件,否则需安装:
bashdnf install kernel-devel-$(uname -r)尝试手动加载模块
bashmodprobe veth # 先确认标准 veth 支持正常 insmod /opt/huawei/ibma/driver/host_veth_drv.ko如果失败,使用 dmesg | tail 查看更详细的错误。
检查 Secure Boot 状态
bashmokutil --sb-state若显示 Secure Boot 已启用,考虑临时禁用或使用已签名的驱动包。
检查 systemd 服务文件
- 确认 /usr/lib/systemd/ibMA.service 内容是否正确,尤其是路径和依赖项。
问题原因
- iBMA驱动适配Hi1712芯片的版本是0.4.0(已合入openEuler 6.6内核,对应发布版本为openEuler 24.03 LTS SP3),openEuler 22.03 LTS SP4系统自带的iBMA驱动版本为0.3.6,不支持Hi1712。
- 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驱动
- 从support网站获取iBMA 0.4.0驱动源码包:iBMA-dkms_0.4.0_Driver_aarch64_src.tar.gz
- 将源码包上传至操作系统,参考iBMA用户指南-编译iBMA驱动章节手动编译iBMA驱动
- 将编译好的驱动包 kmod-iBMA_driver-xxx.rpm 放到iBMA软件包解压后的 iBMA2.0/drivers/openEuler 目录下,重新安装iBMA,或通过rpm -ivh kmod-iBMA_driver-xxx.rpm 命令手动安装iBMA驱动rpm包后,重启iBMA服务。