// 此模板仅供参考,如果不适用可以修改
问题描述
带内ipmi 设置 sol 波特率 命令fail
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:[如 OpenUBMC2509]
-
硬件配置:[如 CPU、内存等]
重现步骤
-
[第一步]
-
[第二步]
期望结果
[您希望实现什么]
实际结果
[实际发生了什么,包含错误信息]
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
// 此模板仅供参考,如果不适用可以修改
带内ipmi 设置 sol 波特率 命令fail
操作系统:[如 Ubuntu 24.04]
软件版本:[如 OpenUBMC2509]
硬件配置:[如 CPU、内存等]
[第一步]
[第二步]
[您希望实现什么]
[实际发生了什么,包含错误信息]
[列出您已经尝试过的解决方案及结果]
答案内容由AI生成,仅供参考:
解决方案与建议
SOL 相关配置通常应在带外管理模式下进行,因为 SOL 功能本身是远程管理的一部分。
操作建议:
# 使用LAN Plus接口通过带外通信
ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> \
sol set non-volatile-bit-rate 115.2
提示:BMC默认IPMI端口为 623,协议为UDP。
确认 /mds/IPMI.json 或类似路径中是否定义了 Set SOL Configuration Parameters 命令(NetFn: 0x30, Cmd: 0x11)。
示例结构(来自知识库):
{
"NetFn": "0x30",
"Cmd": "0x11",
"Privilege": "Admin",
"Request": {
"data": ["channel", "parameter_selector", "parameter_data"]
}
}
检查 ipmi.json 文件中相关命令的 privilege 字段是否设置为 Admin,且当前用户具备管理员权限。
根据日志文件 serial_mgmt.lua 的内容,在 BMC 系统中可通过 Lua 脚本控制 UART 映射:
-- 示例:设置 UART5 连接到 Port5
Setting uart 5 interconnect with port 5
若硬件直连串口(如连接到 CPLD),需确保:
部分平台提供专有命令设置SOL超时或波特率。
例如:
ipmcset -t sol -d timeout -v 30
虽然该命令不直接设置波特率,但说明存在专有配置接口。
查阅平台文档以确认是否提供类似:
ipmcset sol bitrate 115200
强烈建议使用带外IPMI方式设置SOL配置参数,包括波特率、权限等级、超时等。
# 推荐命令格式
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set non-volatile-bit-rate 115.2
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set volatile-bit-rate 115.2
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set privilege-level operator
成功标志:无报错输出,且下次激活 SOL 时自动应用新波特率。
在使用ipmitool通过带内方式设置SOL(Serial Over LAN)的非易失性波特率(non-volatile-bit-rate)时,命令执行失败,提示错误信息:
Error setting SOL parameter 'non-volatile-bit-rate' to '115.2': Invalid command on LUNError setting SOL parameter 'set-in-progress' to 'set-in-progress': Invalid data field in request尽管参数值(如115.2、9.6)属于合法范围,但始终无法成功配置。
localhost及shell提示符推测为类Linux系统)ipmitool sol set non-volatile-bit-rate 115.2 或带通道号的变体。Invalid command on LUN 或 Invalid data field in request。示例命令:
ipmitool sol set non-volatile-bit-rate 115.2
ipmitool sol set non-volatile-bit-rate 115.2 1
ipmitool sol set set-in-progress set-in-progress
根据知识库中文件 ipmi_fault_locating.md 的定义:
| 完成码 | 含义 |
|---|---|
0xCC |
请求数据字段非法 |
0xCD |
对特定传感器或者记录所发送的命令非法 |
其中:
Invalid data field in request 对应完成码 0xCC,表示参数格式或取值不合法。Invalid command on LUN 对应 0xCD,表示当前LUN(逻辑单元号)不支持该命令。这表明 BMC 固件可能未正确注册或实现该 IPMI 命令在当前 LUN 上的处理逻辑。
知识库指出:
带内和带外的重试机制不一样,带内只会重试两次。(来源:
ipmi_fault_locating.md)
此外,带内 IPMI 请求由 ipmi_core 模块处理,而带外请求由 rmcpd 处理。二者对命令的支持程度可能存在差异。
结论:某些 SOL 配置命令(尤其是涉及持久化设置的)可能仅在带外模式下被完全支持,带内路径未完整透传或实现。
SOL 相关配置通常应在带外管理模式下进行,因为 SOL 功能本身是远程管理的一部分。
操作建议:
# 使用LAN Plus接口通过带外通信
ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> \
sol set non-volatile-bit-rate 115.2
提示:BMC默认IPMI端口为 623,协议为UDP。
确认 /mds/IPMI.json 或类似路径中是否定义了 Set SOL Configuration Parameters 命令(NetFn: 0x30, Cmd: 0x11)。
示例结构(来自知识库):
{
"NetFn": "0x30",
"Cmd": "0x11",
"Privilege": "Admin",
"Request": {
"data": ["channel", "parameter_selector", "parameter_data"]
}
}
检查 ipmi.json 文件中相关命令的 privilege 字段是否设置为 Admin,且当前用户具备管理员权限。
根据日志文件 serial_mgmt.lua 的内容,在 BMC 系统中可通过 Lua 脚本控制 UART 映射:
-- 示例:设置 UART5 连接到 Port5
Setting uart 5 interconnect with port 5
若硬件直连串口(如连接到 CPLD),需确保:
部分平台提供专有命令设置SOL超时或波特率。
例如:
ipmcset -t sol -d timeout -v 30
虽然该命令不直接设置波特率,但说明存在专有配置接口。
查阅平台文档以确认是否提供类似:
ipmcset sol bitrate 115200
| 尝试命令 | 结果 | 原因分析 |
|---|---|---|
ipmitool sol set non-volatile-bit-rate 115.2 1 |
失败 | LUN不支持,命令未在该通道注册 |
ipmitool sol set "115.2" |
失败 | 参数类型错误,不应加引号 |
ipmitool sol set set-in-progress set-in-progress |
失败 | set-in-progress 字段校验失败,可能因状态冲突 |
| 多次重复设置 | 失败 | 带内IPMI可能未实现完整SOL配置流程 |
graph TD
A[开始] --> B{是带内还是带外?}
B -->|带内| C[切换为带外模式]
B -->|带外| D[继续]
C --> D
D --> E[确认用户权限为Admin]
E --> F[检查ipmi.json是否有NetFn=0x30,Cmd=0x11]
F --> G[执行ipmitool -I lanplus ... sol set ...]
G --> H{成功?}
H -->|是| I[问题解决]
H -->|否| J[检查rmcpd或ipmi_core日志]
J --> K[确认CPLD串口路由是否正确]
K --> L[联系开发确认命令实现]
ipmitool 在带内环境下可能受限于 kernel 接口(如 /dev/ipmi0)的功能完整性。IPMI/CLI SOL常见问题指南,SOL 连接失败常见于:
强烈建议使用带外IPMI方式设置SOL配置参数,包括波特率、权限等级、超时等。
# 推荐命令格式
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set non-volatile-bit-rate 115.2
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set volatile-bit-rate 115.2
ipmitool -I lanplus -H <BMC_IP> -U Administrator -P <password> \
sol set privilege-level operator
成功标志:无报错输出,且下次激活 SOL 时自动应用新波特率。
如仍失败,请收集以下信息进行进一步分析:
BMC 系统日志(特别是 ipmi_core 和 rmcpd 模块输出);ipmi.json 文件中关于 NetFn: 0x30, Cmd: 0x11 的定义;ipmitool raw 0x30 0x10 查询当前 SOL 配置状态;Channel Access 是否允许 Administrator 修改 SOL 参数。如有更多日志或配置文件,可进一步深入定位。
相关链接:
bmc侧有什么异常日志?
当前实现non-volatile-bit-rate和volatile-bit-rate命令均不支持设置,命令直接返回0xC2错误码,提示信息为Invalid command on LUN