当前位置: 首页 > news >正文

深入解析IPMI FRU规范:分区结构与字段标识详解

深入解析IPMI FRU规范:分区结构与字段标识详解

一、FRU数据结构与分区原理

1. FRU存储区域划分

根据Intel《Platform Management FRU Information Storage Definition》规范,FRU数据被划分为6个标准区域,每个区域通过Common Header中的偏移量定位:

区域名称功能说明是否必需
Common Header定义其他区域的起始偏移量和版本信息,固定8字节
Internal Use Area保留给厂商固件使用,通常存放非易失性数据
Chassis Info Area记录机箱信息(类型、序列号等),系统唯一
Board Info Area存储主板信息(制造商、生产日期、PCB版本等)
Product Info Area产品级信息(型号、资产标签等),OEM可自定义
MultiRecord Area扩展区域,支持传感器校准、厂商自定义数据等

关键特性

  • 每个区域通过偏移量链式定位,Common Header的0x01-0x06字节存储各区域起始地址(以8字节为单位)。
  • 除Common Header外,其他区域通过类型码(如0x01表示Chassis)标识。

2. 分区字段标识规则

每个区域内的字段通过三级标识定位:

(1) 区域级标识
区域类型码(Hex)规范章节
Chassis Info0x01Section 5.3
Board Info0x02Section 6.3
Product Info0x03Section 7.3
MultiRecord0x04Section 8.3
(2) 字段级标识

每个区域包含预定义字段,通过字段编号区分。例如Board Area的字段定义:

字段编号字段名称数据类型示例值
0x02Board Mfg DateBCD编码0x20 0x25 0x02 0x18(2025-02-24)
0x03Board ManufacturerASCII字符串“Huawei”
0x05Board SerialASCII字符串“2102314QUA10PC100055”
(3) 子索引标识
  • 重复字段(如Extra)通过子索引区分(从0开始):
    ipmitool fru edit 0 field e 0 "RackID-01"  # 第一个Extra字段
    ipmitool fru edit 0 field e 1 "Location-A" # 第二个Extra字段
    

二、字段标识实战:从规范到操作

1. 字段定位示例

以修改主板序列号为例:

  1. 确定区域:属于Board Info Area(类型码0x02
  2. 查找字段编号:序列号对应字段0x05
  3. 执行修改
    ipmitool fru edit 0 field 5 0 "NEW_SERIAL_123"
    

2. 特殊字段处理

字段类型处理方式示例
BCD日期转换为16进制值2025-02-240x20 0x25 0x02 0x18
多语言字符串首字节定义语言类型(0xC0表示英文)0xC0 0x48 0x65 0x6C 0x6C 0x6F(“Hello”)
厂商自定义使用MultiRecord Area(类型码0x04需厂商提供模板文件

三、FRU规范深度技术细节

1. Common Header解析

字节偏移含义示例值
0x00版本号(固定0x010x01
0x01-0x06各区域起始偏移(8字节单位)0x10 0x20 0x30...
0x07校验和(其余字节和的补码)自动计算

2. 数据存储格式

  • 字符串:以NULL结尾的ASCII码,最大长度255字节。
  • 数值:Little-endian格式,如0x1234存储为0x34 0x12
  • 校验和:每个区域末字节为校验和(所有字节和的补码)。

四、厂商实现差异与兼容性

1. 主流厂商扩展

厂商扩展特性工具支持
Dell专用FRU格式(加密字段)racadm getfruinfo
HPEiLO扩展MultiRecord类型ilorest
华为自定义Chassis Extra字段mmgetfru

2. 常见问题解决

  • 错误Invalid FRU field definition
    原因:区域校验和错误或字段越界。
    修复:使用厂商工具重写FRU(如英特尔sysfwupdt.efi)。

五、总结与最佳实践

1. 操作黄金法则

  1. 备份优先ipmitool fru read 0 backup.bin
  2. 规范校验:通过fru check验证区域完整性
  3. 厂商适配:优先使用厂商工具修改加密字段

2. 扩展学习资源

  • Intel FRU规范手册
  • OpenBMC FRU实现源码

通过理解FRU的分区结构和字段标识规则,可精准管理硬件信息。如需更详细的字段映射表,可参考上述规范文档。

http://www.dtcms.com/a/303567.html

相关文章:

  • 10_opencv_分离颜色通道、多通道图像混合
  • Nuxt3 全栈作品【通用信息管理系统】修改密码
  • OpenLayers 综合案例-热力图
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • C++进阶—C++11
  • 5G 便携式多卡图传终端:移动作业的 “实时感知纽带”
  • 【unitrix】 6.19 Ord特质(ord.rs)
  • 【灰度实验】——图像预处理(OpenCV)
  • 2025年7月28日训练日志
  • 【三桥君】如何解决后端Agent和前端UI之间的交互问题?——解析AG-UI协议的神奇作用
  • 排水管网实时监测筑牢城市安全防线
  • 线程间-数据缓存机制(线程邮箱)
  • CDN架构全景图
  • STM32 usb HOST audio USB 音频设备 放音乐
  • springCloudAlibaba集成Dubbo
  • 【版本更新】火语言 0.9.94.0 更新
  • 虚拟面孔,真实革命
  • Product Hunt 每日热榜 | 2025-07-28
  • JAVA_EIGHTEEN_特殊文件
  • STM32——寄存器映射
  • LLaMA-Factory微调教程2:命令行sft微调
  • 【拓扑排序 缩点】P2272 [ZJOI2007] 最大半连通子图|省选-
  • 【跳跃游戏】
  • BUUCTF-MISC-[HBNIS2018]caesar1
  • Linux驱动22 --- RV1126 环境搭建设备树修改
  • 从零到一:我是如何用深度学习打造高性能书籍推荐系统的
  • mp核心功能
  • 零基础学习性能测试第九章:全链路追踪-项目实操
  • 猎板 PCB 控深槽工艺:5G 基站散热模块的关键支撑
  • 解决c++运行时提示:first defined here (重复定义问题)