跳转至

SMBIOS

SMBIOS

SMBIOS( System Management BIOS)是主板或者系统制造商以标准格式显示产品信息所遵循的规范。依据该规范,BIOS 在 POST 阶段可以知道如何去创建。OS 阶段,操作系统和应用程序知道如何使用,解释内存区域表示什么意思

在物理上,SMBIOS 是上电开机,BIOS 在内存中建立的一块区域,保存了平台的相关信息。在 EFI 系统中,SMBIOS 表的地址可以通过 SMBIOS GUID (SMBIOS_TABLE_GUID)在 EFI 配置表(EFI Configuration Table)中找到

SMBIOS 表中 SMBIOS 记录的总数可以从其起始数据结构 (SMBIOS Entry Point Structure)中获得。应用程序可以从 SMBIOS Entry Point Structure 中获得所有 SMBIOS 记录的起始地址,并且通过遍历每一个 SMBIOS 记录来获得各种系统信息

DMI

dmidecode 是一个读取电脑 DMI(桌面管理接口 Desktop Management Interface)表内容并且以人类可读的格式显示系统硬件信息的工具

UUID

在计算机硬件管理中,System Management BIOS (SMBIOS) 是一种标准,用于描述和识别计算机硬件。 其中,每个设备都会被分配一个唯一的 Universally Unique Identifier (UUID),用于标识这个设备

数据结构信息

SMBIOS EPS 表结构如下:

位置 名称 长度 描述
00H 关键字 4BYTE 固定是 "SM"
04H 校验和 1BYTE 用于校验数据
05H 表结构长度 1BYTE Entry Point Structure 表的长度
06H Major 版本号 1BYTE 用于判断 SMBIOS 版本
07H Minor 版本号 1BYTE 用于判断 SMBIOS 版本
08H 表结构大小 2BYTE 用于即插即用接口方法获得数据表结构长度
0AH EPS 修正 1BYTE -
0B-0FH 格式区域 5BYTE 存放解释 EPS 修正的信息
10H 关键字 5BYTE 固定为 "DMI"
15H 校验和 1BYTE Intermediate Entry Point Structure (IEPS) 的校验和
16H 结构表长度 2BYTE SMBIOS 结构表的长度
18H 结构表地址 4BYTE SMBIOS 结构表的真实内存位置
1CH 结构表个数 2BYTE SMBIOS 结构表数目
1EH SMBIOS BCD 修正 1BYTE -

通过 EPS 表结构中 16H 以及 18H 处,得出数据表长度和数据表地址,即可通过地址访问 SMBIOS 数据结构表。从 EPS 表中的 1CH 处可得知数据表结构的总数,其中 TYPE 0 结构就是 BIOS information , TYPE 1 结构就是 SYSTEM Information 。

每个结构的头部是相同的,格式如下:

位置 名称 长度 描述
00H TYPE 号 1BYTE 结构的 TYPE 号
01H 长度 1BYTE 本结构的长度,就此 TYPE 号的结构而言
02H 句柄 2BYTE 用于获得本 SMBIOS 结构,其值不定

每个结构都分为格式区域和字符串区域,格式区域就是一些本结构的信息,字符串区域是紧随在格式区域后的一个区域。结构 01H 处标识的结构长度仅是格式区域的长度,字符串区域的长度是不固定的。有的结构有字符串区域,有的则没有。

下面以 TYPE 0 ( BIOS information )为例说明格式区域和字符串区域的关系。 TYPE 0 ( BIOS information )格式区域如下:

位置 名称 长度 描述
00H TYPE 号 1BYTE 结构的 TYPE 号,此处是0
01H 长度 1BYTE TYPE 0 格式区域的长度,一般为14H ,也有 13H
02H 句柄 2BYTE 本结构的句柄,一般为0000H
04H BIOS 厂商信息 1BYTE 此处是 BIOS 卖方的信息,可能是 OEM 厂商名,一般为 01H ,代表紧随格式区域后的字符串区域的第一个字符串
05H BIOS 版本 1BYTE BIOS 版本号,一般为 02H ,代表字符串区域的第二个字符串
06H BIOS 开始地址段 2BYTE 用于计算常驻BIOS 镜像大小的计算,方法为(10000H-BIOS 开始地址段)×16
08H BIOS 发布日期 1BYTE 一般为03H ,表示字符区第三个字符串
09H BIOS rom size 1BYTE 计算方法为(n +1 )×64K ,n 为此处读出数值
0AH BIOS 特征 8BYTE BIOS 的功能支持特征,如 PCI,PCMCIA,FLASH 等
12H BIOS 特征扩展 不定 -

设备类型

The SMBIOS specification defines the following DMI types:

Type Information
0
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply
40 Additional Information
41 Onboard Device

参考资料

项目

资料