当前位置: 首页 > 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.lryc.cn/news/602519.html

相关文章:

  • 【数据库】时序数据库选型指南:从大数据视角看IoTDB的核心优势
  • AUTOSAR进阶图解==>AUTOSAR_SRS_OS
  • Item17:以独立语句将newed对象置入智能指针
  • RK3568基于mpp实现硬解码(二):FFmpeg + mpp实现ipc摄像头图像解码
  • 【剑指offer】树
  • 【Meta常见问题第2期】固定效应 vs 随机效应:Meta分析模型选择全解析
  • 【行测】常识判断1
  • 【MySQL】MySQL数据库如何改名
  • 【n8n】n8n新增webhook接口写数据(图解步骤,参数json,mysql存储)
  • java设计模式 -【责任链模式】
  • 常见的未授权访问漏洞靶场-练习教程
  • 2.DRF 序列化器-Serializer
  • 从2025世界人工智能大会,看AI与算力的临界点突破
  • 【MySQL学习|黑马笔记|Day1】数据库概述,SQL|通用语法、SQL分类、DDL
  • DMETL安装流程及简单使用
  • 2025年人工智能三大突破:多模态推理、具身智能与全球治理
  • Java 数学工具类 Math
  • 实用工具类分享:BeanCopyUtils 实现对象深浅拷贝高效处理
  • 对于ui=f(state)的理解(react)
  • 基于springboot的大创管理系统(源码+论文+开题报告)
  • 【React Context API 优化与性能实践指南】
  • 【前端】React 与 Vue:前端两大框架的全方位对比解析
  • JVM 内存模型深度解析:原子性、可见性与有序性的实现
  • 如何给电脑换个ip地址?电脑换ip几种方法
  • 测试平台开发:自动化测试平台----需求分析
  • fmriprep安装与试用_附ubuntu分区大小调整
  • NAT地址转换,静态NAT,高级NAT,NAPT,easy IP
  • JAVA_EIGHTEEN_特殊文件
  • 使用 nvm (Node Version Manager) 来管理多个 Node.js 版本,并自由切换
  • 从文件到文件描述符:理解程序与文件的交互本质