使用ipmitool sol activate激活sol,sol默认不会切换到os侧,日志里没有切换日志
需要手动将sol切换到os侧
使用bmc_soc版本
![]()
答案内容由AI生成,仅供参考:
根据您提供的信息,当前在使用 ipmitool sol activate 命令激活 SOL(Serial Over LAN) 后,系统并未自动将串行通道切换到OS侧,且日志中未记录切换动作。以下是基于已有上下文数据的综合分析与说明。
ipmitool sol activatebmc_soc 版本为 1.80.25@openubmc/stable。从提供的日志片段可提取关键信息:
2026-01-16 10:10:15.291675 bmc_soc NOTICE: serial_mgmt.lua(479): reset uart connect successfully
2026-01-16 10:10:16.849175 Tencent tencent_ipmi_func.lua(61): [tencent] start call ipmi from /bmc/kepler/IpmiCmds/06/48/ActivatePayload
2026-01-16 10:10:16.856634 bmc_soc ERROR: serial_mgmt.lua(248): serial_sw_obj is null
2026-01-16 10:10:16.857001 bmc_soc ERROR: serial_mgmt.lua(268): serial_remote_obj is invalid or system id is not exist, system_id: nil
2026-01-16 10:10:16.859768 bmc_soc NOTICE: serial_mgmt.lua(346): Setting uart interconnect with port 2
2026-01-16 10:10:16.861237 bmc_soc NOTICE: serial_mgmt.lua(197): Set serial direction to (PANEL COM <-> BMC COM) successfully
| 日志条目 | 含义 |
|---|---|
reset uart connect successfully |
UART连接已重置,初始化正常 |
serial_sw_obj is null |
关键的串行交换对象未创建,可能原因:驱动未加载或配置缺失 |
serial_remote_obj is invalid or system id is not exist |
远端系统对象无效或系统ID未识别,可能导致无法建立到OS的链路 |
Set serial direction to (PANEL COM <-> BMC COM) |
串行方向被设置为“面板串口 ↔ BMC”,而非 ↔ OS |
核心问题:SOL成功激活,但串行通道方向仍停留在BMC内部通信模式(PANEL COM ↔ BMC COM),并未切换至“BMC ↔ OS”或“HOST OS”路径。
serial_mgmt.lua 脚本管理Serial Mgmt Lua 是 BMC 中用于管理 UART 和串行通信的核心脚本。Bmc Soc 协同完成路由配置[Set SOL Configuration Parameters](./details/Transport-0Ch/21h.md) 是否设置了默认串行方向)serial_sw_obj 和 serial_remote_obj 异常说明资源初始化失败bmc_soc)未完全加载相关模块openUBMC/bmc_soc)若平台支持,可通过如下命令手动切换串行方向至OS侧:
# 示例(具体命令依平台而定):
ipmcset -t sol -d hostconnect -v 1
# 或调用特定Lua脚本接口
注:当前知识库中无直接命令示例,需确认平台是否提供类似
Set Serial Host Connect的IPMI命令。
使用以下命令查看SOL配置:
ipmitool sol info
输出应包含:
若需修改默认串行路由行为,应通过:
ipmitool sol set [parameter] [value]
例如:
ipmitool sol set nonvolatile-bit-rate 115200
ipmitool sol set volatile-bit-rate 115200
但注意:标准IPMI不直接支持设置“默认切换到OS”选项,需平台扩展支持。
bmc_soc 与 serial_mgmt.lua 组件当前 bmc_soc 版本为 1.80.25@openubmc/stable,可能存在以下问题:
| 问题 | 建议 |
|---|---|
serial_sw_obj is null |
检查是否缺少串行交换服务依赖项 |
system_id: nil |
可能 Host 未响应或未广播身份信息 |
Set serial direction to (PANEL COM <-> BMC COM) |
表明系统默认回退至安全模式 |
建议措施:
bmc_soc 到稳定修复版本。serial_mgmt.lua 脚本为最新版,并确认其逻辑包含激活SOL后尝试连接Host OS的分支。console=ttyS0)?| 概念 | 说明 |
|---|---|
| SOL (Serial Over LAN) | 基于IPMI的远程串行控制协议,允许通过网络访问设备串行控制台 |
| IPMI SOL Activation | 触发SOL会话建立的标准流程,由 Activate Payload 命令控制 |
| 串行方向控制 | 由BMC固件脚本(如 serial_mgmt.lua)管理,决定数据流向(BMC ↔ Panel / Host) |
| serial_sw_obj / serial_remote_obj | 关键运行时对象,用于管理串行路由交换;若为空则无法连接Host |
| openUBMC / bmc_soc | 开源BMC项目中的组件,该问题多见于早期或定制版本 |
SOL激活后未自动切换到OS侧的根本原因在于:
serial_mgmt.lua脚本在处理激活事件时未能成功初始化到Host OS的串行链路;- 存在
serial_sw_obj is null和system_id: nil错误,导致无法完成路由切换;- 默认行为是连接BMC自身而非Host,切换到OS需额外显式操作或平台策略支持。
ipmitool sol info 检查SOL配置;bmc_soc 和 serial_mgmt.lua 到最新稳定版本;如需进一步诊断,请提供完整日志及平台型号、BMC固件版本信息。
相关链接:
看看 rmcpd 组件是否是 1.90.72 及以上版本呢
rmcpd/1.90.70@openubmc/stable#5c1a758610a587363687f2a321c51caf%1764674869.266
使用新版本试试呢,该问题在 1.90.72 版本修复