l00012320
(kunlun_luzhanghui)
2026 年2 月 26 日 03:00
1
CPU board Info
Name | Position | Manufacturer | Slot | Description | UID | SerialNum | PartNum | PCB Ver | CPLDVersion | HWSRVersion
BC83AMDHA | BCU1 | Huawei | 1 | CpuBoard | 00000001020302083825 | | 0302083826 | .A | 2.11 | 1.15
hw_stream.log产生如下报错
1970-01-01 00:00:36.405159 hwdiscovery NOTICE: init.lua(224): position: 010101, merge soft data from /opt/bmc/sr/14060876_00000001020302083825_soft.sr and hardware data form /data/opt/bmc/sr/backup/00000001020302083825_010101.bin successfully
1970-01-01 00:00:36.407057 hwdiscovery NOTICE: hwcomponent.lua(155): position:010101, merge customer data from /opt/bmc/extend/00_ff/sr/00000001020302083825.sr failed, error: Local file not found, open file failed: /opt/bmc/extend/00_ff/sr/00000001020302083825.sr, status: 4
1970-01-01 00:00:36.407933 hwdiscovery NOTICE: hwcomponent.lua(210): position: 010101, load sr data successfully, uptime: 37 s, cost: 3140ms
2026-02-25 12:49:59.740631 hwdiscovery NOTICE: dump.lua(99): dump connector: Connector_BCU_1_0101 csr file: /data/opt/bmc/sr/backup/00000001020302083825_010101.bin, to /dev/shm/dump_info_tmp/dump_info/AppDump/hwdiscovery/Connector_BCU_1_0101.bin successfully
但是一键收集的时候提示正常:
2026-02-25 12:49:59.746893 hwdiscovery NOTICE: dump.lua(106): dump connector:: Connector_BCU_1_0101 soft csr loading file: /opt/bmc/sr/14060876_00000001020302083825_soft.sr, to /dev/shm/dump_info_tmp/dump_info/AppDump/hwdiscovery/Connector_BCU_1_0101.bin
最终收下来的Connector_BCU_1_0101_soft.sr内容也符合预期,是我修改后的内容
环境上的掩码未发生变更。
环境上soft.sr存在,内容也符合预期。
一键收集:
KunLun2280V2_2102315PDK10S1100005_20260225-1249.txt (3.4 MB)
答案内容由AI生成,仅供参考:
总结
问题
原因
解法
soft.sr 修改未生效
csr_version.json 未标记 Merge=true
更新或删除该文件
属性仍为默认值
硬件 .sr 覆盖了 soft.sr
删除或修改硬件 .sr
动态更新无效
BMC 未重新加载对象
使用 mdbctl 强制 reload 或 reboot
最终推荐操作顺序 :
删除 /opt/bmc/sr/csr_version.json
确保 14060876_..._soft.sr 内容正确
删除可能存在冲突的硬件 .sr 文件
执行 reboot 或 mdbctl → hwdiscovery.reload()
使用 lsprop 验证属性是否更新
完成后,您的 Scanner 对象 Mask 应能正常生效为 65520。
点击此处查看详细分析解答
新建 soft.sr 文件后对象属性未生效问题分析与解决方案
根据您提供的日志和环境信息,soft.sr 文件已正确创建并加载,但系统中实际对象的属性(如 Mask 值)并未更新。这表明配置未被正确应用。以下是详细分析及解决方法。
问题现象总结
soft.sr 文件存在且内容正确 :
已在 /opt/bmc/sr/ 路径下成功部署 14060876_00000001020302083825_soft.sr。
文件内容符合预期,包含修改后的 Mask=65520 配置。
日志显示加载成功 :
hw_stream.log 显示 merge soft data ... successfully。
一键收集也确认软配置文件被读取。
实际运行时属性未更新 :
使用 lsprop Scanner_12v_010101 查询,Mask=65535(默认值),而非 65520。
表明 soft.sr 的配置 虽被加载但未生效 。
根本原因分析
结合知识图谱、搜索结果与日志信息,核心问题如下:
1. CSR 软硬合并机制未触发或未生效
根据 《硬件自发现CSR选择策略》(文档 #8 ) :
软硬件 SR 合并的前提是:
SR 格式版本 ≥ 3.00 且 < 5.00
环境存在 soft.sr 文件
合并逻辑:
不同名对象:直接合并
同名对象不同属性:合并属性
同名对象同属性:优先使用硬件 SR 的配置
关键点:属性冲突时,“硬件优先”原则可能导致 soft.sr 被覆盖
尽管 soft.sr 被加载,但如果以下任一情况成立,其配置将被忽略:
硬件 .sr 或 EEPROM 中已有 Scanner_12v 对象定义,并包含 Mask 属性;
合并流程中 Mask 属性来自硬件源,且保留优先级更高。
2. csr_version.json 未同步导致 Merge 状态异常
根据 KG 实体关系 :
Soft.SR File 必须与 csr_version.json 的 Merge 字段保持同步。
如果 csr_version.json 未更新 Merge 标志 ,系统可能:
忽略软配置变更;
认为合并已完成,不重新加载;
使用缓存或备份版本。
即使 soft.sr 文件存在,若未通过版本控制系统标记为“待合并”,则不会触发配置更新。
3. 系统运行时未触发对象重加载
根据日志:
load sr data successfully, uptime: 37 s, cost: 3140ms
表明在系统启动初期已完成加载。
动态替换 soft.sr 文件不会自动触发对象重建或属性刷新。
除非:
重启 hwdiscovery 或 BMC;
手动触发 sr 重载命令;
发送模型重加载信号(如 via mdbctl);
否则,内存中的对象仍基于旧数据实例化。
解决方案
方案一:确保 csr_version.json 正确更新(推荐优先执行)
依据 :Soft.SR File 需与 csr_version.json 的 Merge 字段同步。
操作步骤:
编辑或检查文件路径:
/opt/bmc/sr/csr_version.json
查找对应 SR 文件条目,确保其 Merge 字段设置为 true:
{
"Files": [
{
"FileName": "14060876_00000001020302083825_soft.sr",
"FormatVersion": "3.00",
"DataVersion": "3.13",
"Merge": true
}
]
}
若文件不存在或无该条目,请创建并设为 Merge: true。
说明 :此设置能强制系统在下次初始化或 reboot 时进行软硬合并。
方案二:删除 csr_version.json 强制重新合并(适用于调试)
依据 :文档 #8 提示:
“需要同步修改 csr_version.json 文件对应 SR 的 Merge 字段,或者直接删除该文件 。”
操作步骤:
rm /opt/bmc/sr/csr_version.json
reboot
系统重启后会重新生成该文件,并尝试重新合并所有 .sr 和 soft.sr。
方案三:验证是否存在硬件 .sr 文件覆盖软配置
检查硬件源是否已定义 Mask
检查是否有同名 .sr 文件存在于:
/opt/bmc/sr/14060876_00000001020302083825.sr
若存在,用 cat 查看是否已定义 Scanner_12v 且包含 Mask=65535。
若存在,修改或删除该文件(或移出目录)以避免覆盖。
建议:仅保留 soft.sr,或将硬件 .sr 中的 Mask 显式删除,使 soft.sr 成为唯一来源。
方案四:强制刷新内存对象(无需重启)
使用 mdbctl 工具强制重新加载配置。
操作步骤:
登录 BMC:
ssh root@bmc-ip
进入调试终端:
mdbctl
重新加载硬件发现模块:
hwdiscovery.reload()
或
manager:reload("hwdiscovery")
查看日志是否重新打印 merge soft data ...。
再次检查:
lsprop Scanner_12v_010101
预防建议
措施
说明
始终同步 csr_version.json
所有 soft.sr 修改后都应更新该文件的 Merge 字段为 true
命名规范一致
soft.sr 文件名必须与硬件 .sr 的 BOM + GUID 模式匹配
避免属性冗余定义
同一属性不要在硬件 .sr 和 soft.sr 中都定义,防止“硬件优先”覆盖
开发阶段定期清理缓存
删除 csr_version.json、/data/opt/bmc/sr/backup/ 下的 bin 文件
总结
问题
原因
解法
soft.sr 修改未生效
csr_version.json 未标记 Merge=true
更新或删除该文件
属性仍为默认值
硬件 .sr 覆盖了 soft.sr
删除或修改硬件 .sr
动态更新无效
BMC 未重新加载对象
使用 mdbctl 强制 reload 或 reboot
最终推荐操作顺序 :
删除 /opt/bmc/sr/csr_version.json
确保 14060876_..._soft.sr 内容正确
删除可能存在冲突的硬件 .sr 文件
执行 reboot 或 mdbctl → hwdiscovery.reload()
使用 lsprop 验证属性是否更新
完成后,您的 Scanner 对象 Mask 应能正常生效为 65520。
1970-01-01 00:00:36.405159 hwdiscovery NOTICE: init.lua(224): position: 010101, merge soft data from /opt/bmc/sr/14060876_00000001020302083825_soft.sr and hardware data form /data/opt/bmc/sr/backup/00000001020302083825_010101.bin successfully
从这行日志看已经合并了sr和soft.sr,是否是sr内有同名属性定义,sr和soft sr存在同名对象同名属性时优先使用sr内的。
l00012320
(kunlun_luzhanghui)
2026 年2 月 26 日 06:25
4
有办法调整优先级吗?这样不是没法做到修改硬件SR了?有个问题是在硬件SR里配置的,我想通过soft.sr进行覆盖替换,从而达到最终功能正常的效果.
另外社区上有soft.sr\定制sr\硬件sr,三者合并的规则介绍吗?