【经验分享】切换版本后网络不通,串口命令行ipmcget -d ipinfo命令报错问题定位

// 此模板仅供参考,如果不适用可以修改

问题描述

切换版本后网络不通,串口命令行ipmcget -d ipinfo命令报错

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:OpenUBMC2603

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. 升级新版本

  2. 等待BMC启动完成

  3. 确认网络情况

期望结果

切换版本后网络正常

实际结果

切换版本后网络不通,串口命令行ipmcget -d ipinfo命令报错

尝试过的解决方案

串口回退版本

分析结论

问题现象

升级新版本后,网络不通,等待20分钟后网络依然不通

问题分析

1、等待20分钟后网络依然不通

可以确定BMC版本没有回退到先前版本,也就是新版本组件启动检查都正常

2、串口连接BMC,登录命令行

使用串口连接BMC后,发现命令行可以登录,使用 ipmcget -d ipinfo 命令报错,正常是可以返回ip配置信息的,可见bmc_network网络组件功能业务有异常

3、回退版本后一键收集日志

使用 ipmcset -d rollback 命令进行版本回退,BMC启动完成后,网络恢复,进行一键收集日志

4、日志分析

①先查看framework.log,组件启动正常,未见bmc_network启动检查失败

92750756f62d88d90c27d07d24bd8edf.png

②查看app.log,查找升级完成后的bmc_network组件日志,发现有Error日志

b532c845d35f6e79bfbb305801d4f63c.png

attempt to index field ‘EthernetInterface’ (a nil value),错误指向EthernetInterface对象

5、对比platform.sr文件

发现网络有问题版本的platform.sr里面缺少Ipv4、Ipv6、EthernetInterfaces 对象,与日志中的错误打印基本可以对上

6、使用正常的带有Ipv4、Ipv6、EthernetInterfaces 对象的platform.sr出版本验证

网络正常,使用 ipmcget -d ipinfo 命令返回正常

问题结论

platform.sr 文件配套使用有误,缺少网络配置对象