网卡固件自动化升级方法、装置及计算机可读存储介质与流程

文档序号:24211135发布日期:2021-03-09 20:53阅读:229来源:国知局
网卡固件自动化升级方法、装置及计算机可读存储介质与流程

1.本申请涉及计算机技术领域,特别是涉及一种网卡固件自动化升级方法、装置及计算机可读存储介质。


背景技术:

2.随着互联网、云计算、物联网、移动互联网等技术的发展,尤其是移动互联网的到来,运行在arm(advanced risc machines)平台、mips(million instructions per second)平台、powerpc平台等非x86平台的设备越来越多,同时为了满足供应链安全,越来越多的企业级设备不再满足于x86单一平台。
3.由于linux的开放性,arm架构平台、mips架构平台的高性价比,arm+linux或mips+linux的组合越来越被广泛应用,例如安卓android手机就是arm+linux组合的产物。intel公司依赖自身的cpu设计优势,其网卡以高效、稳定、可靠、兼容性强等优势占据着网卡的很大一部分市场。intel为了保持其x86 cpu的优势,仅仅为其网卡如x710等提供了x86平台下linux系统的固件升级工具,因为x86平台和arm平台的指令集不同,导致intel网卡的固件升级工具无法在arm平台、mips平台等平台的linux系统中运行,如果想在非x86平台的linux系统中使用intel网卡的新版本固件,只能先在x86平台上对其固件升级后使用,增加了网卡使用的困难度,同时造成对人力的浪费。
4.鉴于此,如何基于linux实现跨平台的intel网卡固件自动化升级,是所属领域技术人员需要解决的技术问题。


技术实现要素:

5.本申请提供了一种网卡固件自动化升级方法、装置及计算机可读存储介质,基于linux实现了跨平台的intel网卡固件的自动化升级。
6.为解决上述技术问题,本发明实施例提供以下技术方案:
7.本发明实施例一方面提供了一种网卡固件自动化升级方法,包括:
8.预先将x86平台的固件升级工具包、linux系统下各运行平台解析所述固件升级工具包的依赖文件和所述linux系统的虚拟机的运行库文件封装为网卡固件升级包;
9.当开机进入所述linux系统,若当前运行平台不为x86架构平台,自动将从所述网卡固件升级包中匹配的依赖文件和运行库文件安装至所述当前运行平台;
10.当自动检测到所述linux系统中存在相匹配的待升级网卡,发送网卡固件升级指令,以调用所述网卡固件升级包对所述待升级网卡执行自动化固件升级操作。
11.可选的,所述发送网卡固件升级指令之后,还包括:
12.根据网卡固件升级信息自动生成升级日志,并输出至预设文件路径下。
13.可选的,所述根据网卡固件升级信息自动生成升级日志包括:
14.若待升级网卡有多个,获取每个待升级网卡的升级日志存储位置信息;
15.将相同存储位置信息的待升级网卡的升级日志打包为升级日志包进行发送。
16.可选的,所述自动检测到所述linux系统中存在相匹配的待升级网卡,发送网卡固件升级指令包括:
17.调用待升级网络监控线程对所述linux系统中的各设备网卡进行实时监控;
18.当检测到目标设备的网卡为待升级网卡,判断所述待升级网卡是否满足自动化升级条件;
19.若所述待升级网卡满足所述自动化升级条件,发送网卡固件升级指令。
20.可选的,所述判断所述待升级网卡是否满足自动化升级条件包括:
21.读取所述目标设备的网卡设备号和网卡生产厂商号;
22.根据所述目标设备的网卡设备号和网卡生产厂商号判定所述待升级网卡为所述网卡固件升级包支持的网卡,判断所述待升级网卡是否允许被写入;
23.若所述待升级网卡允许被写入,判断所述待升级网卡的固件是否与所述网卡固件升级包中的固件相同;
24.若所述待升级网卡的固件与所述网卡固件升级包中的固件相同,所述待升级网卡满足所述自动化升级条件。
25.本发明实施例另一方面提供了一种网卡固件自动化升级装置,包括:
26.固件升级包封装模块,用于预先将x86平台的固件升级工具包、linux系统下各运行平台解析所述固件升级工具包的依赖文件和所述linux系统的虚拟机的运行库文件封装为网卡固件升级包;
27.文件安装模块,用于当开机进入所述linux系统,若当前运行平台不为x86架构平台,自动将从所述网卡固件升级包中匹配的依赖文件和运行库文件安装至所述当前运行平台;
28.网卡自动检测模块,用于当自动检测到所述linux系统中存在相匹配的待升级网卡,发送网卡固件升级指令。
29.可选的,还包括升级日志输出模块,用于根据网卡固件升级信息自动生成升级日志,并输出至预设文件路径下。
30.可选的,所述网卡自动检测模块包括:
31.监控子模块,用于调用待升级网络监控线程对所述linux系统中的各设备网卡进行实时监控;
32.网卡判断子模块,用于当检测到目标设备的网卡为待升级网卡,判断所述待升级网卡是否满足自动化升级条件;
33.网卡升级指令发送子模块,用于若所述待升级网卡满足所述自动化升级条件,发送网卡固件升级指令。
34.本发明实施例还提供了一种网卡固件自动化升级装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述网卡固件自动化升级方法的步骤。
35.本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有网卡固件自动化升级程序,所述网卡固件自动化升级程序被处理器执行时实现如前任一项所述网卡固件自动化升级方法的步骤。
36.本申请提供的技术方案的优点在于,通过封装网卡的固件升级工具,对于不同的
运行平台安装相应的可解析固件升级工具的依赖文件和运行环境,使得在非x86平台下的linux系统可以对设备网卡进行固件升级,又使用自动化检测功能检测设备网卡的固件版本,并对网卡进行自动化升级,不仅可达到节省人力物力的目的,同时还可提升设备的操作简易性和可靠性。
37.此外,本发明实施例还针对网卡固件自动化升级方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
38.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
39.为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本发明实施例提供的一种网卡固件自动化升级方法的流程示意图;
41.图2为本发明实施例提供的网卡固件自动化升级装置的一种具体实施方式结构图;
42.图3为本发明实施例提供的网卡固件自动化升级装置的另一种具体实施方式结构图。
具体实施方式
43.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
45.在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
46.首先参见图1,图1为本发明实施例提供的一种网卡固件自动化升级方法的流程示意图,本发明实施例可包括以下内容:
47.s101:预先将x86平台的固件升级工具包、linux系统下各运行平台解析固件升级工具包的依赖文件和linux系统的虚拟机的运行库文件封装为网卡固件升级包。
48.本申请解决的是intel为了保持其x86 cpu的优势,仅仅为其网卡如x710等提供了x86平台下linux系统的固件升级工具,该工具无法在非x86平台linux系统使用的技术问题。本申请的intel网卡,固件升级工具包为x86平台下linux系统的固件升级工具。为了在
非x86平台中应用固件升级工具,需要解析固件升级工具,而不同运行平台的解析方法不同,所依赖的文件也不同,依赖文件可包括依赖库和/或依赖包,依赖库为程序运行所需的动态库或者静态库,依赖包为程序运行所需的其他安装包。运行库文件可包括linux系统的虚拟机的运行环境如虚拟操作系统模拟器qemu。linux系统下各运行平台例如可为arm平台、mips平台或powerpc平台。网卡固件升级包在构建好之后,可存储至系统的固定位置,然后将存储位置信息反馈,以便后续调用该封装包。
49.s102:当开机进入linux系统,若当前运行平台不为x86架构平台,自动将从网卡固件升级包中匹配的依赖文件和运行库文件安装至当前运行平台。
50.开机进入linux系统后,可先读取平台的系统信息,基于读取的系统信息识别当前linux的运行平台是什么类型的平台,如果是非x86架构平台如arm平台、mips平台或powerpc平台,可从s101中的封装包中匹配相应平台类型安装封装工具所需的依赖库、依赖包括和虚拟机环境等。若为x86架构平台,则无需为其安装。
51.s103:当自动检测到linux系统中存在相匹配的待升级网卡,发送网卡固件升级指令,以调用网卡固件升级包对待升级网卡执行自动化固件升级操作。
52.可以理解的是,linux系统中的设备的网卡是intel网卡,或者是说是x86平台的固件升级工具包支持的网卡,有些设备的网卡是不支持的。可预先构建是否有需要升级的网卡的线程,该线程实时监控linux系统的各设备,可先判断设备中是否存在网卡,然后在判断网卡是否为s101构建的网卡固件升级包所支持的网卡类型,然后根据网卡的固件版本判断是否为需要升级的网卡,这也即是相匹配的待升级网卡所指代的意思,即相匹配的待升级网卡是s101构建的网卡固件升级包所支持的网卡类型同时还是需要更新固件版本的网卡。负责执行固件更新的线程在收到网卡固件升级指令后,可调用网卡固件升级包对待升级网卡执行自动化固件升级操作,完成intel网卡固件自动化升级。执行固件更新的线程例如可为虚拟机,相应的,虚拟机在收到网卡固件升级指令之后,可调用网卡固件升级包对待升级网卡执行自动化固件升级操作。
53.在本发明实施例提供的技术方案中,通过封装网卡的固件升级工具,对于不同的运行平台安装相应的可解析固件升级工具的依赖文件和运行环境,使得在非x86平台下的linux系统可以对设备网卡进行固件升级,又使用自动化检测功能检测设备网卡的固件版本,并对网卡进行自动化升级,不仅可达到节省人力物力的目的,同时还可提升设备的操作简易性和可靠性。
54.需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
55.可以理解的是,在某些应用场景中需要进行日志审计,在发生故障时或者是固件升级失败后,日志可有助于更好的追溯故障原因,更快地定位故障所在,提升系统的稳定性,基于上述实施例,在s103之后,还可包括:
56.根据网卡固件升级信息自动生成升级日志,并输出至预设文件路径下,升级完成重启设备。
57.预设文件路径可为预先设置好的一个日志存储位置,linux系统可同时有多个待升级网卡,这样每个待升级网卡可对应有一个升级日志,不同待升级网卡的升级日志可根
据实际应用场景存储在一个位置也可存储至不同位置,相应的,根据网卡固件升级信息自动生成升级日志的过程还可包括:
58.若待升级网卡有多个,获取每个待升级网卡的升级日志存储位置信息;将相同存储位置信息的待升级网卡的升级日志打包为升级日志包进行发送。升级日志包中可包括多个文件,每个文件唯一对应一个待升级网卡,例如可使用待升级网卡的设备id命名文件名,这样便可通过文件名确定升级日志为哪个网卡的。
59.上述实施例对如何执行s103并不做限定,本申请还提供了自动检测到linux系统中存在相匹配的待升级网卡的一种实施方式,可包括下述内容:
60.调用待升级网络监控线程对linux系统中的各设备网卡进行实时监控;当检测到目标设备的网卡为待升级网卡,判断待升级网卡是否满足自动化升级条件;若待升级网卡满足自动化升级条件,发送网卡固件升级指令。
61.其中,判断待升级网卡是否满足自动化升级条件的过程可包括:
62.读取目标设备的网卡设备号和网卡生产厂商号vender id;根据目标设备的网卡设备号和网卡生产厂商号判定待升级网卡是否为网卡固件升级包支持的网卡。
63.若待升级网卡为网卡固件升级包支持的网卡,则进一步判断待升级网卡是否允许被写入。
64.若待升级网卡允许被写入,判断待升级网卡的固件是否与网卡固件升级包中的固件相同。
65.若待升级网卡的固件与网卡固件升级包中的固件相同,待升级网卡满足自动化升级条件。
66.若待升级网卡为网卡固件升级包不支持的网卡或待升级网卡不允许被写入或待升级网卡的固件与网卡固件升级包中的固件不相同,这些均无法成功更新固件,可直接反馈网卡固件不支持自动更新,或者是直接进行报错,还可直接结束,这均不影响本申请的实现。
67.在完成一个待升级网卡的判断后,可判断是否还有其他待升级网卡,并对其他待升级网卡判断其是否满足自动化升级条件。也可同时构件多个自动化升级条件判断线程和多个自动化固件升级线程,同时对多个待升级网卡进行条件判断和自动化固件升级,提升整个系统的网卡固件升级效率。
68.本发明实施例还针对网卡固件自动化升级方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的网卡固件自动化升级装置进行介绍,下文描述的网卡固件自动化升级装置与上文描述的网卡固件自动化升级方法可相互对应参照。
69.基于功能模块的角度,参见图2,图2为本发明实施例提供的网卡固件自动化升级装置在一种具体实施方式下的结构图,该装置可包括:
70.固件升级包封装模块201,用于预先将x86平台的固件升级工具包、linux系统下各运行平台解析固件升级工具包的依赖文件和linux系统的虚拟机的运行库文件封装为网卡固件升级包。
71.文件安装模块202,用于当开机进入linux系统,若当前运行平台不为x86架构平台,自动将从网卡固件升级包中匹配的依赖文件和运行库文件安装至当前运行平台。
72.网卡自动检测模块203,用于当自动检测到linux系统中存在相匹配的待升级网卡,发送网卡固件升级指令。
73.可选的,在本实施例的一些实施方式中,上述装置例如还可以包括升级日志输出模块,该模块用于根据网卡固件升级信息自动生成升级日志,并输出至预设文件路径下。
74.作为本实施例的一种可选的实施方式,上述升级日志输出模块还可包括:
75.存储位置获取子模块,用于若待升级网卡有多个,获取每个待升级网卡的升级日志存储位置信息;
76.打包发送子模块将相同存储位置信息的待升级网卡的升级日志打包为升级日志包进行发送。
77.可选的,在本实施例的另一些实施方式中,网卡自动检测模块例如可包括:
78.监控子模块,用于调用待升级网络监控线程对linux系统中的各设备网卡进行实时监控;
79.网卡判断子模块,用于当检测到目标设备的网卡为待升级网卡,判断待升级网卡是否满足自动化升级条件;
80.网卡升级指令发送子模块,用于若待升级网卡满足自动化升级条件,发送网卡固件升级指令。
81.作为本实施的一些可选的实施方式,网卡判断子模块可具体用于:
82.读取目标设备的网卡设备号和网卡生产厂商号;
83.根据目标设备的网卡设备号和网卡生产厂商号判定待升级网卡为网卡固件升级包支持的网卡,判断待升级网卡是否允许被写入;
84.若待升级网卡允许被写入,判断待升级网卡的固件是否与网卡固件升级包中的固件相同;
85.若待升级网卡的固件与网卡固件升级包中的固件相同,待升级网卡满足自动化升级条件。
86.本发明实施例所述网卡固件自动化升级装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
87.由上可知,本发明实施例通过封装intel网卡的固件升级工具,解决在非x86平台下的linux系统不能对intel网卡进行固件升级的问题,达到跨平台下intel网卡固件自动升级的目的。
88.上文中提到的网卡固件自动化升级装置是从功能模块的角度描述,进一步的,本申请还提供一种网卡固件自动化升级装置,是从硬件角度描述。图3为本申请实施例提供的另一种网卡固件自动化升级装置的结构图。如图3所示,该装置包括存储器30,用于存储计算机程序;
89.处理器31,用于执行计算机程序时实现如上述任一实施例提到的网卡固件自动化升级方法的步骤。
90.其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程
逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
91.存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的网卡固件自动化升级方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括windows、unix、linux等。数据303可以包括但不限于网卡固件自动化升级结果对应的数据等。
92.在一些实施例中,网卡固件自动化升级装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
93.本领域技术人员可以理解,图3中示出的结构并不构成对网卡固件自动化升级装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器37。
94.本发明实施例所述网卡固件自动化升级装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
95.由上可知,本发明实施例通过将依赖库和虚拟化软件与intel网卡固件升级工具打包,通过检查平台类型,安装相应的依赖库,实现在非x86平台下实现自动升级intel网卡固件的目的。
96.可以理解的是,如果上述实施例中的网卡固件自动化升级方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、磁碟或者光盘等各种可以存储程序代码的介质。
97.基于此,本发明实施例还提供了一种计算机可读存储介质,存储有网卡固件自动化升级程序,所述网卡固件自动化升级程序被处理器执行时如上任意一实施例所述网卡固件自动化升级方法的步骤。
98.本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
99.由上可知,本发明实施例基于linux实现了跨平台的intel网卡固件的自动化升
级。
100.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
101.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
102.以上对本申请所提供的一种网卡固件自动化升级方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1