SMBIOS 学习内容

 

符合 SMBIOS 规范的计算机的 系统信息获取方法

对于符合SMBIOS 规 范的计算机,可以通过访问SMBIOS 的结构获得系统信息,共有两种办法可以访问:

1 .通过即插即用功能接口访问SMBIOS 结构,这个在SMBIOS2.0 标准里定义 了,从SMBIOS 2.1 开始这个访问方法不再被推荐使用。

2 .基于表结构的方法,表内容是 table entry point 数据,这个访问方法从SMBIOS 2.1 以后 开始被使用,从2.1 开始,以后的版本都推荐使用这种访问方式。在2.1 版本中允许支持这两种方法中的任意一种和两种都支持,但在2.2 已 经以后的版本,必须支持方法2

鉴于市场上计算机已经均支持SMBIOS2.3 标 准,所以只考虑方法2 ,基于表结构的访问方式。

基于表结构访问SMBIOS 的过程是先找到 Entry Point Structure EPS 表,然后通过 Entry Point Structure EPS 表的数据找到 SMBIOS 数据表。

访问SMBIOS EPS 表 的操作过程如下:

1   从物理内存0xF0000-0xFFFFF 间寻 找关键字“ _SM_

2   找到后再向后16 个字节,看后面5BYTE 是否是关键字“_DMI_ ”,如果是,EPS 表即找到。

注:按照SMBIOS 规 范说明,找到关键字”_SM_” 后就可以确定此处就是EPS 表 结构,但我在实际操作中发现有为数不少的计算机的指定64K 内存中有不只一个“_SM_ ”,所以不能仅用找到”_SM_” 来确定,需要 继续判断16 个字节后是否是“_DMI_ ”。

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 表 结构中的12H 以及14H 处,得出数据表长 度和数据表地址,即可通过地址访问结构表。从EPS 表中的1CH 处 可得知结构表结构的总数,其中TYPE 0 结构就是BIOS informationTYPE 1 结构就是SYSTEM Information

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

位置

名称

长度

描述

00H

TYPE

1BYTE

结构的TYPE

01H

长度

1BYTE

本结构的长度,就此TYPE 号的结构而言

02H

句柄

2BYTE

用于获得SMBIOS 结构,使用方法未知

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

下面以TYPE 0BIOS 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

一般为04H ,表示字符区第三个字符串

09H

BIOS rom size

1BYTE

计算方法为(n1 )×64Kn 为此处读出数值

0AH

BIOS 特征

8BYTE

Bios 的功能支持特征,如PCI,PCMCIA,FLASH

12H

Bios 特征扩展

不定

 

紧随TYPE 0BIOS information )结构区域之后的就是TYPE 0BIOS information )字符串区域,如下所示:

db System BIOS Vendor Name,0 ;  字符串以零结尾,第一个字符串:卖方信息

db 4.04,0 ;                     第二个:BIOS 版 本

db 00/00/0000 ,0 ;               第三个:发布日期

db 0 ;                                O 为整个字符区域的结尾,所以要找下一个TYPE, 只要在字符区域找到连续的OOOOH 即可

注:当有EPS 表 中得到结构表的开始地址后,可以直接按结构来寻找相应的TYPE 号,找到后直接读取就是该TYPE 对应的结构的格式区域信息,然后向后移动结构区域长度(机构区域长度由该结构的O1H 处读出)个BYTE ,即是该TYPE 机构的字符串区域。

 

由上面介绍可知,获得BIOS 信 息的办法就是:

1    通过EPS 表的12H14H 数据找到TYPE 结构表,然后找到TYPE 0 的内存地址。( 不一定是首个)

2    TYPE 0 结构区域中得出相应BIOS 信息是否存在(存在则是上面所述的   01H,02H,03H 依次排布,不存在则是相应的位置上为00H )。

3    如存在信息,则从字符串区域中读取对应BIOS 信息。

获得SYSTEM 信 息方法同上,只是TYPE 结构区域有所不同,请参照SMBIOS Reference Specification


符合 SMBIOS 规范的计算机的系统信息获取方法
SMBIOS,DIM
在阅读 SMBIOS spec 之前先看看这两篇文章 , 有个感性认识 , 再去阅 读规范文档 , 可以帮助理解 .
================================
DMI
是英文单词 Desktop Management Interface 的缩写,也就是桌面管理界面,它含有关于系统硬件的配置信息。 计算机每次启动时都对 DMI 数据进行校验,如果该数据出错或硬件有所变动,就会对机器进行 检测,并把测试的数据写入 BIOS 芯片保存。所以如果我们在 BIOS 设置中禁止了 BIOS 芯 片的刷新功能或者在主板使用跳线禁止了 BIOS 芯片的刷新功能,那这台机器 的 DMI 数据将不能被更新。如果你更换了硬件配置,那么在进行 WINDOWS 系统时,机器仍旧按老系统的配置进行工作。这样就不能充分发挥新 添加硬件的性能,有时还会出现这样或那样的故障。

在 介绍什么是 DMI 之前,先说说 SMBIOS (System Management BIOS SMBIOS) 的概念。 SMBIOS 是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规 范。 DMI (Desktop Management Interface, DMI) 就是帮助收集电脑系统信息的管理系统, DMI 信息的收集必须在严格遵照 SMBIOS 规范的前提下进行。 SMBIOS DMI 是由行业指导机构 Desktop Management Task Force (DMTF) 起草的开放性的技术标准,其中, DMI 设计适用于任何的平台和操作系统。 DMI 充当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。 DMI 的主要组成部分是 Management Information Format (MIF) 数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过 DMI ,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。为了提供更为友好的用户工作环境, AOpen 开发了实用的 WinDMI 工具,它采用 Windows 界面,能够用于多款 AOpen 主板,完全兼容 Windows 98SE/98/2000/XP 操作系统。 WinDMI 分为几种功能,首先,默认的 [Normal Mode] 功能让用户可以获取包括 BIOS 、操作系统、主板、内存、扩展槽及扩展接口的所有详细系统信息。 第二种功能为 [Dump Memory] ,它可以让用户转储内存数据,因为它显示了当前 DMI 的结构数据,所以可以帮助高级用户及软件设计人员处理内存数据。此外,对 DMI 结构有兴趣的用户也可以使用此项功能进行初步的问题诊断。第三, WinDMI 还可以让用户以普通或 raw 模 式保存 DMI 数据,如果用户需要保存 DMI 信息,只需按下 [Save As] 即可。此项功能会在用户指定的文件夹下创建一个 .txt 文 件,用户就可以在此文本文件中找到所有所需的系统信息

DMI 充 当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。 DMI 的主要组成部分是 Management Information Format (MIF) 数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过 DMI ,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。

浅谈 DMI data 数据区

 

              --作者:耗子

 

  前此时间,网站公布了关于修改 BIOS 使用联想 XP 的文章,其中一种方法是使用 DMICFG .exe 文件修改,使用 DMICFG 修改,直接修改 BIOS DMI 区域,不但修改方便,而且不用象修改 BIOS 文件那样,需要重新刷新;这样又降 低了修改的风险。
  但对此,网友也提出了疑问,那就是 DMI 区 域在 BIOS 中起 到什么作用,我的主板中有 DMI 区域吗?

   DMI 又称为( Desktop Management Interface )桌面管理接口,就是帮助收集 电脑系统信息的管理系统,用来让系统保存自身及外围设备相关数据。通过 DMI 可以在操作系统级查询到包括 CPU 、内存、 I O 扩展槽等在内的系统配置信息(不用进入 BIOS )。 DMI 通常将上述信息存储在 BIOS 中一个 4KB 大小的 DMI 数据区中,这一数据区通常被称为 MIFD Management Information Format Database )。 DMI 信息的收集必须在严格遵照 SMBIOS 规范的前提下进行。 SMBIOS DMI 是由行业指导机构 Desktop Management Task Force (DMTF) 起草的开放性的技术标准,其中, DMI 设计适用于任何的平台和操作系统。是由行业指导机构 (Desktop Management Task Force[DMTF]) 起草的开放性技术标准 ,

    DMI 充当了管理工具和系统层之间接口的角色。它建立了标准的可管理 系统更加方便了电脑厂商和用户对系统的了解。 DMI 的主要组成部分是 Management Information Format (MIF) 数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过 DMI ,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信 息。

   DMI 被设计为一个能够在任何平台和操作系统下实现的接口规范,它允许操作人员在该数据区中手工添加一些 BIOS 不能探测到的诸如使用者姓名、销售商和计算机编号等额外的控制 信息,因此我们也可以在不需要对 BIOS 进行操作的情况下使用 DMI MIFD 数据库中的系统配置情况进行修改以适应不同环境下的系统要求。
  我们使用 DMICFG 修改 BIOS ,实现联想 XP 免激活,就是修改的 DMI 区域。
  对于 DMI 区域,我们在备份 BIOS ,可对其保存或清除,这一点可通过 BIOS 刷新程序所提供的参数来操作。

 

  目前 DMI 有多个版本,大多为 2.0 2.1 2.2 ,对于我们主板 BIOS 中所使用的 DMI 版本,可使用 WINXX 自带的 DEBUG 程序来测试。
  在 WINXX MS DOS 模式下,键入 DEUBG
   c:/debug
    -s f000:0 ffff '_SM_'(SM
必须大写 )   回车
   f000:13e0   ( 如果显示了一个地址 , 则此 BIOS 支持至少 DMI 2.1. 如果没有 , 再试试 )

  
c:/debug
    -s f000:0 ffff '_DMI_'(DMI
必须大写 )  回车
   f000:13e0   ( 如果显示了一个 地址 , 则此 BIOS 仅支持 DMI 2.0. 如果没有 , 那么 DMI 2.0 都不支持 )

  确认 BIOS 支持 DMI 2.10 DMI 2.20, 进行以下操作
:
  
c:/debug
  - d f000:13e0   回车
  具体以你的 主板 BIOS 为准。这里以技嘉 6OXE   F7 BIOS 为例。请参考以 下屏幕图片:
   02 02 意味着 DMI 2.20
   02 01 意味着 DMI 2.10

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SMBIOS Viewer是一种用于查看SMBIOS信息的工具。SMBIOS(System Management BIOS)是一种系统管理BIOS,用于提供计算机硬件相关的信息,如处理器、内存、硬盘、主板等。SMBIOS Viewer可以帮助用户获取系统硬件信息,并提供给用户查看、分析和诊断的功能。 SMBIOS Viewer可以显示各种硬件设备的详细信息,如厂商、型号、序列号、电源状态、当前温度等。用户可以通过SMBIOS Viewer了解硬件设备的状态,以便进行合适的维护和保养。 SMBIOS Viewer还可以帮助用户比较不同硬件设备的性能和规格,以便选择和升级硬件。用户可以查看不同硬件设备的信息,并对比它们的性能指标,如处理器速度、内存容量、硬盘类型等。这样用户可以根据自己的需求和预算,选择最适合的硬件设备。 除了硬件信息外,SMBIOS Viewer还可以提供一些其他实用的功能。例如,它可以检测和诊断硬件问题,如过热、电源故障等。它还可以显示当前的系统状态,如内存使用情况、CPU利用率等。这些信息有助于用户了解系统的健康状况,并及时采取措施解决问题。 总而言之,SMBIOS Viewer是一种非常实用的工具,可以帮助用户获取并分析计算机硬件信息。它的功能涵盖了硬件查看、比较、诊断和监控等方面。无论是系统管理员还是普通用户,都可以受益于使用SMBIOS Viewer来了解和管理计算机的硬件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值