当前使用命令:ipmitool raw 0x30 0x90 0x03 0x70 0xAA擦除了CpuBoard1中Board Extra的数据
现在Board Extra中是没有数据的
现在使用命令:ipmitool raw 0x30 0x90 0x05 0x46 0x02 0x06 0x00 0x0A来写Board Extra,无法写入,报错如下
请问我现在应该如何写Board Extra
答案内容由AI生成,仅供参考:
根据您提供的信息和知识库中的相关规范,您尝试使用命令 ipmitool raw 0x30 0x90 0x05 0x46 0x02 0x06 0x00 0x0A 写入 CpuBoard1 的 Board Extra 区域,但写入失败。以下分析和建议基于现有知识。
0x30 0x90 0x05 的作用知识库明确指出,0x30 0x90 0x05 是一条用于访问和修改 BMC 中 FRU 信息字段的 IPMI 命令。该命令可以修改 FRU 数据条目,包括 Board Extra 区域。因此,命令本身是正确的,但参数格式可能存在问题。
根据知识库中的 FRU 写入规范(文档块4),写入 FRU 数据时应遵循以下格式(以 0x30 0x90 0x05 为例):
0x30 0x90 0x05知识库中的示例(写电子标签):
ipmitool raw 0x30 0x90 0x05 0x00 0x03 0x06 0x00 0x0C 0x31 0x32 ...
其中0x00为 FRU ID,0x03为区域号?该处的具体映射可能需参考 BMC 的 FRU 数据结构。
您的命令 0x30 0x90 0x05 0x46 0x02 0x06 0x00 0x0A 中:
0x46(十进制 70)作为偏移量,可能不是 Board Extra 区域的起始偏移。Board Extra 数据位于 FRU 内部,其偏移取决于之前字段的长度(如 Board Mfg Date、Board Manufacturer 等)。通常需要先通过 fru print 或 fru read 工具查询当前的 FRU 结构,确定 Board Extra 区域的实际偏移。0x02 可能被误认为是 FRU ID,但通常 FRU ID 应为单字节(如 0x00, 0x01 等)。0x06 作为 field 编号是正确的(Board Extra)。0x00 表示写入偏移(从 0 开始?但已在前面指定了偏移 0x46,存在重复)。0x0A(10 字节)在 Board Extra 字段限制内(最大 48 字节)。可能的原因:参数顺序或偏移值与 BMC 期望的格式不匹配。
由于知识库未提供该平台 BMC 的完整命令字节映射,建议按以下通用方法操作:
确认 FRU 设备 ID:CpuBoard1 通常为 FRU ID 2(可通过 ipmitool fru print 或 fru list 确认)。
查询当前 FRU 结构:使用 ipmitool raw 0x30 0x90 0x04(读取 FRU 信息)获取完整的 FRU 二进制数据,解析出 Board Extra 区域的实际偏移和长度。
使用标准写入格式:
ipmitool raw 0x30 0x90 0x05 <FRU_ID> <Area> <Field> <Offset_within_field> <Length> <Data...>
<FRU_ID>: 如 CpuBoard1 为 2(0x02)<Area>: Board 区域通常为 0x02(标准 IPMI FRU 中 Board area = 2)<Field>: Board Extra 对应 field 6(0x06)<Offset_within_field>: 从该 field 的起始位置开始偏移(通常为 0)<Length>: 不超过 48 字节<Data>: 要写入的十六进制数据例如,向 FRU ID 2 的 Board Extra 写入 10 字节数据 31 32 33 34...(假设):
ipmitool raw 0x30 0x90 0x05 0x02 0x02 0x06 0x00 0x0A 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30
检查命令是否被禁用:知识库中提到某些 raw 0x30 0x92 命令因“命令禁用”而失败。虽然您使用的是 0x30 0x90,但如果 BMC 安全策略限制了 FRU 写入,可能需要先执行:
ipmitool raw 0x30 0x90 0x21 0xf0 # 启用 BMC 定制模式(用于修改 FRU/BIOS 数据)
再执行写入命令。
验证写入结果:使用 ipmitool fru print 2(指定 FRU ID)查看 Board Extra 内容是否生效。
如果按照上述建议修改后仍无法写入,可能是 BMC 限制了 FRU 写入操作(如仅允许通过系统自带工具 WriteFRUData 等方法进行),此时建议联系 BMC 固件开发人员确认正确的写入命令。
扩展域要按照key=value格式写入
应该是Description=KP920 24C
ipmitool raw 0x30 0x90 0x04 0x46 0x02 0x06 0x00 0x15 0x44 0x65 0x73 0x63 0x72 0x69 0x70 0x74 0x69 0x6f 0x6e 0x3d 0x4b 0x50 0x39 0x32 0x30 0x20 0x32 0x34 0x43
c代码大部分是闭源组件实现的所以搜不到调用,扩展域写入格式为:key=vlaue格式,中间需要写入一个等号