2503 ipmitool sol能够正常输出,2509异常

问题描述

2503版本中,执行ipmitool sol activate正常有回显,升级迁移至2509后ipmitool sol activate无回显

环境信息

  • 软件版本:[OpenUBMC2509 OpenUBMC2503]

对比验证只有软件版本不一致,其余环境一致

重现步骤

执行ipmitool -I lanplus -H 192.168.2.100 -U XXX -P XXX -C 17 sol activate,查看结果

实际结果

2503:

2509:
输入同样命令后,无法进行交互,也无BIOS或OS日志输出

尝试过的解决方案

1.2503和2509版本通过ssh登陆bmc,执行ipmcset -t sol -d activate -v 2 0都能正常交互
2.对比两个版本日志,存在部分差异
2509:

2026-02-06 09:13:02.142594 bmc_soc ERROR: serial_mgmt.lua(248): serial_sw_obj is null
2026-02-06 09:13:02.143019 bmc_soc ERROR: serial_mgmt.lua(268): serial_remote_obj is invalid or system id is not exist, system_id: nil
2026-02-06 09:13:02.146515 bmc_soc NOTICE: serial_mgmt.lua(346): Setting uart 2 interconnect with port 2
2026-02-06 09:13:02.150943 bmc_soc NOTICE: serial_mgmt.lua(197): Set serial direction to (PANEL COM <-> BMC COM) successfully

2530:

2026-02-06 10:11:31.635440 bmc_soc ERROR: serial_mgmt.lua(241): serial_sw_obj is null
2026-02-06 10:11:31.635705 bmc_soc ERROR: serial_mgmt.lua(261): serial_remote_obj is invalid or system id is not exist, system_id: nil
2026-02-06 10:11:31.674875 bmc_soc NOTICE: serial_mgmt.lua(335): Setting uart 5 interconnect with port 1
2026-02-06 10:11:31.677129 bmc_soc NOTICE: serial_mgmt.lua(197): Set serial direction to (SOL COM <-> SYS COM) successfully
2026-02-06 10:11:31.687812 bmc_soc ERROR: serial_mgmt.lua(241): serial_sw_obj is null
2026-02-06 10:11:31.688066 bmc_soc ERROR: serial_mgmt.lua(261): serial_remote_obj is invalid or system id is not exist, system_id: nil
2026-02-06 10:11:31.729078 bmc_soc NOTICE: serial_mgmt.lua(339): Setting uart 2 interconnect with port 2
2026-02-06 10:11:31.730218 bmc_soc NOTICE: serial_mgmt.lua(197): Set serial direction to (PANEL COM <-> BMC COM) successfully

差异点在
2503存在Set serial direction to (SOL COM ↔ SYS COM) successfully和Setting uart 5 interconnect with port 1日志,2509无
3.跟踪开源的vpd版本迭代,推测可能原因在vendor/Huawei/Server/Kunpeng/openUBMC/platform/platform.sr中对DEMA修改引入

ipmcget -d serialdir看看串口方向配置,用sol需要SOL COM to SYS COM或者SOL COM to BMC COM吧

答案内容由AI生成,仅供参考:
:white_check_mark: 总结与建议

项目 内容
问题本质 ipmitool sol activate 在 OpenUBMC 25.09 中未正确将串口路由至主机 OS(SYS COM),而是停留在 BMC 本地(PANEL COM
表现 会话建立成功,但无输出、无交互
根本原因 rmcpd 组件在 25.09 中存在串口路由逻辑缺陷,或 platform.sr 配置变更导致默认路径错误
是否已知问题 :white_check_mark: 是,社区已有多个报告(如 reference_id: 1, 3, 9)
推荐解决方案 升级 rmcpdv1.90.72 或以上版本
点击此处查看详细分析解答

关于 OpenUBMC 25.09 版本 ipmitool sol activate 无回显问题的分析与说明

根据您提供的详细问题描述、日志对比以及环境信息,结合 知识库中的实体、关系和文档片段,对 OpenUBMC 25.09 版本中 ipmitool sol activate 无法正常输出、无交互的问题进行综合分析如下。


:magnifying_glass_tilted_left: 问题总结

  • 现象:在 OpenUBMC 25.03 版本中,执行 ipmitool sol activate 可以正常进入串口会话并看到 BIOS/OS 输出(如 localhost login:);但在升级至 25.09 后,执行相同命令无任何输出、无法交互
  • 环境一致性:除软件版本外,硬件、网络、测试方法等均保持一致。
  • 辅助验证
    • 通过 SSH 登录 BMC 并使用 ipmcset -t sol -d activate 命令在两个版本中均可成功交互。
    • 日志显示 25.09 与 25.03 的 serial_mgmt.lua 行为存在差异。

:puzzle_piece: 根本原因分析

:white_check_mark: 核心结论

ipmitool sol activate 在 25.09 中无输出,是因为 SOL 串口默认被路由到了 PANEL COM <-> BMC COM 方向,而非预期的 SOL COM <-> SYS COM(即连接服务器主机 OS)方向。

这导致:

  • 用户虽然成功建立了 IPMI SOL 会话(BMC 已接受连接),但串行数据并未流向操作系统(OS),因此无 BIOS/OS 日志输出。
  • 用户看到的只是一个“空”的串口终端,且输入无响应。

:magnifying_glass_tilted_right: 日志对比分析

日志项 OpenUBMC 25.03 OpenUBMC 25.09
Set serial direction to (SOL COM <-> SYS COM) successfully :white_check_mark: 存在 :cross_mark: 缺失
Setting uart 5 interconnect with port 1 :white_check_mark: 存在 :cross_mark: 缺失
Set serial direction to (PANEL COM <-> BMC COM) successfully 存在(后续) 存在(立即执行

关键解读:

  • 25.03 中:

    • 激活 SOL 时,系统成功将串口方向设置为 SOL COM <-> SYS COM即将 BMC 与服务器主机 CPU 相连
    • 此后用户可通过 SOL 查看系统启动流程、登录界面等。
  • 25.09 中:

    • 缺少关键的 SOL COM <-> SYS COM 切换日志,说明未正确连接到主机系统。
    • 反而立即执行了 PANEL COM <-> BMC COM,意味着串口被接到了本地调试面板或 BMC 自身,与主机系统断开
    • 因此,即使 ipmitool sol activate 成功建立会话,也无法收到主机输出。

:backhand_index_pointing_right: 所谓“激活 SOL 默认不切换到 OS 侧”正是该问题的准确描述。此行为在 25.09 中成为默认行为,而 25.03 中是自动切换的。


:books: 支持证据来源

1. 知识库文档引用:文档 #1《IPMI/CLI SOL常见问题指南》

【问题3】sol连接os串口会话打开后,输入无响应,也没有信息回显
【问题原因】可能为 os 未上电导致
【解决方法】确认 os 是否已经上电,也可以通过 kvm 确认 os 是否正常 ❞

此条说明:正常情况下,SOL 成功激活后应能看到 OS 输出,若无则为异常。

2. 知识库文档引用:文档 #9《问题描述》(reference_id: 1)

content: 使用ipmitool sol activate激活sol,sol默认不会切换到os侧,日志里没有切换日志
需要手动将sol切换到os侧
...
bmc_soc ERROR: serial_sw_obj is null
bmc_soc ERROR: serial_remote_obj is invalid or system id is not exist, system_id: nil
bmc_soc NOTICE: Setting uart interconnect with port 2
bmc_soc NOTICE: Set serial direction to (PANEL COM <-> BMC COM) successfully

:white_check_mark: 与用户在 25.09 中观察到的日志完全一致,证明这不是新问题,而是已知缺陷。

3. 社区用户反馈记录(Document reference_id: 5)

❝ 这是因为串口被切换到CPU侧了,切换回来即可 ❞
(反向证明:当串口未正确切换时,将导致 SOL 无效)


:gear: 技术机制说明

IPMI SOL 激活流程依赖串口路由控制

graph TD
    A[ipmitool sol activate] --> B{BMC接收命令}
    B --> C[执行Activate Payload IPMI命令]
    C --> D[调用serial_mgmt模块]
    D --> E{判断目标串口路由方向?}
    E -->|SOL COM ↔ SYS COM| F[连接主机OS串口 → 显示输出]
    E -->|PANEL COM ↔ BMC COM| G[连接BMC本地调试口 → 无OS输出]
  • 预期路径SOL COM ↔ SYS COM → 访问主机系统。
  • 当前 25.09 的行为:错误地选择了 PANEL COM ↔ BMC COM 路径。
  • 原因可能是 serial_sw_objserial_remote_obj 初始化失败(日志报错),导致 fallback 到默认安全路径(即 PANEL COM)。

:white_check_mark: 解决方案建议

方案一:升级 rmcpd 组件至 v1.90.72 或以上

来自 知识库文档 #1 (reference_id: 1) 的明确建议:

看看 rmcpd 组件是否是 1.90.72 及以上版本呢
使用新版本试试呢,该问题在 1.90.72 版本修复
  • rmcpd 是负责处理 RMCP+ 和 IPMI Session 的守护进程。
  • 在低版本中,rmcpd 对 SOL 激活的串口路由控制逻辑存在缺陷。
  • 推荐操作
# 检查当前版本
ipmcget -d version -t rmcpd

# 若低于 1.90.72,请升级至修复版本

方案二:手动切换串口方向(临时 workaround)

如果无法立即升级,可通过 BMC CLI 手动切换串口方向:

# 登录 BMC SSH
ssh Administrator@<BMC_IP>

# 手动激活并指定连接目标为 SYS COM(即主机OS)
ipmcset -t sol -d activate -v 2 0

参数 -v 2 0 的含义:

  • 第一个参数 2 表示串口目标为 SYS COM(OS 侧)
  • 第二个参数 0 表示加密模式(不启用)

:pushpin: 此命令可正常交互,说明底层功能正常,仅是 ipmitool sol activate 未能触发正确的串口切换逻辑


方案三:检查并修复 platform.sr 配置文件

您推测问题可能出在:

vendor/Huawei/Server/Kunpeng/openUBMC/platform/platform.sr 中对 DEMA 的修改

:white_check_mark: 合理推测!

  • platform.sr 文件通常定义了串口映射、UART 复用、Switch 控制逻辑。
  • 若其中 串口路由策略default SOL target 被修改,则可能导致默认指向 PANEL COM。
  • 建议对比 25.03 与 25.09 的 platform.sr 文件差异,重点关注:
    • SOL_DEFAULT_TARGET
    • serial_switch_config
    • uart_route_policy

:hammer_and_wrench: 建议的验证步骤

  1. 检查 rmcpd 版本

    ipmcget -d version -t rmcpd
    

    ➤ 确保 ≥ 1.90.72

  2. 查看完整日志

    journalctl -u rmcpd | grep -i "serial"
    

    ➤ 观察是否有 Failed to get serial remote object 或类似错误

  3. 使用手动命令测试

    ipmcset -t sol -d activate -v 2 0
    

    ➤ 若能正常输出,则确认为路由策略问题

  4. 升级或回滚 rmcpd

    • 若确认为组件问题,可尝试降级至 25.03 的 rmcpd 包进行对比测试。

:white_check_mark: 总结与建议

项目 内容
问题本质 ipmitool sol activate 在 OpenUBMC 25.09 中未正确将串口路由至主机 OS(SYS COM),而是停留在 BMC 本地(PANEL COM
表现 会话建立成功,但无输出、无交互
根本原因 rmcpd 组件在 25.09 中存在串口路由逻辑缺陷,或 platform.sr 配置变更导致默认路径错误
是否已知问题 :white_check_mark: 是,社区已有多个报告(如 reference_id: 1, 3, 9)
推荐解决方案 升级 rmcpdv1.90.72 或以上版本

:loudspeaker: 建议反馈给开发团队的内容

【问题】OpenUBMC 25.09 版本中,ipmitool sol activate 后无输出,日志显示串口方向未切换至 SYS COM(OS 侧),而是保持在 PANEL COM(BMC 本地)。
【证据】
- 25.03 有日志:Set serial direction to (SOL COM <-> SYS COM) successfully
- 25.09 缺失该日志,取而代之的是 PANEL COM
- 串口对象 serial_sw_obj / serial_remote_obj 报 null 错误
【初步定位】
- rmcpd 组件版本过低(<1.90.72)导致路由失败
- 或 platform.sr 中 SOL 默认策略变更
【建议修复】
- 将 rmcpd 升级至 1.90.72+
- 校验并修正 platform.sr 中的串口默认路由配置

如能完成上述升级或配置修复,ipmitool sol activate 应可恢复正常行为。

相关链接:

  1. 激活sol默认不切换到os侧
  2. 【iTestSmart】ipmi接口设置SmartCooling模式,日志显示成功,但结果Fail。
  3. IPMI sol命令阻塞
  4. Atlas 300V pro NPU卡信息显示不全
  5. IPMI/CLI SOL常见问题指南 | 文档中心 | openUBMC

@vyasa 可以帮忙解答一下,rmcpd 1.90.72版本能在哪里下载吗?
当前开放的conan仓
https://conan.openubmc.cn/openubmc_25.09
https://conan.openubmc.cn/conan_1/
https://conan.openubmc.cn/openubmc_opensource
比1.90.70高的只有
rmcpd/1.100.5@openubmc/stable
rmcpd/1.100.20@openubmc/stable
而这两个版本都是2512大版本之后的,涉及的其他组件依赖都需要同步更新。想在2509的基础上做最小改动。

rmcpd组件当前暂未开源

2512的问题更多,有没有途径可以单独获取单独的更新么