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

深入解析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.xdnf.cn/news/16623.html

相关文章:

  • CMakelists.txt 实现多级目录编译
  • Kafka 3.9.1的KRaft模式部署
  • 【Spring Boot 快速入门】二、请求与响应
  • Java设计模式之<建造者模式>
  • 稳定币催化下,Web3 支付赛道将迎来哪些爆发?
  • 二十一、动植物类(自然生态)
  • CodeBuddy的安装教程
  • 神经网络的基本骨架-nn.Module的使用和卷积操作
  • 燃气管网运行工考试练习题
  • 如何提升 TCP 传输数据的性能?详解
  • 【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(一)
  • Windows 系统分辨率切换** 与 **Qt4 无边框窗口管理机制** 的交互
  • haproxy实列
  • 【深度学习优化算法】10:Adam算法
  • DDD领域驱动中瘦模型与富态模型的核心区别
  • SpringCloude快速入门
  • 2025最新Mybatis-plus教程(三)
  • java的break能加标签,return可以加标签吗
  • Java#包管理器来时的路
  • 常见认证机制详解
  • Python爬虫入门:从零开始抓取网页数据
  • LeetCode|Day27|70. 爬楼梯|Python刷题笔记
  • print(“\033[31m红\033[32m绿\033[34m蓝\033[0m默认色“)
  • Java学习-------外观模式
  • [spring6: Mvc-异步请求]-源码分析
  • LINUX727 磁盘管理回顾1;配置文件回顾
  • 机械学习初识--什么是机械学习--机械学习有什么重要算法
  • 习题综合练习
  • 数据结构基础内容(第二篇:线性结构)
  • Qt 分裂布局:QSplitter 使用指南