SMBIOS基础

一、INTRODUCTION

The System Management BIOS(SMBIOS)解决了主板和系统供应商如何通过平台固件以标准格式展现其产品信息,这些信息包括CPU/Memory的serial number、manufacture、speed等资料,也有PCIe Devices、USB Device、Redfish Services等资讯。

SMBIOS储存在NVRAM中,其存在物理地址000F0000h到000FFFFFh之间。如果是非UEFI系统,可以通过在物理内存内存地址范围000F0000h到000FFFFFh搜索anchor-string(_SM_)找到SMBIOS的EPS(Entry Point structure)。如果是UEFI系统,可以直接在UEFI配置表查找SMBIOS GUID(SMBIOS_TABLE_GUID, {EB9D2D31-2D88-11D3-9A16-0090273FC14D})来找到SMBIOS ESP。

SMBIOS的数据存储结构由两部分组成,ESP和SMBIOS数据表。ESP表的结构如图所示,当拿到ESP表后,就可以根据16H和18H确定数据表的信息。

二、 SMBIOS结构

2.1 SMBIOS结构头

每个SMBIOS结构都有一个格式化部分和可选的非格式化部分。每个格式化部分都以4 bytes的头开始,剩余的部分由机构类型决定,整个格式化部分的长度也是这样。

格式化部分的头结构由以下几个部分组成:

OffsetNameLengthDescription
00hTypeBYTE结构的类型,类型0到127为本规范保留和定义,类型128到256可用于特定系统和OEM
01hLengthBYTE结构格式化部分的长度,从类型开始,不包括结构的字符串集
02hHandleWord16位,所指结构的句柄

2.2 SMBIOS结构类型

SMBIOS的结构类型有:

Structure Name and TypeData Requirements
Firmware Information (Type 0)结构表中有且仅有一个结构表。固件版本和固件发布日期是非空的,日期用4位的年份表示(如1999).所有其它部分由固件信息决定。
System Information(Type 1)制造商和产品名称字符串是非空的。UUID是系统非零的UUID值。唤醒字段不能是未知的。在结构表中有且仅有一个结构。
System Enclosure(Type 3)制造商字符串是非空的,Type字段用于表示机箱的的类型
Processor Information(Type 4)每个系统处理器都需要一个结构,如果有两个Type 4结构,说明系统含有两个CPU
Cache Information(Type 7)处理器外部的每个缓存都需要一个结构
System Slots(Type 9)每个可升级的系统插槽都需要一个结构
Physical Memory Array(Type 16)系统内存需要一种结构。位置、使用和内存纠错都设置为“已知”值。
“最大容量”和“扩展最大容量”必须设置为已知的非零值。“内存设备数量”为非零,标识与此物理内存阵列相关联的内存设备结构的数量。
Memory Device(Type 17)每个套接的系统内存设备都需要一个结构
Memory Array Mapped Address(Type 19)每个映射到物理内存阵列的连续内存块都需要一个结构
System Boot Information(Type 32)结构的长度至少为0Bh(至少有一个系统启动状态)

(1)Platform Firmware Information(Type 0)

Type 0 平台固件信息
OffsetSpec VersionNameLengthValueDescription
00h2.0+TypeBYTE0平台固件信息指示器
01hLengthBYTEVaries12h+ 固件特征扩展字节数
02hHandleWORDVaries
04hVendorBYTESTRING固件厂商名称
05hFirmware VersionBYTESTRING固件版本字符串
06hBIOS Starting Address SegmentWORDVariesBIOS起始地址的段位制
08hFirmware Release DateBYTESTRINGBIOS发布日期
09hFirmware ROM SizeVariesVaries固件ROM的大小
0AhFirmware CharacteristicsQWORDBit Field定义固件支持哪些功能(设备)
12h2.4+Firmware Characteristics Extension BytesZero or more BYTESBIt Field为将来支持的函数保留的可选空间
14hPlatform Firmware Major ReleaseBYTEVaries平台固件的主要版本
15hPlatform Firamware Minor ReleaseBYTEVaries表示平台的次要版本
16hEmbedded Controller Firmware Major ReleaseBYTEVaries识别嵌入式控制器固件的主要版本
17hEmbedded Controller Firmware Minor Release次要版本
18h3.1+Extended Firmware ROM SizeWORDBit Field包含固件的物理设备大小

(2)System Information (Type 1)

定义了整个系统属性

包括:结构类型、长度、句柄、制造商、产品名称、版本、串口数、UUID、唤醒类型、SKU等

(3)Baseboard Information (Type 2)

主板信息

(4)System Enclosure or Chassis(Type3)

机箱外壳信息

(5)Processor Information(Type 4)

单个处理器信息

OffsetSpec VersionNameLengthValueDescription
00h2.0+
01h
02h
04hSocket DesignationBYTESTRING
05hProcessor TypeBYTEENUM

处理器类型

01h 其它

02h 未知

03h 中央处理器

04h 数学处理器

05h DSP处理器

06h 视频处理器

06hProcessor familyBYTEENUM

07h

Processor ManufacturerBYTESTRING处理器制造商
08hProcessor IDQWORDVaries原始处理器识别数据
10hProcessor VersionBYTESTRING处理器版本
11hVoltageBYTEVaries电压
12hExternal ClockWORDVaries外部时钟
14hMax Speed这个处理器的最大速度,用MHz表示
16hCurrent SpeedWORD
18hStatusBYTEVaries

bit 7:保留,必须为0

bit 6:CPU插槽已填充

          1 CPU插槽已填充

          0 CPU插槽未填充

bit 5:3 保留必须为0

bit 2:0 CPU状态

      0h-未知

       1h-CPU被启用

        2h-CPU通过固件被设置为禁用

        3h-CPU被禁用(POST)

        4h-CPU空闲等待启用

        5-6h-保留

        7h:其他

19hProcessor UpgradeBYTEENUM
1Ah

2.1+

L1 Cache Handle缓存句柄信息结构:定义主缓存(L1)属性
1ChL2 Cache Handle

1Eh

L3 缓存句柄

20h2.3+Serial NumberCPU生产商设定的序列字符串编号
21hAsset Tag处理器的资产标签字符串编号
22hPart Number该处理器部件号的字符串编号
23h2.5+Core CountBYTEVaries每个处理器插槽的核心数
24hCore Enabled每个处理器插槽启用的核心数
25hThread Count每个处理器插槽的线程数
26hprocessor characteristicWORDBit Field处理器支持的功能
25h2.6+Processor Family 2WORDEnum
2Ah3.0+Core Count2WORDVaries
2ChCore Enabled 2
2EhThread Count 2

30h

3.6+ThreadEnable

32h

3.8+Socket Typesocket类型

(6)缓存信息(Type 7)

定义了CPU缓存设备的属性

(7)端口连接器信息(Type 8)

(8)系统槽位(Type 9)

定义了系统插槽的属性,系统中每个插槽需要一个结构

OffsetSpec VersionNameLengthValueDescription
00hType
01hLength
02hHandle

04h

slot Designation
05hslot typeBYTEENUM

01h other

02h 未知

03h ISA

04h MCA

05h EISA

06h PCI

07h PC Card

08h VL-VESA

09h Proprietary 专有

0Ah processor card slot

0Bh proprietary memory card slot

0Ch I/O Riser Card slot

0Dh NuBus

0Eh PCI-66MHz capable

...

06h

slot data Bus WidthBYTEENUM

07h

Current usage
08hslot length
09hSlot ID
0Bhslot Characteristic 1
0ChSlot characteristic 2

0Dh

Segment Group Number

0Fh

BUS number
10hDevices/Function Number
11hData Bus Width

12h

Peer grouping count
13hpeer groups
13h + 5*nslot information
14h + 5*nslot Physical Width
15h + 5*nslot pitch

17h + 5*n

Slot Hight

(9) OEM Strings(Type11)

原始设备制造商

(10)System Configuration Options(Type 12)

(11)Firmware language Information(Type 13)

(12)Group Associations(Type 14) 

(13)System Event Log(Type 15) 系统事件日志

(14)Physical Memory Array (Type 16) 存储设备集合

(15)Memory Device (Type 17)

一个内存设备的信息

(16)32位内存错误信息(Type 18)

三、SMBIOS信息读取

3.1 UEFI Shell下读取SMBIOS信息

在UEFI Shell下可以利用smbiosview命令来读取smbios的信息

smbiosview [-t SmbiosType] | [-h SmbiosHandle] | [-s] | [-a]其中:
-t  展示Smbios结构类型0 BIOS Information1 System Information3 System Enclosure4 Processor Information5 Memory Controller Information6 Memory Module Information7 Cache Information8 Port Connector Information9 System Slots10 On Board Devices Information15 System Event Log16 Physical Memory Array17 Memory Device18 32-bit Memory Error Information19 Memory Array Mapped Address20 Memory Device Mapped Address21 Built-in Pointing Device22 Portable Battery34 Management Device37 Memory Channel38 IPMI Device Information39 System Power Supply-h  展示SmbiosHandle的结构-s  显示统计表-a  显示所有信息

以读取的几个type为例简单讲解:

smbioseview -t 0

3.2 系统下读取Smbios信息

在linux系统下,使用命令dmidecode读取smbios信息

dmidecode
dmidecode -t 1
dmidecode -t system

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4735.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

网易数据中台实践:高效管理与成本优化的秘密

文章目录 一、数据中台概览二、元数据中心三、数据服务四、全链路数据质量中心五、数据资产管理六、数据中台实施效果 网易通过建立一套统一的数据架构与平台,成功实现了数据的高效管理与应用。剖析网易在互联网产品数据管理工作中的经验与做法,涵盖从数…

蓝桥杯真题——三角回文数(C语言)

问题描述 对于正整数 n, 如果存在正整数 k 使得 n123⋯kk(k1)2n123⋯kk(k1)/2​, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯36366066123⋯363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为回文数…

Spark SQL大数据分析快速上手-DataFrame应用体验

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 大数据与数据分析_夏天又到了的博客-CSDN博客 本节主要介绍如何使用DataFrame进行编程。 4.1.1 SparkSession 在旧版本中,Spark SQL提供…

磁盘的分区

硬盘管理 硬盘的概念 硬盘是一种计算机的存储设备,通常是由一个或多个磁性盘片组成。硬盘既可以安装在计算机的内部,也可以外接计算机 硬盘主要是用来保存数据的 数据包括:操作系统,应用程序,文档多媒体文件等等 计算…

IEEE TRO综述论文:抓取合成领域的深度学习方法

TRANSACTIONS ON ROBOTICS综述论文:抓取合成领域的深度学习方法抓取是机器人在现实世界中操纵物体的基本技能之一,涉及在一组接触点上施加力和扭矩来控制物体的运动,而近些年深度学习方法的突破性研究使机器人在抓取方面取得了快速进展。近期…

旋转位置编码

1. Transformer为什么需要位置编码 因为 transformer 结构本身是和位置编码无关的: Y T ( X ) F ( A ( X ) ) Y\Tau(X)F(A(X)) YT(X)F(A(X)),其中 A ( ) A() A() 是 attention 变换,只进行了矩阵变换,跟位置无关, …

ssm+vue683基于VUE.js的在线教育系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

【Wi-Fi】WiFi IEEE 802.11ad(60 GHz Wi-Fi)知识整理

参考链接 【技术规范】详解IEEE 802.11ad(60GHz Wi-Fi)技术 - 天线设计 - RF技术社区 IEEE 802.11ad Tutorial | WiGig (60 GHz Technology) basics IEEE 802.11ad(60 GHz Wi-Fi) IEEE 802.11ad是一种无线网络标准&#xff0c…

苹果MacOS最常用快捷键(一)

1、利用find命令查找文件 可参考链接:find使用_mac find命令-CSDN博客文章浏览阅读3.2k次。find 使用_mac find命令https://blog.csdn.net/poinsettia/article/details/129187641 举例: 2、虚拟机系统将Ctrl设置为苹果的Command键 实际上就是将Ctrl键和…

壁纸鸭 1.1 |提供许多优质壁纸,并且支持本地图片像素化

壁纸鸭是一款不错的壁纸软件,提供简单的分类和搜索功能,无需注册登录即可免费使用。壁纸质量较高,支持将本地图片像素化,为用户提供多样化的壁纸选择。 大小:29M 下载地址: 百度网盘:https://…

对于一个需要渲染300帧的动画项目,云渲染要多久

探讨云渲染动画300帧需要多久的问题时,我们今天来从多个角度进行分析,对于一个需要渲染300帧的动画项目,传统的本地渲染方式可能会因为硬件限制而变得耗时且效率低下。幸运的是,【渲染101】云渲染技术的出现为这一问题提供了解决方…

项目活动进度计算题

六个时间参数①最早开始时间ESmax{紧前工作最早完成时间EF}(紧前取大) 最早完成时间EFES工期,从左→右计算,累加取大 ②最迟完成时间LFmin{紧后工作最迟开始时间LS}(紧后取小) 最迟开始时间LSLF-工期&am…

如何查看局域网内的浏览记录?总结五种方法,按步操作!一学就会!「管理小白须知」

如何查看局域网内的浏览记录? 你是否也曾为如何有效监控局域网内的浏览记录而苦恼? 监控局域网内电脑的浏览记录是确保员工工作效率、维护网络安全以及规范上网行为的重要手段。 别担心,今天我们就来聊聊这个话题,为你揭秘五种简…

5本地方法接口本地方法栈

什么是本地方法? 简单地讲,一个 Native Method 是一个 Java 调用非 Java 代码的接囗 在定义一个 native method 时,并不提供实现体(有些像定义一个 Java interface),因为其实现体是由非 java 语言在外面实…

飞书 富文本(Markdown)

飞书机器人webhook支持Markdown格式,包括表格 表格 |Syntax | Description |\n|-------- | -------- |\n|Header | Title |\n|Paragraph | Text |参考 富文本(Markdown)

Django Admin

Django Admin模块是Django框架提供的一个功能强大且易于使用的后台管理工具,它允许开发者通过Web界面来管理网站的后台数据和功能。 主要功能和特点 自动生成管理界面:Django Admin模块可以根据模型类(Model)自动创建表单和列表视…

金华迪加现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现

0x01 产品描述: ‌ 金华迪加现场大屏互动系统‌是由金华迪加网络科技有限公司开发的一款专注于增强活动现场互动性的系统。该系统设计用于提供高质量的现场互动体验,支持各种大型活动,如企业年会、产品发布会、展览展示等。其主要功能包…

中小企业项目管理软件选择指南:最适合你的工具是什么?

选择适合小团队的项目管理工具时,关键是要根据团队规模、工作流程、预算和功能需求来决定。对于小团队,通常需要简洁、易用、低成本的工具,同时能支持任务分配、进度跟踪、文件共享等基本功能。以下是一些适合小团队使用的免费和开源项目管理…

【C++】C++的单例模式、跟踪内存分配的简单方法

二十四、C的单例模式、跟踪内存分配的简单方法 1、C的单例模式 本小标题不是讨论C的语言特性,而是一种设计模式,用于确保一个类在任何情况下都只有一个实例,并提供一个全局访问点来获取这个实例。即C的单例模式。这种模式常用于资源管理&…

VMware的三种网卡模式

VMware的三种网卡模式 1 桥接模式 虚拟机当作一台物理机,直接连接你物理机所连接的路由器 物理机的网段与虚拟机的网段是一致的,并且该网络下的其他主机可以访问你的虚拟机 2 NAT模式 相当于在你的物理机里接了一个路由器,路由器下游接的是虚拟机 物理机的网段与虚拟机的网段是…