CN113190279B - 一种预启动功能控制方法、系统及介质 - Google Patents
一种预启动功能控制方法、系统及介质 Download PDFInfo
- Publication number
- CN113190279B CN113190279B CN202110356044.8A CN202110356044A CN113190279B CN 113190279 B CN113190279 B CN 113190279B CN 202110356044 A CN202110356044 A CN 202110356044A CN 113190279 B CN113190279 B CN 113190279B
- Authority
- CN
- China
- Prior art keywords
- data
- network card
- customized
- card identification
- compared
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种预启动功能控制方法,包括以下步骤:获取预启动定制需求,基于所述预启动定制需求获取定制网卡数据;基于第一BIOS执行数据获取步骤,得到现有网卡数据;基于所述定制网卡数据和所述现有网卡数据执行数据筛选步骤,得到待设置端口;基于所述待设置端口执行预启动功能控制步骤,得到与所述预启动定制需求对应的第二BIOS;本发明能够在服务器生产过程中,编译出与客户需求对应的BIOS,在服务器启动时,通过该BIOS实现与客户需求对应的网卡PXE功能设置,不需要客户再次进行设置或运行其他脚本进行反复修改,节省了客户的时间,提升了客户的体验和满意度,大大提高了服务器的生产效率,提高了产品的竞争力。
Description
技术领域
本发明涉及BIOS功能设计技术领域,特别是涉及一种预启动功能控制方法、系统及介质。
背景技术
在服务器的生产过程中,部分客户对于服务器BIOS(Basic Input OutputSystem,基本输入输出系统)中网卡的PXE(Preboot Execution Environment,预启动机制)功能会有定制化的需求,例如针对某些网卡的PXE功能进行关闭;现有技术中,为了满足客户的需求,采用的网卡PXE功能控制方法均需要在特定的运行场景下进行相应的操作,无法在服务器启动时,直接在BIOS中实现与客户需求对应的网卡PXE功能设置,降低了客户的体验和满意度。
发明内容
本发明主要解决的是现有网卡PXE功能控制方法在服务器启动时,无法直接在BIOS中实现与客户需求对应的网卡PXE功能设置,降低了客户的体验和满意度的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种预启动功能控制方法,包括以下步骤:
获取预启动定制需求,基于所述预启动定制需求获取定制网卡数据;
基于第一BIOS执行数据获取步骤,得到现有网卡数据;
获取服务器的配置数据和所述定制网卡数据所对应的网卡种类;
基于所述配置数据、所述网卡种类、所述定制网卡数据和所述现有网卡数据执行端口筛选步骤,得到待设置端口;
基于所述待设置端口执行预启动功能控制步骤,得到与所述预启动定制需求对应的第二BIOS。
作为一种改进的方案,所述预启动功能控制步骤包括:
在所述第一BIOS中将所述待设置端口的固件访问文件禁用;
提取所述第一BIOS的当前源代码;
基于所述当前源代码进行编译,得到所述第二BIOS。
作为一种改进的方案,所述基于所述预启动定制需求获取定制网卡数据的步骤进一步包括:
配置信息收集程序,基于所述信息收集程序获取所述服务器上固件设备的设备信息;
提取所述设备信息中的第一定制网卡标识数据和第二定制网卡标识数据;
整合所述第一定制网卡标识数据和所述第二定制网卡标识数据,得到所述定制网卡数据。
作为一种改进的方案,所述数据获取步骤包括:
基于所述第一BIOS加载所述固件设备的固件访问功能;
获取所述第一BIOS的功能函数包;
调用所述功能函数包的第一编程处理函数获取所述服务器的第一现有网卡标识数据;
调用所述功能函数包的第二编程处理函数获取所述服务器的第二现有网卡标识数据;
整合所述第一现有网卡标识数据和所述第二现有网卡标识数据,得到所述现有网卡数据。
作为一种改进的方案,所述端口筛选步骤包括:
基于所述配置数据和所述网卡种类在所述定制网卡数据和所述现有网卡数据中分别选取第一待比对数据和第二待比对数据;
基于所述第一待比对数据和所述第二待比对数据确认第一待设置数据;
设定所述服务器中与所述第一待设置数据对应的网卡为待设置网卡;
选取所述第二现有网卡标识数据中与所述待设置网卡对应的数据作为第二待设置数据;
在所述第二待设置数据中选取与所述第二定制网卡标识数据匹配的数据作为第三待设置数据;
设定所述待设置网卡中与所述第三待设置数据对应的端口为所述待设置端口。
作为一种改进的方案,所述基于所述配置数据和所述网卡种类在所述定制网卡数据和所述现有网卡数据中分别选取第一待比对数据和第二待比对数据的步骤进一步包括:
识别所述配置数据中的网卡数量和服务器配置固定性;
基于所述网卡种类和所述网卡数量计算同种类网卡数量;
设定数量阈值,比对所述同种类网卡数量和所述数量阈值,基于比对结果和所述服务器配置固定性选取所述第一待比对数据和所述第二待比对数据。
作为一种改进的方案,所述基于比对结果和所述服务器配置固定性选取所述第一待比对数据和所述第二待比对数据的步骤进一步包括:
当所述比对结果为不存在大于所述数量阈值的所述同种类网卡数量时,判断所述服务器配置固定性是否为固定;
若固定,则选取所述第二定制网卡标识数据作为所述第一待比对数据,选取所述第二现有网卡标识数据作为所述第二待比对数据,或者选取所述第一定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据作为所述第二待比对数据;
若非固定,则选取所述第一定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据作为所述第二待比对数据;
当所述比对结果为存在大于所述数量阈值的所述同种类网卡数量时,选取所述第一定制网卡标识数据和所述第二定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据和所述第二现有网卡标识数据作为所述第二待比对数据。
作为一种改进的方案,所述基于所述第一待比对数据和所述第二待比对数据确认第一待设置数据的步骤进一步包括:
当所述第一待比对数据为所述第一定制网卡标识数据或所述第二定制网卡标识数据,且所述第二待比对数据为所述第一现有网卡标识数据或所述第二现有网卡标识数据时,选取所述第一现有网卡标识数据中与所述第一定制网卡标识数据匹配的数据作为所述第一待设置数据,或选取所述第二现有网卡标识数据中与所述第二定制网卡标识数据匹配的数据作为所述第一待设置数据;
当所述第一待比对数据为所述第一定制网卡标识数据和所述第二定制网卡标识数据,且所述第二待比对数据为所述第一现有网卡标识数据和所述第二现有网卡标识数据时,选取所述第一现有网卡标识数据中与所述第一定制网卡标识数据匹配的数据作为待判断数据;比对所述待判断数据所对应的所述第二现有网卡标识数据与所述第二定制网卡标识数据是否匹配,若匹配,则设定所述待判断数据为所述第一待设置数据。
本发明还提供一种预启动功能控制系统,包括:
定制数据获取模块、现有数据获取模块、目标端口获取模块和预启动控制模块;
所述定制数据获取模块用于获取预启动定制需求,并基于所述预启动定制需求获取定制网卡数据;
所述现有数据获取模块用于根据第一BIOS执行数据获取步骤,得到现有网卡数据;
所述目标端口获取模块用于获取服务器的配置数据和所述定制网卡数据所对应的网卡种类,并根据所述配置数据、所述网卡种类、所述定制网卡数据和所述现有网卡数据执行端口筛选步骤,得到待设置端口;
所述预启动控制模块用于根据所述待设置端口执行预启动功能控制步骤,得到与所述预启动定制需求对应的第二BIOS。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述预启动功能控制方法的步骤。
本发明的有益效果是:
1、本发明所述的预启动功能控制方法,可以实现在服务器生产过程中,通过一系列的控制逻辑和函数调用,编译出与客户需求对应的BIOS,在服务器启动时,通过该BIOS实现与客户需求对应的网卡PXE功能设置,不需要客户再次进行设置或运行其他脚本进行反复修改,节省了客户的时间,提升了客户的体验和满意度,大大提高了服务器的生产效率,提高了产品的竞争力。
2、本发明所述的预启动功能控制系统,可以通过定制数据获取模块、现有数据获取模块、目标端口获取模块和预启动控制模块的相互配合,进而实现在服务器生产过程中,通过一系列的控制逻辑和函数调用,编译出与客户需求对应的BIOS,在服务器启动时,通过该BIOS实现与客户需求对应的网卡PXE功能设置,不需要客户再次进行设置或运行其他脚本进行反复修改,节省了客户的时间,提升了客户的体验和满意度,大大提高了服务器的生产效率,提高了产品的竞争力。
3、本发明所述的计算机可读存储介质,可以实现引导定制数据获取模块、现有数据获取模块、目标端口获取模块和预启动控制模块进行配合,进而实现在服务器生产过程中,通过一系列的控制逻辑和函数调用,编译出与客户需求对应的BIOS,在服务器启动时,通过该BIOS实现与客户需求对应的网卡PXE功能设置,不需要客户再次进行设置或运行其他脚本进行反复修改,节省了客户的时间,提升了客户的体验和满意度,大大提高了服务器的生产效率,提高了产品的竞争力,且有效的增加了所述预启动功能控制方法的可操作性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1所述预启动功能控制方法的流程图;
图2是本发明实施例1所述预启动功能控制方法的具体流程示意图;
图3是本发明实施例1所述步骤S100的具体流程示意图;
图4是本发明实施例1所述步骤S200的具体流程示意图;
图5是本发明实施例1所述步骤S300的具体流程示意图;
图6是本发明实施例1所述步骤S400的具体流程示意图;
图7是本发明实施例2所述预启动功能控制系统的架构图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
在本发明的描述中,需要说明的是,本发明所描述的实施例是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“预启动定制需求”、“定制网卡数据”、“数据获取步骤”、“现有网卡数据”、“端口筛选步骤”、“待设置端口”、“预启动功能控制步骤”、“定制BIOS”、“固件访问文件”、“当前源代码”、“信息收集程序”、“定制网卡标识数据”、“固件访问功能”、“UEFI规范”、“功能函数包”、“编程处理函数”、“现有网卡标识数据”、“配置数据”、“待比对数据”、“待设置数据”、“待设置网卡”、“网卡数量”、“服务器配置固定性”、“网卡种类”、“同种类网卡数量”、“数量阈值”、“待判断数据”、“定制数据获取模块”、“现有数据获取模块”、“目标端口获取模块”、“预启动控制模块”应做广义理解。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是:
Shell是一种脚本程序;
Vender ID是供应商ID;
Device ID是设备型号ID;
OS(Operation System)是一种操作系统;
Bus/Device/Function number是标识符序号;
EFI_PCI_IO_PROTOCOL是一种功能函数包;
PXE(Preboot Execution Environment)是预启动机制;
BIOS(Basic Input Output System)是基本输入输出系统;
UEFI(Unified Extensible Firmware Interface)是统一的可扩展固件接口;
EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS API是一种应用程序编程接口函数;
EFI_PCI_IO_PROTOCOL_GET_LOCAYION API是一种应用程序编程接口函数;
PCIe(Peripheral Component Interconnect express)是一种高速串行计算机扩展总线标准。
实施例1
本实施例提供一种预启动功能控制方法,如图1至图6所示,包括以下步骤:
本实施例应用于服务器的生产过程中,在生产过程中,服务器所配置的BIOS会对服务器中的每个网卡端口设置对应的启动项;该启动项会被配置专用的功能键,通过该功能键可以控制网卡端口的PXE功能启动项关闭或开启;而访问该功能键则需要等待服务器开机后,进入BIOS的Setup界面中访问相应的设置窗口,最终调出选项;若服务器的客户对于该PXE功能启动项有对应的关闭或者开启需求,则客户需要花费大量的时间对启动项进行查找、调用,最后对设置进行保存并重启服务器;这样的方式极大的降低了客户的体验和满意度;
针对于上述问题,在现有技术中,一方面通过在服务器进入到OS或UEFI Shell时,利用相关的设置脚本,来满足客户的需求,这种方法在客户收到服务器时,还需要再次进行设置,无法直接使用,同样会降低客户的体验和满意度;另一方面通过客户告知厂商相关的需求,并在服务器出厂前进行功能检验和修改,进而满足客户的需求,这种方法消耗大量的时间和资源,客户和厂商通常不会达成一致的协商结果;这两种方法以及前述使用BIOS快捷键的方法,均存在不定性的因素,且无法提升客户的体验和满意度,通常服务器的生产是大批量的,而面临大批量的服务器生产,上述方法均会消耗大量的人力资源以及时间资源,进而导致服务器的生产效率过低。
本实施例所描述的PXE功能控制方法对于现有技术中存在的问题进行了解决:
S100、获取客户PXE定制需求(即预启动定制需求),根据该PXE定制需求获取定制网卡数据;
具体的,在本实施例中,步骤S100包括:
S110、获取客户对于关闭网卡端口PXE的功能控制需求;获取到需求后,配置信息收集工具,信息收集工具中配置有信息收集程序,该信息收集程序基于信息收集脚本构成;调用该工具收集该客户的服务器上对应的PCIE设备(即固件设备)的信息(即设备信息);
S120、整合该PCIE设备的信息得到所述定制网卡数据,例如:该PCIE设备信息包括:网卡的Vender ID、Device ID(即第一定制网卡标识数据)和Bus/Device/Functionnumber(即第二定制网卡标识数据);若涉及到网卡型号的相关配置,则需要对应获取Subsystem ID、Subsystem Vendor ID来区分对应的网卡型号;
通过此步骤,获取到客户的定制化需求数据,为本方法的实现做铺垫,为后续的步骤提供数据支持。
S200、基于当前BIOS(即第一BIOS)对PCIE设备执行数据获取步骤,得到现有网卡数据;
具体的,在本实施例中,步骤S200包括:
需要说明的是,获取到所述定制数据信息后,需要获取服务器现有的信息,为进一步的步骤提供数据支撑;其中,获取服务器现有的信息,并执行数据获取步骤通过对PCIE设备进行初始化设置实现。
S210、初始化设置包括:通过当前服务器中的BIOS加载PCIE设备的Option rom(即固件访问功能):加载完毕后,因BIOS中具有UEFI规范,故BIOS配置有该规范下所提供的功能,进而获取BIOS的EFI_PCI_IO_PROTOCOL(即功能函数包);
S220、通过调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_CONFIG_ACCESSAPI函数(即第一编程处理函数),读取所述服务器中网卡的Vender ID和Device ID(即第一现有网卡标识数据);
S230、通过调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_GET_LOCAYIONAPI函数(即第二编程处理函数),获取所述服务器的Bus/Device/Function number(即第二现有网卡标识数据);
S240、将得到的Vender ID、Device ID和Bus/Device/Function number整合,得到所述现有网卡数据;
需要说明的是,调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS API函数和调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_GET_LOCAYIONAPI函数仅作为数据获取步骤的一种实施方式,目的是获取到服务器中现有网卡数据,可以通过其他的方式进行替换,例如:可在BIOS的源代码中输入信息获取指令,将获取目标值修改为“VenderID”和“Device ID”即可;或者可以访问并触发PCI_DEBUG选项,当PCI扫描程序运行时,会将扫描到的Device ID和Vendor ID进行输出,连接对应的显示设备即可获取对应的信息;或者在BIOS启动时调用proc/bus/pci/devices接口文件、/sys/bus/pci/devices文件或者lspci命令对Device ID和Vendor ID进行查看。
通过此步骤,获取到当前服务器的现有数据,基于该现有数据和步骤S100中获取到的定制化数据,即可执行下一步,为本方法的实现做铺垫和数据支撑。
S300、根据所述定制网卡数据和现有网卡数据执行端口筛选步骤:通过VenderID、Device ID和Bus/Device number的比对,获取需要进行设置的待设置网卡;通过对于该待设置网卡进行Function number的比对,获取待设置网卡上需要进行设置的待设置端口;
具体的,在本实施例中,步骤S300包括:
S310、因为不同的网卡数据在进行比对时,对所述服务器的配置情况有一定的要求,只有在满足要求的情况下,才能经过比对得到相对准确的待设置网卡及其待设置端口;所以,在进行比对时,先获取所述服务器的配置数据,根据所述配置数据选择对应的网卡数据中的第一待比对数据和第二待比对数据进行比对;
S311、配置数据包括:网卡数量和服务器配置固定性;获取定制网卡数据对应的网卡种类;网卡种类在本实施例中即为定制网卡数据中与客户定制需求对应网卡的不同类型或型号的区分结果;网卡的数量即为所有网卡进行数量统计的结果;服务器配置固定性为该服务器中配件是否经常更换,若经常更换,则该服务器配置固定性为非固定,若不经常更换,则该服务器固定性为固定;根据网卡种类和网卡数量统计出与每个种类对应的同种类网卡数量,若客户定制需求中需要修改多个类型网卡,则对应的同种类网卡数量会有多个,否则为单个;根据该同种网卡数量和服务器配置固定性选择对应的网卡数据;
S312、当不存在大于一(即数量阈值)的同种网卡数量时,可分别选择定制网卡数据和现有网卡数据中的Vender ID、Device ID和Bus/Devicenumber中的任一项数据进行对应比对,因Bus/Device number在服务器配置固定性非固定时,会发生变化,所以为了结果的准确,需要判断所述服务器配置固定性是否为固定,若固定,则可分别选择定制网卡数据和现有网卡数据中Bus/Device number、Vender ID与Device ID的任一项作为对应的第一待比对数据和第二待比对数据进行比对,若非固定,则只能选择定制网卡数据和现有网卡数据中Vender ID与Device ID中作为对应的第一待比对数据和第二待比对数据进行比对;当存在大于一的同种网卡数量时,因为同种类网卡的单独某项标识数据可能相同,导致无法判断待设置网卡具体是哪一张,故采用Vender ID与Device ID无法对网卡进行精准定位,采用Bus/Device number虽然可以精准定位,但其需要服务器的配置固定性,故此时需要选择定制网卡数据和现有网卡数据中Vender ID与Device ID以及Bus/Device number的任意两项数据组合作为第一待比对数据和第二待比对数据同时进行比对;
S320、经过上述各个比对后,最终目的为将第二待比对数据中与第一待比对数据不匹配的数据移出,筛选出与第一待比对数据匹配的数据,则此时可以设置第二待比对数据中剩下的数据为第一待设置数据,根据该第一带设置数据在服务器中确定待设置网卡;
S321、具体的,例如:若选择的第一待比对数据是定制网卡数据中的Vender ID与Device ID,则对应的第二待比对数据是现有网卡数据中的Vender ID与Device ID,将第二待比对数据中与第一待比对数据的Vender ID与Device ID匹配的数据筛选出,则筛选出的数据为第一待设置数据;若选择的第一待比对数据是定制网卡数据中的Vender ID与Device ID以及Bus/Device number;则对应的第二待比对数据是现有网卡数据中的VenderID与Device ID以及Bus/Device number;将第二待比对数据中与第一待比对数据的VenderID与Device ID匹配的数据筛选出,则筛选出的数据为待判断数据;比对该待判断数据对应的Bus/Device number与第一待比对数据中的Bus/Device number是否匹配,若匹配,则该Vender ID与Device ID为第一待设置数据;在服务器中,与上述第一待设置数据对应的网卡即为所述待设置网卡;其中,具体先比对某个数据在此不做限定,以上举例仅作为一种实施方式;
S330、在所述网卡数据中选取与所述待设置网卡对应的Function number(即第二待设置数据)与定制网卡功能数据中的Function number依次比对,因Function number一般为0~7,通过Function number的依次比对,可再次筛选出相互匹配的Function number,则该Function number(即第三待设置数据)对应于待设置网卡中需要进行设置的待设置端口;
通过此步骤,得到精确的与客户需求相匹配的待设置网卡及其待设置端口,进而只需要对该待设置网卡的待设置端口进行相关设置,即可满足客户的需求。
S400、基于待设置端口执行预启动功能控制步骤,得到新的定制BIOS(即第二BIOS),通过该定制BIOS满足客户需求;
具体的,在本实施例中,步骤S400包括:
S410、得到对应的待设置网卡的待设置端口后,端口筛选步骤结束;将待设置端口的option rom文件(即固件访问文件)禁止运行(即禁用);此时,将该option rom文件禁止运行后,对应的待设置网卡及其待设置端口的PXE功能已关闭;提取经过上述设置后的BIOS的源代码(即当前源代码);
S420、对该源代码进行重新编译,生成所述新的定制BIOS,该定制BIOS则对应的满足了客户的定制需求,不会触发相关的网卡或端口的PXE功能;将该定制BIOS烧录至所述服务器的BIOS rom中,重启所述服务器,客户定制需求的功能进而实现;
需要说明的是,将待设置网卡和待设置端口的option rom文件禁止运行的方法在此不做限定,例如:通过在BIOS中跳过该option rom文件的加载进程或直接禁用该optionrom文件,在本实施例中,上述两种处理方法仅作为一种实施方式。
需要说明的是,本实施例所描述的预启动功能控制方法实现了PXE功能的关闭,同时可以运用本方法的逻辑原理实现PXE功能的开启,且本方法不仅可以应用于网卡和网卡端口,且还可以应用至服务器中PCIE设备以及其他设备的预启动功能的控制。
通过本实施例所描述的预启动功能控制方法,可以实现在服务器生产阶段就根据客户的定制化需求对PXE功能进行了对应的设置,使服务器在客户收到启动时,就可以直接实现客户所需要的功能,无需对启动项进行长时间的查找以及对BIOS再次进行调试或修改,极大的提高了客户的体验感和满意度,提升了服务器的生产效率和竞争力,节省了极大的生产成本。
实施例2
本实施例提供一种预启动功能控制系统,如图7所示,包括:定制数据获取模块、现有数据获取模块、目标端口获取模块和预启动控制模块;
所述的预启动功能控制系统中,定制数据获取模块用于获取客户PXE定制需求(即预启动定制需求),根据该PXE定制需求获取定制网卡数据;
进一步,定制数据获取模块获取客户对于关闭网卡端口PXE的功能控制需求;获取到需求后,定制数据获取模块配置信息收集工具,并调用该工具收集该客户的服务器上对应的PCIE设备的信息;
进一步,定制数据获取模块整合该PCIE设备的信息得到所述定制网卡数据。
所述的预启动功能控制系统中,现有数据获取模块用于根据当前BIOS对PCIE设备执行数据获取步骤,得到现有网卡数据;
进一步,现有数据获取模块通过当前BIOS加载PCIE设备的Option rom:加载完毕后,现有数据获取模块在服务器中配置UEFI规范,得到EFI_PCI_IO_PROTOCOL;
进一步,现有数据获取模块通过调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS API函数,读取所述服务器中网卡的Vender ID和Device ID;
进一步,现有数据获取模块通过调用EFI_PCI_IO_PROTOCOL中的EFI_PCI_IO_PROTOCOL_GET_LOCAYION API函数,获取所述服务器的Bus/Device/Function number;
进一步,现有数据获取模块将得到的Vender ID、Device ID和Bus/Device/Function number整合,得到所述现有网卡数据。
所述的预启动功能控制系统中,目标端口获取模块用于根据所述定制网卡数据和现有网卡数据执行端口筛选步骤:目标端口获取模块通过Vender ID、Device ID和Bus/Device number的比对,获取需要进行设置的待设置网卡;目标端口获取模块通过对于该待设置网卡进行Function number的比对,获取待设置网卡上需要进行设置的待设置端口;
进一步,在进行比对时,目标端口获取模块先获取所述服务器的配置数据,并根据所述配置数据选择对应的网卡数据中的第一待比对数据和第二待比对数据进行比对;
进一步,配置数据包括:网卡数量和服务器配置固定性;目标端口获取模块获取定制网卡数据对应的网卡种类;目标端口获取模块根据网卡种类和网卡数量统计出与每个种类对应的同种类网卡数量,若客户定制需求中需要修改多个类型网卡,则对应的同种类网卡数量会有多个,否则为单个;目标端口获取模块根据该同种网卡数量和服务器配置固定性选择对应的网卡数据;
进一步,当不存在大于一的同种网卡数量时,目标端口获取模块分别选择定制网卡数据和现有网卡数据中的Vender ID、Device ID和Bus/Device number中的任一项数据进行对应比对,因Bus/Device number在服务器配置固定性非固定时,会发生变化,所以为了结果的准确,目标端口获取模块判断所述服务器配置固定性是否为固定,若固定,则目标端口获取模块分别选择定制网卡数据和现有网卡数据中Bus/Device number、Vender ID与Device ID的任一项作为对应的第一待比对数据和第二待比对数据进行比对,若非固定,则目标端口获取模块选择定制网卡数据和现有网卡数据中Vender ID与Device ID中的任一项作为对应的第一待比对数据和第二待比对数据进行比对;
进一步,当存在大于一的同种网卡数量时,目标端口获取模块选择定制网卡数据和现有网卡数据中Vender ID与Device ID以及Bus/Device number或Device ID和Bus/Device number中的任意两项数据组合作为第一待比对数据和第二待比对数据同时进行比对;
进一步,经过上述各个比对后,目标端口获取模块将第二待比对数据中与第一待比对数据不匹配的数据移出,筛选出与第一待比对数据匹配的数据,则此时目标端口获取模块设置第二待比对数据中剩下的数据为第一待设置数据,并根据该第一带设置数据在服务器中确定待设置网卡;
进一步,目标端口获取模块在所述网卡数据中选取与所述待设置网卡对应的Function number与定制网卡功能数据中的Function number依次比对,再次筛选出相互匹配的Function number,则该Function number对应于待设置网卡中需要进行设置的待设置端口。
所述的预启动功能控制系统中,预启动控制模块用于根据待设置端口执行预启动功能控制步骤,得到新的定制BIOS,通过该定制BIOS满足客户需求;
进一步,预启动控制模块得到对应的待设置网卡的待设置端口后,端口筛选步骤结束;预启动控制模块将待设置端口的option rom文件禁止运行;此时,对应的待设置网卡及其待设置端口的PXE功能已关闭;预启动控制模块提取经过上述设置后的BIOS的源代码;
进一步,预启动控制模块对该源代码进行重新编译,生成所述新的定制BIOS,该定制BIOS则对应的满足了客户的定制需求,不会触发相关的网卡或端口的PXE功能;预启动控制模块将该定制BIOS烧录至所述服务器的BIOS rom中,并重启所述服务器,客户定制需求的功能进而实现。
通过本实施例所描述的预启动功能控制系统,为实施例1中所述的预启动功能控制方法提供了有效的技术支撑,进而实现在服务器生产阶段就根据客户的定制化需求对PXE功能进行了对应的设置,使服务器在客户收到启动时,就可以直接实现客户所需要的功能,极大的提高了客户的体验感和满意度。
实施例3
本实施例提供一种计算机可读存储介质,包括:
所述存储介质用于储存将上述实施例1所述的预启动功能控制方法实现所用的计算机软件指令,其包含用于执行上述为所述预启动功能控制方法所设置的程序;具体的,该可执行程序可以内置在实施例2所述的预启动功能控制系统中,这样,预启动功能控制系统就可以通过执行内置的可执行程序实现所述实施例1所述的预启动功能控制方法。
此外,本实施例具有的计算机可读存储介质可以采用一个或多个可读存储介质的任意组合,其中,可读存储介质包括电、光、电磁、红外线或半导体的系统、装置或器件,或者以上任意组合。
区别于现有技术,采用本申请一种预启动功能控制方法、系统及介质可以通过本方法在服务器生产过程中,编译出与客户需求对应的BIOS,当服务器启动时,通过该BIOS实现与客户需求对应的网卡PXE功能设置,不需要客户再次进行设置或运行其他脚本进行反复修改,通过本系统为本方法提供了有效的技术支撑,通过所述可读存储介质引导了本系统的实现,进一步节省了客户的时间,提升了客户的体验和满意度,大大提高了服务器的生产效率,提高了产品的竞争力。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种预启动功能控制方法,其特征在于,包括以下步骤:
获取预启动定制需求,基于所述预启动定制需求获取定制网卡数据;
基于第一BIOS执行数据获取步骤,得到现有网卡数据;
获取服务器的配置数据和所述定制网卡数据所对应的网卡种类;
基于所述配置数据、所述网卡种类、所述定制网卡数据和所述现有网卡数据执行端口筛选步骤,得到待设置端口;
基于所述待设置端口执行预启动功能控制步骤,得到与所述预启动定制需求对应的第二BIOS;
所述基于所述预启动定制需求获取定制网卡数据的步骤进一步包括:配置信息收集程序,基于所述信息收集程序获取所述服务器上固件设备的设备信息;提取所述设备信息中的第一定制网卡标识数据和第二定制网卡标识数据;整合所述第一定制网卡标识数据和所述第二定制网卡标识数据,得到所述定制网卡数据;
所述数据获取步骤包括:基于所述第一BIOS加载所述固件设备的固件访问功能;获取所述第一BIOS的功能函数包;调用所述功能函数包的第一编程处理函数获取所述服务器的第一现有网卡标识数据;调用所述功能函数包的第二编程处理函数获取所述服务器的第二现有网卡标识数据;整合所述第一现有网卡标识数据和所述第二现有网卡标识数据,得到所述现有网卡数据;
所述端口筛选步骤包括:基于所述配置数据和所述网卡种类在所述定制网卡数据和所述现有网卡数据中分别选取第一待比对数据和第二待比对数据;基于所述第一待比对数据和所述第二待比对数据确认第一待设置数据;设定所述服务器中与所述第一待设置数据对应的网卡为待设置网卡;选取所述第二现有网卡标识数据中与所述待设置网卡对应的数据作为第二待设置数据;在所述第二待设置数据中选取与所述第二定制网卡标识数据匹配的数据作为第三待设置数据;设定所述待设置网卡中与所述第三待设置数据对应的端口为所述待设置端口。
2.根据权利要求1所述的预启动功能控制方法,其特征在于,所述预启动功能控制步骤包括:
在所述第一BIOS中将所述待设置端口的固件访问文件禁用;
提取所述第一BIOS的当前源代码;
基于所述当前源代码进行编译,得到所述第二BIOS。
3.根据权利要求1所述的预启动功能控制方法,其特征在于,所述基于所述配置数据和所述网卡种类在所述定制网卡数据和所述现有网卡数据中分别选取第一待比对数据和第二待比对数据的步骤进一步包括:
识别所述配置数据中的网卡数量和服务器配置固定性;
基于所述网卡种类和所述网卡数量计算同种类网卡数量;
设定数量阈值,比对所述同种类网卡数量和所述数量阈值,基于比对结果和所述服务器配置固定性选取所述第一待比对数据和所述第二待比对数据。
4.根据权利要求3所述的预启动功能控制方法,其特征在于,所述基于比对结果和所述服务器配置固定性选取所述第一待比对数据和所述第二待比对数据的步骤进一步包括:
当所述比对结果为不存在大于所述数量阈值的所述同种类网卡数量时,判断所述服务器配置固定性是否为固定;
若固定,则选取所述第二定制网卡标识数据作为所述第一待比对数据,选取所述第二现有网卡标识数据作为所述第二待比对数据,或者选取所述第一定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据作为所述第二待比对数据;
若非固定,则选取所述第一定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据作为所述第二待比对数据;
当所述比对结果为存在大于所述数量阈值的所述同种类网卡数量时,选取所述第一定制网卡标识数据和所述第二定制网卡标识数据作为所述第一待比对数据,选取所述第一现有网卡标识数据和所述第二现有网卡标识数据作为所述第二待比对数据。
5.根据权利要求1~4中任一项所述的预启动功能控制方法,其特征在于,所述基于所述第一待比对数据和所述第二待比对数据确认第一待设置数据的步骤进一步包括:
当所述第一待比对数据为所述第一定制网卡标识数据或所述第二定制网卡标识数据,且所述第二待比对数据为所述第一现有网卡标识数据或所述第二现有网卡标识数据时,选取所述第一现有网卡标识数据中与所述第一定制网卡标识数据匹配的数据作为所述第一待设置数据,或选取所述第二现有网卡标识数据中与所述第二定制网卡标识数据匹配的数据作为所述第一待设置数据;
当所述第一待比对数据为所述第一定制网卡标识数据和所述第二定制网卡标识数据,且所述第二待比对数据为所述第一现有网卡标识数据和所述第二现有网卡标识数据时,选取所述第一现有网卡标识数据中与所述第一定制网卡标识数据匹配的数据作为待判断数据;比对所述待判断数据所对应的所述第二现有网卡标识数据与所述第二定制网卡标识数据是否匹配,若匹配,则设定所述待判断数据为所述第一待设置数据。
6.一种预启动功能控制系统,其特征在于,包括:定制数据获取模块、现有数据获取模块、目标端口获取模块和预启动控制模块;
所述定制数据获取模块用于获取预启动定制需求,并基于所述预启动定制需求获取定制网卡数据;所述定制数据获取模块配置信息收集程序,所述定制数据获取模块基于所述信息收集程序获取服务器上固件设备的设备信息;所述定制数据获取模块提取所述设备信息中的第一定制网卡标识数据和第二定制网卡标识数据;所述定制数据获取模块整合所述第一定制网卡标识数据和所述第二定制网卡标识数据,得到所述定制网卡数据;
所述现有数据获取模块用于根据第一BIOS执行数据获取步骤,得到现有网卡数据;所述现有数据获取模块基于所述第一BIOS加载所述固件设备的固件访问功能;所述现有数据获取模块获取所述第一BIOS的功能函数包;所述现有数据获取模块调用所述功能函数包的第一编程处理函数获取所述服务器的第一现有网卡标识数据;所述现有数据获取模块调用所述功能函数包的第二编程处理函数获取所述服务器的第二现有网卡标识数据;所述现有数据获取模块整合所述第一现有网卡标识数据和所述第二现有网卡标识数据,得到所述现有网卡数据;
所述目标端口获取模块用于获取服务器的配置数据和所述定制网卡数据所对应的网卡种类,并根据所述配置数据、所述网卡种类、所述定制网卡数据和所述现有网卡数据执行端口筛选步骤,得到待设置端口;所述目标端口获取模块基于所述配置数据和所述网卡种类在所述定制网卡数据和所述现有网卡数据中分别选取第一待比对数据和第二待比对数据;所述目标端口获取模块基于所述第一待比对数据和所述第二待比对数据确认第一待设置数据;所述目标端口获取模块设定所述服务器中与所述第一待设置数据对应的网卡为待设置网卡;所述目标端口获取模块选取所述第二现有网卡标识数据中与所述待设置网卡对应的数据作为第二待设置数据;所述目标端口获取模块在所述第二待设置数据中选取与所述第二定制网卡标识数据匹配的数据作为第三待设置数据;所述目标端口获取模块设定所述待设置网卡中与所述第三待设置数据对应的端口为所述待设置端口;
所述预启动控制模块用于根据所述待设置端口执行预启动功能控制步骤,得到与所述预启动定制需求对应的第二BIOS。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~5中任一项所述预启动功能控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110356044.8A CN113190279B (zh) | 2021-04-01 | 2021-04-01 | 一种预启动功能控制方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110356044.8A CN113190279B (zh) | 2021-04-01 | 2021-04-01 | 一种预启动功能控制方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190279A CN113190279A (zh) | 2021-07-30 |
CN113190279B true CN113190279B (zh) | 2023-03-17 |
Family
ID=76974447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110356044.8A Active CN113190279B (zh) | 2021-04-01 | 2021-04-01 | 一种预启动功能控制方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190279B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664953B (zh) * | 2022-11-30 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种外接设备的资源分配方法及相关装置 |
CN116700809B (zh) * | 2023-08-01 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 服务器预启动功能自适应支持方法、装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI396135B (zh) * | 2009-02-12 | 2013-05-11 | Inventec Corp | 基本輸入/輸出系統之設定方法 |
CN110413328B (zh) * | 2019-07-24 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种网卡端口的pxe功能使能方法、装置及相关设备 |
CN111124508A (zh) * | 2019-11-29 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种调整网卡pxe启动顺序的方法和装置 |
-
2021
- 2021-04-01 CN CN202110356044.8A patent/CN113190279B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113190279A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113190279B (zh) | 一种预启动功能控制方法、系统及介质 | |
US8769553B2 (en) | Deploy anywhere framework for heterogeneous mobile application development | |
CN109542744A (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
CN106648685B (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN107368343B (zh) | 一种基于安卓系统的终端开机方法、终端及存储介质 | |
US7080244B2 (en) | System and method for configuring hardware devices using a menu for platforms with EFI and legacy option-ROMs | |
CN109508546A (zh) | 一种基于软件基因的软件同源性分析方法和装置 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN107135462B (zh) | Uefi固件的蓝牙配对方法及其计算系统 | |
CN106126206A (zh) | 一种信息处理方法及电子设备 | |
CN113626276B (zh) | 服务器hba卡型号的识别方法、系统、终端及存储介质 | |
CN114020211A (zh) | 存储空间管理方法、装置、设备及存储介质 | |
CN113849233A (zh) | Bios空启动项删除方法、系统、终端及存储介质 | |
CN113821265B (zh) | 操作系统控制方法、装置、计算机主板和可读存储介质 | |
CN113157301B (zh) | 终端版本升级方法、系统、存储介质及终端 | |
CN102455919A (zh) | 基本输入输出系统自动最佳化设定方法 | |
CN115509622A (zh) | 配置信息的更新方法及装置 | |
CN111142954B (zh) | 一种开机控制方法、装置及计算机可读存储介质 | |
CN114153507A (zh) | 一种控制方法及装置、存储介质 | |
CN114064133A (zh) | 一种硬件信息处理方法、装置及存储系统 | |
CN114547632A (zh) | 信息保护方法、装置、设备及存储介质 | |
CN111522564A (zh) | 系统升级状态的识别方法、装置和计算机可读存储介质 | |
CN114924811B (zh) | 多核芯片的固件部署及执行方法 | |
CN117251221B (zh) | 微控制芯片及其管理方法、存储介质 | |
WO2003010661A1 (en) | Automated upgrading of memory data structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |