驱动模块与内核兼容性检查方法技术

技术编号:39726678 阅读:11 留言:0更新日期:2023-12-17 23:31
本发明专利技术公开了一种驱动模块与内核兼容性检查方法

【技术实现步骤摘要】
驱动模块与内核兼容性检查方法、计算设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种驱动模块与内核兼容性检查方法

计算设备及存储介质


技术介绍

[0002]目前,一些基于
Linux
操作系统的硬件设备厂商并未提供驱动源代码,只提供二进制的驱动模块

这样做的好处是将驱动模块与操作系统完全隔离开,便于独立进行开发,但,该方案无法确保厂商提供的驱动模块与操作系统
(
内核
)
版本的兼容性

[0003]为解决上述问题,就需要提供一种检查驱动模块与内核版本是否兼容的机制

当系统上发生任何可能影响驱动模块与内核版本兼容性的修改时,例如在安装一个驱动模块或者升级内核版本时,便会触发兼容性检查机制,以判断这种修改能否成功进行,并做出相应处理

[0004]现有技术中的
DKMS
技术,建立在驱动模块有源码的基础之上,当内核版本发生变化时,触发驱动模块基于源码再进行编译异常,以确保新的内核版本与内核模块之间的兼容性

使用
DKMS
技术,需要厂商在写驱动程序的时候,就严格遵守
DKMS
的规范创建目录,根据需求编写
dkms.conf
配置文件,以及提供编译工程,使得更新内核后可以自动构建

然而,
DKMS
技术并不适用于没有源码的驱动模

[0005]为此,需要一种驱动模块与内核兼容性检查方法,以解决上述技术方案中存在的问题


技术实现思路

[0006]为此,本专利技术提供一种驱动模块与内核兼容性检查方法,以解决或至少缓解上面存在的问题

[0007]根据本专利技术的一个方面,提供一种驱动模块与内核兼容性检查方法,在计算设备中执行,所述计算设备的操作系统中包括当前内核,所述计算设备中包括一种或多种驱动模块分别对应的驱动软件包,所述驱动软件包中包含所述驱动模块对应的多个驱动模块版本文件以及兼容性检查脚本,所述方法包括:通过驱动模块对应的兼容性检查脚本,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容,包括:获取所述驱动模块版本文件中记录的所有依赖符号名,基于每个所述依赖符号名查找对应的
CRC
值,并进行汇总生成第一汇总
CRC
值;将所述第一汇总
CRC
值与所述驱动模块版本文件在当前内核下进行编译时生成的第二汇总
CRC
值进行对比,如果相同,则确定所述驱动模块版本文件的依赖符号与所述当前内核兼容;如果所述驱动模块对应的至少一个驱动模块版本文件的依赖符号与所述当前内核兼容,则确定所述驱动模块与所述当前内核兼容

[0008]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,还包括:响应于将所述当前内核更新为新的内核的操作,分别通过每种驱动模块对应的兼容性检查脚本,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述新的内核是否兼容

[0009]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,如果所述驱动模块版本文件的依赖符号与所述当前内核兼容,还包括:在操作系统的默认驱动路径下,建立所述驱动模块版本文件的软连接

[0010]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,还包括:将所述驱动模块对应的兼容性检查脚本安装到操作系统的第二预定目录下

[0011]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容,包括:判断操作系统的默认驱动路径下,是否存在所述驱动模块对应的各驱动模块版本文件的软连接;如果不存在,则逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容

[0012]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,还包括:如果存在至少一个驱动模块版本文件的软连接,则检查该驱动模块版本文件的依赖符号与当前内核是否兼容;如果不兼容,则删除该软连接后,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容

[0013]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,还包括:在所述驱动模块版本文件在当前内核下进行编译时,将所述驱动模块版本文件的每个依赖符号名与对应的
CRC
值记录在所述驱动模块版本文件中,并基于所有
CRC
值汇总生成第二汇总
CRC
值,将所述第二汇总
CRC
值保存在所述驱动模块版本文件中

[0014]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,基于每个所述依赖符号名分别查找对应的
CRC
值,包括:基于每个所述依赖符号名,分别从
Module.symvers
文件中查找对应的
CRC


[0015]可选地,在根据本专利技术的驱动模块与内核兼容性检查方法中,每个所述驱动模块版本文件适于安装在操作系统的第一预定目录下

[0016]根据本专利技术的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的驱动模块与内核兼容性检查方法的指令

[0017]根据本专利技术的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的驱动模块与内核兼容性检查方法

[0018]根据本专利技术的技术方案,提供了一种驱动模块与内核兼容性检查方法,其中,通过驱动模块对应的兼容性检查脚本,逐个检查驱动模块对应的每个驱动模块版本文件的依赖符号与当前内核是否兼容,具体地,获取驱动模块版本文件中记录的所有依赖符号名,基于每个依赖符号名查找对应的
CRC
值并进行汇总生成第一汇总
CRC
值,将该第一汇总
CRC
值与驱动模块版本文件在当前内核下进行编译时生成的第二汇总
CRC
值进行对比,如果相同,则确定驱动模块版本文件的依赖符号与当前内核兼容

如果驱动模块对应的至少一个驱动模块版本文件的依赖符号与当前内核兼容,则可以确定驱动模块与当前内核兼容

可见,根据本专利技术的技术方案,不需要依赖驱动模块源代码,在增加新的驱动模块或者在内核版本更新时,可以自动触发驱动模块对应的兼容性检查脚本来检查驱动模块与内核版本的兼容性,这样,不仅实现了硬件驱动模块与内核之间完全隔离,以便独立进行开发,而且,能够确...

【技术保护点】

【技术特征摘要】
1.
一种驱动模块与内核兼容性检查方法,在计算设备中执行,所述计算设备的操作系统中包括当前内核,所述计算设备中包括一种或多种驱动模块分别对应的驱动软件包,所述驱动软件包中包含所述驱动模块对应的多个驱动模块版本文件以及兼容性检查脚本,所述方法包括:通过驱动模块对应的兼容性检查脚本,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容,包括:获取所述驱动模块版本文件中记录的所有依赖符号名,基于每个所述依赖符号名查找对应的
CRC
值,并进行汇总生成第一汇总
CRC
值;将所述第一汇总
CRC
值与所述驱动模块版本文件在当前内核下进行编译时生成的第二汇总
CRC
值进行对比,如果相同,则确定所述驱动模块版本文件的依赖符号与所述当前内核兼容;如果所述驱动模块对应的至少一个驱动模块版本文件的依赖符号与所述当前内核兼容,则确定所述驱动模块与所述当前内核兼容
。2.
如权利要求1所述的方法,其中,还包括:响应于将所述当前内核更新为新的内核的操作,分别通过每种驱动模块对应的兼容性检查脚本,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述新的内核是否兼容
。3.
如权利要求1所述的方法,其中,如果所述驱动模块版本文件的依赖符号与所述当前内核兼容,还包括:在操作系统的默认驱动路径下,建立所述驱动模块版本文件的软连接
。4.
如权利要求3所述的方法,其中,还包括:将所述驱动模块对应的兼容性检查脚本安装到操作系统的第二预定目录下
。5.
如权利要求1‑4中任一项所述的方法,其中,逐个检查所述驱动模块对应的每个驱动模块版本文件的依赖符号与所述当前内核是否兼容,包括:判断操作系统的默认驱动路径下,是否存在所述驱动模块对应的各...

【专利技术属性】
技术研发人员:胡晓东占俊
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1