一种基于Linux系统的驱动模块升级方法及装置的制造方法

文档序号:9524029阅读:374来源:国知局
一种基于Linux系统的驱动模块升级方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子技术领域,尤其涉及一种基于Linux系统的驱动模块升级方法及
目.ο
【背景技术】
[0002]基于Linux操作系统的机顶盒,在更新驱动模块时,需要先卸载旧版本的驱动模块再载入新版本的驱动模块,如果旧版本的驱动模块还依赖于其他模块,那么还需要卸载与旧版本的驱动模块具有依赖关系的模块。在载入新版本的时候,还需要按照依赖关系有顺序的载入新版本的驱动模块及其依赖模块。现有技术中,Linux命令提供了一种modprobe命令,可以自动处理可载入模块,即自动判断要载入模块的先后顺序并按顺序载入相应的模块。
[0003]但是,modprobe命令的通用性不足,在很多裁剪的linux系统中,都无法使用modprobe命令,造成在更新驱动模块时,驱动模块就无法按照正确的顺序被卸载以及载入,可能导致需要重启机顶盒以初始化驱动模块,甚至导致驱动模块无法运行,从而造成系统运行的不稳定,影响系统的可靠性。另一方面,modprobe命令需要固定地保存文件,即需要一定空间和依赖,如果依赖被破坏或生产不成功会影响驱动模块的正确性。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种基于Linux系统的驱动模块升级方法及装置,以期优化linux系统中的驱动模块升级问题,进而提升系统的稳定性以及可靠性。
[0005]本发明实施例提供了一种基于Linux系统的驱动模块升级方法,该方法包括:
[0006]接收驱动模块升级指令,确定所述驱动模块升级指令对应的目标驱动模块的原始版本和升级版本;
[0007]获取所述目标驱动模块的依赖模块以及所述目标驱动模块与所述依赖模块之间存在的依赖关系;
[0008]根据所述依赖关系,卸载所述目标驱动模块的原始版本以及所述依赖模块;
[0009]根据所述依赖关系,载入所述目标驱动模块的升级版本以及所述依赖模块。
[0010]相应地,本发明实施例还提供了一种基于Linux系统的驱动模块升级装置,该装置包括:
[0011]目标确定模块,用于接收驱动模块升级指令,确定所述驱动模块升级指令对应的目标驱动模块的原始版本和升级版本;
[0012]依赖获取模块,用于获取所述目标驱动模块的依赖模块以及所述目标驱动模块与所述依赖模块之间存在的依赖关系;
[0013]卸载模块,用于根据所述依赖关系,卸载所述目标驱动模块的原始版本以及所述依赖模块;
[0014]升级模块,用于根据所述依赖关系,载入所述目标驱动模块的升级版本以及所述依赖模块。
[0015]本发明实施例根据获取到的目标驱动模块的依赖模块以及目标驱动模块与依赖模块之间存在的依赖关系,卸载目标驱动模块的原始版本以及依赖模块,并且载入目标驱动模块的升级版本以及依赖模块,可以优化linux系统中的驱动模块升级问题,进而提升系统的稳定性以及可靠性。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本发明实施例中一种基于Linux系统的驱动模块升级方法的流程示意图;
[0018]图2是本发明实施例中一种基于Linux系统的驱动模块升级装置的组成结构图;
[0019]图3是本发明实施例中一种驱动模块与依赖模块的依赖关系树的示意图;
[0020]图4是本发明实施例中一种驱动模块与依赖模块的依赖关系树的示意图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]为了优化linux系统的驱动升级问题,本发明实施例提出了一种基于Linux系统的驱动模块升级方法,本方法流程可以依赖于基于Linux系统的计算机程序实施,该计算机程序可运行于冯诺依曼体系的计算机系统之上,该计算机系统可以为具有Linux系统的机顶盒、智能电视等。图1是本发明实施例中一种基于Linux系统的驱动模块升级方法的流程示意图,如图所示所述方法至少包括:
[0023]步骤S101,接收驱动模块升级指令,确定所述驱动模块升级指令对应的目标驱动丰吴块的原始版本和升级版本。
[0024]具体的,目标驱动模块是用户选定的驱动模块,这里的目标驱动模块的原始版本和升级版本,其本质也都是目标驱动模块。目标驱动模块的原始版本可以是指目标驱动模块正在使用的还未升级的版本,目标驱动模块的升级版本可以是用户指定的、机顶盒检测出来的或者从其他终端接收到的较原始版本更新的版本,也可以说,是对原始版本中的漏洞以及缺陷的改善以及优化后的版本。
[0025]在本实施例中,用户可以选择目标驱动模块,然后选择该目标驱动模块的原始版本和升级版本,点击确定以触发驱动模块升级指令,则机顶盒接收到该驱动模块升级指令后,即可确定目标驱动模块以及该目标驱动模的原始版本和升级版本。在另一实施方式中,机顶盒也可以在用户触发针对目标驱动模块的驱动模块升级指令后,智能的检测并获取目标驱动模块对应的原始版本以及升级版本。
[0026]需要说明的是,在机顶盒获取目标驱动模块对应的原始版本以及升级版本时,若升级版本已经存储在机顶盒中,则机顶盒直接获取升级版本即可;若升级版本并不存在于机顶盒中,则机顶盒可以向其他终端或服务器请求后接收目标驱动模块的升级版本。
[0027]步骤S102,获取所述目标驱动模块的依赖模块以及所述目标驱动模块与所述依赖模块之间存在的依赖关系。
[0028]具体的,依赖关系可以指某一服务的启动需要以另一服务的存在以及启动为条件。例如,A服务依赖于B服务,当需要启动A服务的时候,B服务必须存在且为启动状态,否则A服务无法启动。像A与B这样的关系就可以称为依赖关系,即A服务依赖于B服务。
[0029]在本实施例中,目标驱动模块的依赖模块可以指与目标驱动模块具有依赖关系的模块,依赖关系则指目标驱动模块依赖于其依赖模块才可以启动或运行的该种关系。机顶盒在确定了目标驱动模块后,即可获取目标驱动模块的依赖模块以及目标驱动模块与依赖模块之间存在的依赖关系。
[0030]具体实施中,目标驱动模块可以没有依赖模块,也可以有多个依赖模块。当目标驱动模块有多个依赖模块时,机顶盒获取的目标驱动模块与其依赖模块之间的依赖关系实际上相当于是目标驱动模块与其依赖模块的依赖关系树。如图3所示的依赖关系树,若A为目标驱动模块,A与B、C、D分别相连意味着A分别依赖于B依赖模块、C依赖模块以及D依赖模块。
[0031]进一步地,目标驱动模块的依赖模块也可以有与之存在依赖关系的模块,则可以依照每个模块之间的依赖关系,获取更完整的依赖关系树。如图4所示的依赖关系树,可以看出很容易获取A?G之间的依赖关系为:A依赖于B、C、D,B依赖于E、F,F又依赖于G。
[0032]步骤S103,根据所述依赖关系,卸载所述目标驱动模块的原始版本以及所述依赖模块。
[0033]具体的,为了载入目标驱动模块的升级版本,机顶盒先要卸载目标驱动模块的原始版本,而当目标驱动模块又存在依赖模块时,则还要将目标驱动模块的依赖模块也卸载之后才能完成目
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1