CN104915280A - 一种基于uefi驱动方式获取计算机硬件信息的方法 - Google Patents
一种基于uefi驱动方式获取计算机硬件信息的方法 Download PDFInfo
- Publication number
- CN104915280A CN104915280A CN201510298158.6A CN201510298158A CN104915280A CN 104915280 A CN104915280 A CN 104915280A CN 201510298158 A CN201510298158 A CN 201510298158A CN 104915280 A CN104915280 A CN 104915280A
- Authority
- CN
- China
- Prior art keywords
- information
- uefi
- drive
- computer hardware
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及计算机固件开发技术领域,特别涉及一种基于UEFI驱动方式获取计算机硬件信息的方法。本发明提供了供操作系统对硬件自检信息及设备状态信息进行监测的接口,其在固件层获取计算机硬件信息,并向上层操作系统提供软件编程接口的功能,解决当前技术下计算机硬件信息获取不完整,可移植性差的问题。
Description
技术领域
本发明涉及计算机固件开发技术领域,特别涉及一种基于UEFI驱动方式获取计算机硬件信息的方法。
背景技术
UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)是Intel公司提出的一种新型计算机BIOS架构,提供了在固件层设备驱动的灵活加载方式以及向上层操作系统内核提供接口的扩展能力。UEFI运行时驱动允许软驱动的方式获取计算机自检信息与设备相关信息,并将信息传递给操作系统内核。
当前UEFI BIOS为上层操作系统提供了极少的硬件监测功能,多数硬件监测功能的实现需要借助于操作系统内核加载驱动的方式。特别是对于计算机的自检信息以及一些特殊的设备的相关信息的检测来说,使用操作系统内核加载驱动的方式无法完全实现功能。
综上所述,目前的硬件监控软件多数基于操作系统加载驱动的方式,缺乏便捷性、完整性与可移植性。在固件层定制计算机系统硬件监测软件接口尚无实质性研究。
发明内容
为了解决现有技术的问题,本发明提供了一种基于UEFI驱动方式获取计算机硬件信息的方法,其能够实现在固件层获取计算机硬件信息,并向上层操作系统提供软件编程接口的功能,解决当前技术下计算机硬件信息获取不完整,可移植性差的问题。
本发明所采用的技术方案如下:
一种基于UEFI驱动方式获取计算机硬件信息的方法,包括以下步骤:
A、在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息;
B、建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境;
C、在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体;
D、前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中;
E、采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。
步骤A中,修改信息传递模块结构体的具体过程如下:
A1、添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构;
A2、添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量;
A3、添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。
步骤C中所述的驱动相关协议包括:启动驱动,停止驱动,读取SCSI设备信息,读取USB设备信息,读取显卡信息,读取串口信息,存储信息。
步骤D中UEFI运行时驱动需要与设备驱动进行通信,运行时驱动内相关设备获取协议与设备驱动相关协议进行通信,并由存储信息协议存入预定义的设备信息结构体中。
本发明提供的技术方案带来的有益效果是:
本发明实现了计算机硬件信息在固件层的获取并为操作系统提供了可编程软件接口,使硬件监控软件摆了对操作系统加载驱动方式的依赖。同时,向开发者提供了更完整的硬件信息接口与良好的代码移植性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的方法流程图。
图2为本发明的方法中修改信息传递模块结构体的方法流程图。
图中,HOB(Hand-off Block,信息传递模块);PEIM(Pre-EFI Initialization Module,预EFI初始化模块);IPL(Initial Program Load,初始化程序加载器);DXE(Driver Execute Environment,驱动执行环境)。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
如图1所示,本发明实施例的方法步骤如下:
S1:在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息,详见图2:
S11:添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构等CPU属性信息;
S12:添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量等内存属性信息;
S13:添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。
S2:建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境。
S3:在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体。
S4:前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中。
S5:采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于UEFI驱动方式获取计算机硬件信息的方法,包括以下步骤:
A、在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息;
B、建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境;
C、在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体;
D、前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中;
E、采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。
2.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,所述的步骤A中,修改信息传递模块结构体的具体过程如下:
A1、添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构;
A2、添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量;
A3、添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。
3.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,步骤C中所述的驱动相关协议包括:启动驱动,停止驱动,读取SCSI设备信息,读取USB设备信息,读取显卡信息,读取串口信息,存储信息。
4.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,步骤D中UEFI运行时驱动需要与设备驱动进行通信,运行时驱动内相关设备获取协议与设备驱动相关协议进行通信,并由存储信息协议存入预定义的设备信息结构体中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510298158.6A CN104915280A (zh) | 2015-06-03 | 2015-06-03 | 一种基于uefi驱动方式获取计算机硬件信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510298158.6A CN104915280A (zh) | 2015-06-03 | 2015-06-03 | 一种基于uefi驱动方式获取计算机硬件信息的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104915280A true CN104915280A (zh) | 2015-09-16 |
Family
ID=54084359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510298158.6A Pending CN104915280A (zh) | 2015-06-03 | 2015-06-03 | 一种基于uefi驱动方式获取计算机硬件信息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915280A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909468A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于uefi固件的计算机故障诊断方法 |
CN112799917A (zh) * | 2021-02-08 | 2021-05-14 | 联想(北京)有限公司 | 一种数据处理方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268113A1 (en) * | 2003-06-30 | 2004-12-30 | Rothman Michael A. | Virtual out-of-band management controller |
CN102667716A (zh) * | 2009-12-18 | 2012-09-12 | 惠普发展公司,有限责任合伙企业 | 使用固件更新应用程序更新部件的固件的方法及装置 |
CN103207797A (zh) * | 2013-03-15 | 2013-07-17 | 南京工业大学 | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 |
-
2015
- 2015-06-03 CN CN201510298158.6A patent/CN104915280A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268113A1 (en) * | 2003-06-30 | 2004-12-30 | Rothman Michael A. | Virtual out-of-band management controller |
CN102667716A (zh) * | 2009-12-18 | 2012-09-12 | 惠普发展公司,有限责任合伙企业 | 使用固件更新应用程序更新部件的固件的方法及装置 |
CN103207797A (zh) * | 2013-03-15 | 2013-07-17 | 南京工业大学 | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 |
Non-Patent Citations (2)
Title |
---|
戴正华: "《UEFI原理与编程》", 31 January 2015 * |
韩德强等: ""UEFI驱动程序的研究与开发"", 《电子技术应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909468A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于uefi固件的计算机故障诊断方法 |
CN112799917A (zh) * | 2021-02-08 | 2021-05-14 | 联想(北京)有限公司 | 一种数据处理方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9841991B2 (en) | Techniques for virtual machine migration | |
US10514930B2 (en) | Setting a startup parameter and controlling startup of a mainboard | |
CN108008914B (zh) | 一种arm设备中磁盘管理的方法、装置和arm设备 | |
CN103853586A (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
US8650552B1 (en) | Methods and systems for simulation of energy consumption in mobile operating system emulators | |
CN103412769A (zh) | 外接卡参数配置方法、设备以及系统 | |
CN105718281B (zh) | 一种触摸屏固件升级方法及装置 | |
CN104407874A (zh) | 一种兼容多款lcd屏的嵌入式设备 | |
WO2016074127A1 (zh) | 计算机设备及计算机设备内存启动的方法 | |
CN103914315A (zh) | 驱动程序的配置方法 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
US8335891B2 (en) | Method and system for configuring a storage array | |
CN103593281A (zh) | 测试系统及测试方法 | |
CN104461746A (zh) | 一种基于Android系统的内存空间优化方法及系统 | |
CN115562738B (zh) | 一种端口配置方法、组件及硬盘扩展装置 | |
CN104915280A (zh) | 一种基于uefi驱动方式获取计算机硬件信息的方法 | |
US8086834B2 (en) | System and method for populating a dedicated system service repository for an information handling system | |
CN113608684B (zh) | 内存信息获取方法、装置、系统、电子设备及存储介质 | |
US10115375B2 (en) | Systems and methods for enabling a systems management interface with an alternate frame buffer | |
US20200015296A1 (en) | Computer system and method thereof for sharing of wireless connection information between uefi firmware and os | |
CN103678214A (zh) | 系统控制台重定向方法及显示设备 | |
CN106095643A (zh) | 系统参数存取的设定方法及其服务器 | |
CN106909345A (zh) | 一种基于台式计算机的uefi固件实现方法 | |
CN111752623A (zh) | 显示配置方法、装置、电子设备及可读存储介质 | |
CN105159714A (zh) | 一种pmic初始化方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150916 |
|
WD01 | Invention patent application deemed withdrawn after publication |