网卡固件管理方法、装置、介质及终端与流程

xiaoxiao11小时前  6


本技术涉及网卡驱动开发的,特别是涉及一种网卡固件管理方法、装置、介质及终端。


背景技术:

1、网卡是连接服务器与网络的硬件设备,其基本功能是:从并行到串行的数据转换、包的装配和拆装、网络存取控制、数据缓存等。服务器必须借助网卡才能实现数据的通信,因此网卡是服务器的重要组成部分。

2、一般情况下,网卡固件要么保存在计算机的磁盘上,要么固化在网卡自身的快闪存储器里面。但是对于某些操作系统而言,计算机启动后,操作系统在加载网卡驱动时,网卡驱动并不能保证可以访问磁盘或者根本没有给网卡驱动提供访问磁盘的接口,也就无法访问保存在磁盘上的固件。同时有些网卡基于硬件成本的考虑,板载的快闪存储器的空间并不是很大,如果后期升级固件时,固件文件大小超出的快闪存储器大小,就会导致无法进行固件升级,进而无法加载固件。


技术实现思路

1、鉴于以上所述现有技术的缺点,本技术的目的在于提供一种网卡固件管理方法、装置、介质及终端,用于解决现有技术中无法从磁盘中加载固件以及网卡快闪存储器空间有限,无法写入文件大小超出限制的固件从而导致无法从快闪存储器中加载固件的技术问题。

2、为实现上述目的及其他相关目的,本技术的第一方面提供一种网卡固件管理方法,包括:

3、对获取到的网卡固件原始数据文件进行压缩,并将压缩生成的固件压缩数据文件转换成固件源文件;

4、对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件;

5、加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行。

6、于本技术的第一方面的一些实施例中,所述对获取到的网卡固件原始数据文件进行压缩,并将压缩生成的固件压缩数据文件转换成固件源文件的方式包括:

7、通过工具脚本提取所述网卡固件原始数据文件的原始固件数据块大小、原始固件版本号以及原始固件文件名,并对所述网卡固件原始数据文件进行计算以获得第一哈希值;

8、用压缩程序对所述网卡固件原始数据文件进行压缩以生成固件压缩数据文件;

9、将一个魔术数、所述原始固件数据块大小、原始固件版本号、原始固件文件名以及第一哈希值构造成文件头部,放入到所述固件压缩数据文件前面,以生成最终固件压缩数据文件;

10、将所述最终固件压缩数据文件添加到以网卡类型命名的固件源文件中。

11、于本技术的第一方面的一些实施例中,将所述最终固件压缩数据文件添加到以网卡类型命名的固件源文件中的方式包括:

12、将所述最终固件压缩数据文件添加到所述固件源文件的一个数组中,所述数组以对应网卡类型命名。

13、于本技术的第一方面的一些实施例中,对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件的方式包括:

14、将以不同网卡类型命名的固件源文件编译到同一个驱动文件中,并在所述驱动文件中创建一张网卡类型到网卡固件的固件表;其中,所述固件表包括若干个映射表项,所述映射表项用以表征不同类型的网卡所对应的最终固件压缩数据文件所在的固件源文件。

15、于本技术的第一方面的一些实施例中,加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行的方式包括:

16、加载所述网卡的驱动文件,以检测网卡所在的pcie设备,并对网卡进行初始化操作以查询对应的网卡类型;

17、根据查找到的网卡类型遍历所述固件表,以获取对应的最终固件压缩数据文件;

18、判断所述最终固件压缩数据文件的文件头部是否以魔术数开头;

19、若是,则对所述最终固件压缩数据文件中的固件压缩数据文件进行解压缩,以获取固件解压缩数据文件;

20、若否,则确定所述最终固件压缩数据文件错误或被篡改;

21、对所述固件解压缩数据文件进行计算以获得第二哈希值;

22、判断第一哈希值与第二哈希值是否相同;若是,则判断所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小是否相同;

23、若否,则确定所述最终固件压缩数据文件错误或被篡改;

24、若所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小相同,则将所述固件解压缩数据文件加载到对应网卡上运行;

25、若所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小不相同,则确定所述最终固件压缩数据文件错误或被篡改。

26、为实现上述目的及其他相关目的,本技术的第二方面提供一种网卡固件管理装置,包括:

27、压缩转换模块,用于对获取到的网卡固件原始数据文件进行压缩,并将压缩生成的固件压缩数据文件转换成固件源文件;

28、驱动生成模块,用于对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件;

29、加载运行模块,用于加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行。

30、于本技术的第二方面的一些实施例中,所述驱动生成模块对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件的方式包括:

31、将以不同网卡类型命名的固件源文件编译到同一个驱动文件中,并在所述驱动文件中创建一张网卡类型到网卡固件的固件表;其中,所述固件表包括若干个映射表项,所述映射表项用以表征不同类型的网卡所对应的最终固件压缩数据文件所在的固件源文件。

32、于本技术的第二方面的一些实施例中,所述加载运行模块还用于执行如下步骤:

33、加载所述网卡的驱动文件,以检测网卡所在的pcie设备,并对网卡进行初始化操作以查询对应的网卡类型;

34、根据查找到的网卡类型遍历所述固件表,以获取对应的最终固件压缩数据文件;

35、判断所述最终固件压缩数据文件的文件头部是否以魔术数开头;

36、若是,则对所述最终固件压缩数据文件中的固件压缩数据文件进行解压缩,以获取固件解压缩数据文件;

37、若否,则确定所述最终固件压缩数据文件错误或被篡改;

38、对所述固件解压缩数据文件进行计算以获得第二哈希值;

39、判断第一哈希值与第二哈希值是否相同;若是,则判断所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小是否相同;

40、若否,则确定所述最终固件压缩数据文件错误或被篡改;

41、若所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小相同,则将所述固件解压缩数据文件加载到对应网卡上运行;

42、若所述固件解压缩数据文件的解压缩数据块大小与原始固件数据块大小不相同,则确定所述最终固件压缩数据文件错误或被篡改。

43、为实现上述目的及其他相关目的,本技术的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的网卡固件管理方法。

44、为实现上述目的及其他相关目的,本技术的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上所述的网卡固件管理方法。

45、如上所述,本技术的网卡固件管理方法、装置、介质及终端,具有以下有益效果:将网卡固件原始数据文件进行压缩后,转换成固件源文件;将不同网卡类型的固件源文件编译到同一个驱动文件中;加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行;从而实现了在升级网卡驱动的同时升级网卡固件,解决了网卡驱动无法访问磁盘的技术问题,克服了网卡快闪存储器容量不足无法写入文件大小超出限制的固件,无法存储升级固件的缺陷。


技术特征:

1.一种网卡固件管理方法,其特征在于,包括:

2.根据权利要求1所述的网卡固件管理方法,其特征在于,所述对获取到的网卡固件原始数据文件进行压缩,并将压缩生成的固件压缩数据文件转换成固件源文件的方式包括:

3.根据权利要求2所述的网卡固件管理方法,其特征在于,将所述最终固件压缩数据文件添加到以网卡类型命名的固件源文件中的方式包括:

4.根据权利要求2所述的网卡固件管理方法,其特征在于,对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件的方式包括:

5.根据权利要求4所述的网卡固件管理方法,其特征在于,加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行的方式包括:

6.一种网卡固件管理装置,其特征在于,包括:

7.根据权利要求6所述的网卡固件管理装置,其特征在于,所述驱动生成模块对所述固件源文件与网卡驱动代码进行编译,以生成网卡的驱动文件的方式包括:

8.根据权利要求7所述的网卡固件管理装置,其特征在于,所述加载运行模块还用于执行如下步骤:

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的网卡固件管理方法。

10.一种电子终端,其特征在于,包括:处理器及存储器;


技术总结
本申请提供一种网卡固件管理方法、装置、介质及终端,将网卡固件原始数据文件进行压缩后,转换成固件源文件;将不同网卡类型的固件源文件编译到同一个驱动文件中;加载所述网卡的驱动文件,运行所述驱动文件以进行网卡检测;在检测到网卡的情况下,将对应网卡的固件压缩数据文件进行解压缩并加载到对应网卡上运行;从而实现了在升级网卡驱动的同时升级网卡固件,解决了网卡驱动无法访问磁盘的技术问题,克服了网卡快闪存储器容量不足无法写入文件大小超出限制的固件,无法存储升级固件的缺陷。

技术研发人员:徐碧杰,卢笙,张远超,郑宝文
受保护的技术使用者:芯云晟(杭州)电子科技有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)