// 此模板仅供参考,如果不适用可以修改
问题描述
[在这里详细描述您遇到的问题]
无有效打印(如 命令回显),定位困难
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:[如 OpenUBMC2509]
-
硬件配置:[如 CPU、内存等]
重现步骤
-
[第一步]
-
[第二步]
-
[第三步]
期望结果
[您希望实现什么]
查看失败命令的回显
实际结果
[实际发生了什么,包含错误信息]
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
// 此模板仅供参考,如果不适用可以修改
[在这里详细描述您遇到的问题]
无有效打印(如 命令回显),定位困难
操作系统:[如 Ubuntu 24.04]
软件版本:[如 OpenUBMC2509]
硬件配置:[如 CPU、内存等]
[第一步]
[第二步]
[第三步]
[您希望实现什么]
查看失败命令的回显
[实际发生了什么,包含错误信息]
[列出您已经尝试过的解决方案及结果]
答案内容由AI生成,仅供参考:
| 项目 | 状态 |
|---|---|
| 问题类型 | BCU硬件信息读取失败 |
| 根本原因 | 很可能是 环境无BCU 或 SMC对象不存在 / JTAG链路未切换 |
| 涉及组件 | BCU Board, SMC, BMC, CSR, BizTopoMonitor |
| 推荐优先级操作 | 确认测试环境是否支持BCU → 检查SMC设备存在 → 切换JTAG链路 → 验证CSR配置 |
附加建议:
参考《MCU、VRD、CSR、CPLD升级与板卡管理问题指南》中的调试方法,使用busctl工具链逐步验证底层访问能力,避免直接运行高层自动化测试造成误判。
在执行自动化测试用例 “Get BCU HW Info Via cli” 时,通过SSH命令查询BCU板卡硬件信息失败。测试用例未能在返回结果中找到预期的硬件信息标识 17 85,导致测试不通过。
相关错误信息如下:
FAIL 未找到硬件信息: 'busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}u0 0x500 2' does not contain '17 85'
Get BCU HW Info Via clibusctl命令访问SMC(天池管理控制器)busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}u0 0x500 2
17 85 字样根据知识图谱信息:
BCU Board 是系统主控板之一,RiserCard 物理安装于其上。
检查建议:确认 BCU 是否物理就位,连接良好,且已通电运行。
/Smc_CpuBrdSMC_010101 设备对象,该路径可能不匹配实际存在的设备。
验证建议:
busctl --user list | grep Smc查看当前可用的SMC设备列表,确认目标对象是否存在。
busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t <chain_value>
提示:EXU为0,BCU为1,需根据具体板位选择正确的链路。
尽管测试日志中Verify SSH Connection最终成功(status = True),但以下问题仍可能存在:
注意:
Codebmcdev曾咨询 Administrator 用户的 SSH 登录密码问题,表明 Administrator 是 openUBMC 管理平台的主要管理账户,建议确保使用正确凭据登录。
解决方向:
- 检查CSR中是否正确定义了 BCU1 Config。
- 验证
SrcPortName与BCUIndex映射关系是否正确。
BizTopoMonitor 负责监控 BCU1 的配置与状态。BizTopoMonitor has repeatedly failed to read or monitor topology data.
排查步骤:
journalctl -u BizTopoMonitor检查是否有拓扑加载失败日志。
# 列出所有SMC设备
busctl --user list | grep Smc
# 尝试调用前先 ping 或探查对象是否存在
busctl --user introspect bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101
# 设置JTAG链路为BCU(假设Position为010101)
busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t 1
# 查询ChipIdcode验证是否能获取芯片信息
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_010101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0
# 查看BizTopoMonitor服务状态
systemctl status BizTopoMonitor
# 查看日志是否有错误
journalctl -u BizTpooMonitor --no-pager -n 50
当前无有效命令回显,增加调试信息可提升定位效率:
# 改进建议:打印执行命令和完整响应
Log 执行命令: ${input_bcu}
${rsp} = Wait Until Keyword Succeeds 3x ${time_out} Execute SSH Command ${ssh} ${input_bcu} timeout=60
Log 原始响应: ${rsp}
${clean_rsp} = Clean SSH Response ${rsp}
Log 清理后响应: ${clean_rsp}
| 项目 | 状态 |
|---|---|
| 问题类型 | BCU硬件信息读取失败 |
| 根本原因 | 很可能是 环境无BCU 或 SMC对象不存在 / JTAG链路未切换 |
| 涉及组件 | BCU Board, SMC, BMC, CSR, BizTopoMonitor |
| 推荐优先级操作 | 确认测试环境是否支持BCU → 检查SMC设备存在 → 切换JTAG链路 → 验证CSR配置 |
附加建议:
参考《MCU、VRD、CSR、CPLD升级与板卡管理问题指南》中的调试方法,使用busctl工具链逐步验证底层访问能力,避免直接运行高层自动化测试造成误判。
相关链接:
这边是希望把BMC日志也打印出来对吗
@huamouwei 你这里的错误信息都来自于你的测试用例脚本,看不出有效信息。可以把脚本中的命令在BMC环境上执行一下,再检查一下错误信息
基本信息可以用ipmcget -d v查看,可以描述下具体希望获取哪些信息
是的,错误信息在bmc日志里面,可以先把close_qemu这个命令注释,然后等冒烟失败后,登录bmc看看日志
测试脚本就是社区的QA仓库main分支。
本期启动qemu后执行 smoke/execute.py等待web和redfish起来,再执行smoke/testing.py,就会出现这个问题。
尝试过一下解决方案:
web和refish起来后,直接ssh登录进去执行 ‘busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x500 2’ ,出现报错,等待一会就正常回显
因此尝试延长execute.py中的等待时间为90s,问题规避,但redfish获取BCU板卡信息又出现状态码不一致的情况;回退execute修改,延长测试用例中重试等待时间为20s,出现一样的现象
没有任何修改的情况下,只把close_qmue注释,重复执行smoke/testing.py,测试通过,也就是qemu起来后第一次执行必定报错。
dump日志:dump_info.tar.gz
dump_info.docx (3.1 MB)