CN105045733A - 设备驱动装置及方法 - Google Patents
设备驱动装置及方法 Download PDFInfo
- Publication number
- CN105045733A CN105045733A CN201510400344.6A CN201510400344A CN105045733A CN 105045733 A CN105045733 A CN 105045733A CN 201510400344 A CN201510400344 A CN 201510400344A CN 105045733 A CN105045733 A CN 105045733A
- Authority
- CN
- China
- Prior art keywords
- equipment
- unit
- driver
- descriptor
- access information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
设备驱动装置及方法。所述设备驱动装置,适于在基于Linux内核的操作系统中支持设备与应用程序交互,包括:一匹配单元,根据设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果;以及至少一个硬件服务单元,每一硬件服务单元对应唯一设备类型,硬件服务单元用于根据匹配结果加载选定驱动程序,以使应用程序与选定设备交互。本发明技术方案根据设备接入信息和驱动程序的描述信息得到选定设备和选定驱动程序,并通过通知单元将选定设备和选定驱动程序通知硬件服务单元使其能够加载选定驱动程序。实现了在基于Linux内核的操作系统中接入设备的即插即用。
Description
技术领域
本发明涉及智能操作系统领域,特别涉及一种设备驱动装置及方法,以在智能操作系统中实现设备即插即用(Plug-and-Play)。
背景技术
随着技术的发展,越来越多的外部设备需要与操作系统进行交互,交互的便捷性也因此愈加受到人们关注。目前,传统的Windows操作系统已经能够支持标准的即插即用设备,例如,个人电脑的操作系统支持USB键盘即插即用。然而,对于用于手机、智能家电、可穿戴设备、机顶盒等智能设备平台上的智能操作系统,例如广为大家所使用的基于Linux内核的操作系统,其架构与Windows操作系统不同,尚无法实现设备的即插即用。
参考图1,图1是现有基于Linux内核的操作系统中设备驱动示意图。现有智能操作系统中包括多个硬件服务单元,应用程序APP1至APPN通过硬件服务单元访问设备。每一硬件服务单元对应于唯一一种类型的设备,该类型的设备相应的驱动程序经由该硬件服务单元加载。如图1所示,第一硬件服务单元对应于类型为A的设备(设备A1、设备A2、……、设备AN),第一硬件服务单元可以加载A类型设备对应的驱动程序(驱动程序A1、驱动程序A2、……、驱动程序AN);第N硬件服务单元对应类型为B的设备,第N硬件服务单元可以加载B类型设备对应的驱动程序(驱动程序B1、驱动程序B2、……、驱动程序BN)。在对应于同一硬件服务单元的多个驱动程序中,智能操作系统指定其中某一个为默认驱动程序,开机启动时加载的该默认驱动程序。
在智能操作系统启动时,首先,由每个硬件服务单元对应的默认驱动程序扫描接入的设备,查找是否存在与该默认驱动程序匹配的设备。若存匹配的设备,相应的硬件服务单元生成对应于该设备的设备实例供上层应用程序访问。因此,当现有智能操作系统在运行过程中接入一设备时,并不会探测到该设备,而必须重新启动该操作系统以使每个硬件服务单元加载默认驱动程序,并由默认驱动程序扫描是否接入相应类型的设备。
由于现有的智能操作系统,例如Android系统或COS(ChinaOperatingSystem,中国操作系统),在开发之初主要适用于手机。但对于当时的手机应用而言,实际使用中较少涉及设备的接入,因此,仅在启动过程中扫描设备并不会给用户带来太多不便。然而,当该智能操作系统移植至机顶盒或平板电脑等智能平台时,由于这些智能平台需要较频繁地接入设备,若每次接入设备都需要重新启动该智能操作系统,接入设备的过程就显得异常繁琐。例如,当用户通过电视玩游戏时,需要将游戏手柄接入机顶盒。若默认驱动程序为A厂家的驱动程序A,而用户使用的是B厂家的游戏手柄。此时,即使操作系统中已安装驱动程序B,也仍然需要用户指定驱动程序B为开机启动时的默认驱动程序,并重启操作系统后才可以实现B厂家的游戏手柄与应用程序的交互。当需要接入多个设备时,上述驱动安装及操作系统重新过程尤为复杂,这无疑会给用户带来许多不便。
发明内容
本发明解决的是现有技术中智能操作系统中接入设备时,由于硬件服务程序仅在启动过程中扫描加载驱动程序而导致的需要重新启动该智能操作系统的问题。
为解决上述技术问题,本发明技术方案提出一种设备驱动装置,适于在基于Linux内核的操作系统中支持设备即插即用,所述设备驱动装置包括:一匹配单元,当所述设备接入所述操作系统时,根据设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果;以及至少一个硬件服务单元,每一硬件服务单元对应唯一设备类型,用于根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互。
本发明技术方案还提供一种设备驱动方法,适于在基于Linux内核的操作系统中支持设备即插即用,所述方法包括:基于设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果;根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互。
基于上述,与现有智能操作系统中的设备驱动方式不同,本发明技术方案的设备驱动装置及方法,通过设备获取单元获得设备接入信息,并将设备接入信息与操作系统中的驱动程序的描述信息进行比对,得到选定设备和选定驱动程序,并通过通知单元将上述选定设备和选定驱动程序通知硬件服务单元,硬件服务单元即可加载选定驱动程序,以使所述应用程序与所述选定设备交互。实现了智能操作系统中接入设备的即插即用。
附图说明
图1是现有基于Linux内核的操作系统中设备驱动示意图;
图2是本发明一实施例的设备驱动装置的示意图;
图3是本发明一实施例的内核层驱动程序和抽象层驱动程序的示意图;
图4是本发明一实施例的匹配单元的示意图;
图5是图2所示设备驱动装置一实施例中硬件服务单元的示意图;
图6是本发明一实施例的设备驱动方法的流程图;
图7是本发明另一实施例的设备驱动方法的流程图。
具体实施方式
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
如背景技术所述,现有操作系统中接入设备时,由于硬件服务程序仅在启动过程中扫描加载驱动程序,因此,需要重新启动该操作系统以实现应用程序与设备交互。
基于此,本发明技术方案提供一种设备驱动装置,适于在智能操作系统中支持设备即插即用。
参阅图2,图2是本发明一实施例的设备驱动装置的示意图。设备驱动装置10包括设备获取单元300、驱动获取单元400、匹配单元500、一个或多个通知单元210、220以及一个或多个硬件服务单元110、120。硬件服务单元110、120包括设备查询接口112、设备选择接口113以及实例化单元111、121。本实施例中,该智能操作系统可以是基于Linux内核的操作系统,例如Android或者COS(ChinaOperatingSystem,中国操作系统)。
当设备,例如设备A1、设备A2、设备B1或设备C,接入设备驱动装置10时,设备获取单元300获取设备接入信息,并将该设备接入信息S3发送至匹配单元500;驱动获取单元400获取驱动描述信息,并将该驱动描述信息S4也发送至匹配单元500。匹配单元500将匹配结果S51、S52通知相应的通知单元210、220,并由通知单元210、220将匹配结果S51、S52发送至硬件服务单元110、120。硬件服务单元110、120根据匹配结果S51、S52加载选定驱动程序,以使所述应用程序与所述选定设备交互。往后会再详加描述。
下面以当设备A1、设备A2、设备B1和设备C接入操作系统时,设备驱动装置10的工作过程为例,结合附图对各个单元详细说明。
当设备A1、设备A2、设备B1和设备C接入操作系统时,设备获取单元300,根据该设备驱动装置10所接入的设备获取设备接入信息,并将该设备接入信息S3发送至匹配单元500。所述设备接入信息可以包括设备类型、设备编号和生产厂商。本实施例中,当有设备接入该设备驱动装置10,操作系统中会生成相应的设备文件,设备获取单元300可通过监测该设备文件获得设备接入信息。以设备A1(可以是USB设备)接入智能操作系统为例,可以通过Linux下inotify机制由设备获取单元300监控“/sys/bus/usb/devices/”目录下内容的变化,如果该目录下有设备文件生成,则表示设备A1接入。读取该设备文件中的内容可以得到设备A1的设备类型、设备编号和生产厂商等。设备A2、设备B1和设备C接入时的情形与设备A1类似,此不赘述。
驱动获取单元400,耦接所述匹配单元500,用于获取驱动描述信息S4,并将该驱动描述信息S4发送至匹配单元500。对于操作系统而言,其安装的驱动程序包中记录了该驱动程序的驱动描述信息和驱动动作信息。驱动描述信息是记录该驱动程序可以驱动的设备类型、设备编号、生产厂商等;驱动动作信息是记录该驱动程序需要使设备执行怎样的动作。如下表1所示为本实施例的驱动描述信息列表。
表1.驱动描述信息列表
驱动描述信息 | |
驱动程序A1 | [sensor,elite1000,厂商一] |
驱动程序A2 | [sensor,elite2000,厂商二] |
…… | …… |
驱动程序AN | [sensor,elite3000,厂商N] |
驱动程序B1 | [printer,ps100,厂商一] |
驱动程序B2 | [printer,ps200,厂商二] |
…… | …… |
驱动程序BN | [printer,ps300,厂商N] |
本实施例中,当有新设备接入该智能操作系统时,设备获取单元300将设备接入信息S3发送至匹配单元500。匹配单元在接收到设备接入信息S3后,向驱动获取单元400发送驱动描述信息请求S41,进而驱动获取单元400将驱动描述信息S4发送至匹配单元500。在另一实施例中,当有新设备接入该智能操作系统时,所述设备获取单元300可以将设备状态的变化更新至一状态记录装置(图中未示出)中,再又该状态记录装置通知所述驱动获取单元400将驱动描述信息S4发送至所述匹配单元500。
本实施例中,驱动获取单元400可以仅获取智能操作系统中已安装的驱动程序的驱动描述信息。在其他实施例中,所述驱动获取单元400也可以同时获取驱动描述信息和驱动动作信息。
对于Android操作系统,驱动程序包括抽象层驱动程序和内核层驱动程序,抽象层驱动程序和内核层驱动程序一一对应。图3是本发明一实施例的内核层驱动程序和抽象层驱动程序的示意图。抽象层驱动程序是对Linux内核层驱动程序的封装,向上提供接口,屏蔽底层的实现细节。也就是说,本发明技术方案中的智能操作系统把对硬件的支持分成了两层,一层放在用户空间,一层放在内核空间。
匹配单元500,耦接设备获取单元300和驱动获取单元400,根据设备获取单元300发送出的设备接入信息S3和驱动获取单元400发送出的驱动描述信息S4确定选定驱动程序和选定设备,生成匹配结果。所述匹配结果包括选定驱动程序的驱动描述信息以及选定设备的设备接入信息。下文将详细描述。
参阅图4,图4是本发明一实施例的匹配单元的示意图。匹配单元500包括比对单元510和标记单元520。比对单元510,耦接所述设备获取单元300和所述驱动获取单元400,对所述设备接入信息S3和所述驱动描述信息S4进行比对。标记单元520,耦接所述比对单元510,用于在所述驱动描述信息与所述设备接入信息匹配时,标记该驱动描述信息对应的驱动程序为选定驱动程序,并标记该设备接入信息对应的设备为选定设备。所述驱动描述信息与所述设备接入信息匹配是指:所述驱动描述信息中包括与所述设备接入信息对应的设备类型、设备编号和生产厂商。以下结合表2.1和表2.2详细说明匹配单元500的工作过程。
表2.1设备接入信息和驱动描述信息比对表
表2.2(a)标记单元中选定驱动程序列表
选定驱动程序 | |
驱动程序A1 | T |
驱动程序A2 | T |
…… | —— |
驱动程序AN | —— |
驱动程序B1 | T |
驱动程序B2 | —— |
…… | —— |
驱动程序BN | —— |
表2.2(b)标记单元中选定设备列表
选定设备 | |
设备A1 | T |
设备A2 | T |
设备B1 | T |
设备C | —— |
首先,对于比对单元510,由表2.1可见,设备接入信息S3给出了各个接入的设备的设备类型、设备编号和生产厂商。例如,设备A1的设备接入信息为[sensor,elite1000,厂商一],设备A2的设备接入信息为[sensor,elite2000,厂商二],设备B1的设备接入信息为[printer,ps100,厂商一],设备C的设备接入信息为[camera,V123,厂商一]。驱动描述信息S4给出了智能操作系统中的各个驱动程序所能支持的设备的设备类型、设备编号和生产厂商。比对单元510接收设备接入信息S3和驱动描述信息S4后,将每个设备的设备接入信息和每个驱动程序的驱动描述信息进行比对,如表2.1中“T”表示匹配,“——”表示不匹配。表2.1中的比对的结果显示,驱动程序A1可以支持设备A1,驱动程序A2可以支持设备A2,驱动程序B1可以支持设备B1,对于设备C则没有相应的的驱动程序。
接着,标记单元520根据比对单元510中比对的结果,确定选定驱动程序和选定设备,并标注选定驱动程序和选定设备。如表2.2(a),其根据表2.1中的比对结果可获得,驱动程序A1、驱动程序A2和驱动程序B1为选定驱动程序,在表2.2(a)中由“T”表示;而其他的驱动程序则标记为“——”以示该驱动程序并非选定驱动程序。类似地,如表2.2(b),其同样根据表2.1中的比对结果可获得,设备A1、设备A2和设备B1为选定设备,在表2.2(b)中由“T”表示;而设备C则标记为“——”以示该设备并非选定设备。
对于智能操作系统中没有安装相应驱动程序的设备,例如前述设备C,当设备C接入该智能操作系统时,在本发明的一个实施例中,智能操作系统可提示用户无相应驱动程序。在本发明的另一实施例中,智能操作系统还可以从应用程序商店(AppStore)中选择一个或多个应用程序推荐给用户,用户可以选择安装上述应用程序。
设备驱动装置10还包括一个或多个通知单元210、220,其中每一通知单元唯一对应一硬件服务单元。如图1,通知单元210对应硬件服务单元110,通知单元220对应硬件服务单元120。通知单元210、220接收匹配单元500中标记单元520送出的匹配结果S5,该匹配结果S5中包括所有选定设备的设备接入信息和所有选定驱动程序的驱动描述信息。通知单元210、220根据与其相应的硬件服务单元110、120对应的设备类型,在匹配结果S5中选择与该设备类型相应的匹配结果S51、S52发送至硬件服务单元110、120。
具体而言,匹配单元500将匹配结果S5发送至所有的通知单元(通知单元210和通知单元220),由表2.2可知,匹配结果S5中包括设备A1的设备接入信息、设备A2的设备接入信息、设备B1的设备接入信息,以及驱动程序A1的驱动描述信息、驱动程序A2的驱动描述信息、驱动程序B1的驱动描述信息。通知单元210所对应的硬件服务单元110对应的设备类型为A,故,通知单元210将与设备类型A相应的匹配结果S51发送至硬件服务单元110。匹配结果S51为A1的设备接入信息、设备A2的设备接入信息和驱动程序A1的驱动描述信息、驱动程序A2的驱动描述信息。通知单元220与通知单元210类似,仅将匹配结果S52,即设备B1的设备接入信息、驱动程序B1的驱动描述信息,发送至硬件服务单元120。
硬件服务单元110、120,用于当设备接入所述操作系统时,所述硬件服务单元根据所述匹配结果S5加载所述选定驱动程序,以使所述应用程序与所述选定设备交互。每一硬件服务单元对应唯一设备类型。具体地,硬件服务单元110包括实例化单元111,设备查询接口112,以及设备选择接口113。硬件服务单元120包括实例化单元121,设备查询接口122,以及设备选择接口123。硬件服务单元110接收到匹配结果S51后,根据匹配结果S51中包含的选定驱动程序的驱动描述信息,即驱动程序A1的驱动描述信息、驱动程序A2的驱动描述信息,加载相应的驱动程序,即驱动程序A1和驱动程序A2。
请继续参考图2并结合图5,图5是图2所示设备驱动装置一实施例中硬件服务单元的示意图。以下结合硬件服务单元110详细说明其工作过程。实例化单元111,根据所述匹配结果S51生成一个或多个对应于所述选定设备的设备实例。如前所述,匹配结果S51为A1的设备接入信息、设备A2的设备接入信息和驱动程序A1的驱动描述信息、驱动程序A2的驱动描述信息。因此,选定设备分别为设备A1和设备A2,实例化单元111中生成对应于设备A1的设备实例A1,以及对应于设备A2的设备实例A2。
设备查询接口112,耦接所述实例化单元111,用于将所述实例化单元111中的所有设备实例,即设备实例A1和设备实例A2反馈给所述应用程序APP1。也就是说,应用程序APP1向设备查询接口112发送设备实例查询请求S10,设备查询接口112从实例化单元111中查找所有已经生成的设备实例(设备实例A1和设备实例A2),然后将设备实例信息S11反馈给应用程序APP1。
设备选择接口113,耦接所述实例化单元111,用于使所述应用程序选择一个或多个所述设备实例。硬件服务单元110根据所述应用程序APP1选择的设备实例,加载选定驱动程序,以实现所述应用程序APP1与所述选定设备交互。即,应用程序APP1可以选择设备实例A1,也可以选择设备实例A2。硬件服务单元110根据该应用程序所选择的设备实例,加载相应的驱动程序(驱动程序A1或驱动程序A2),至此,应用程序即可通过该加载的驱动程序与选定设备交互。下文将对实例化单元111、设备查询接口112、设备选择接口113的工作过程进行详细描述。
如前段所述,硬件服务单元110根据该应用程序APP1所选择的设备实例,加载相应的驱动程序(驱动程序A1或驱动程序A2)。具体地,当应用程序APP1需要与设备A1进行交互时,应用程序APP1向设备查询接口112发送设备实例查询请求S10,设备查询接口112从实例化单元111中查找所有已经生成的设备实例(设备实例A1),然后将设备实例信息S11反馈给应用程序APP1。应用程序APP1向设备选择接口113发送设备实例选择信息S12,硬件服务单元110在获得该设备实例选择信息S12后,加载对应于该设备实例选择信息S12的选定驱动程序A1,该设备实例A1根据该选定驱动程序A1执行相应动作并将返回结果S13发送至应用程序APP1。至此,应用程序APP1可以通过选定驱动程序A1访问设备实例A1,进而实现应用程序APP1与选定设备A1的交互。
硬件服务单元120的工作过程与硬件服务单元110类似,此不赘述。
在另一实施例中,硬件服务单元110、120可以直接由匹配单元500获得匹配结果S5。匹配结果S5中包括所有选定设备的设备接入信息和所有选定驱动程序的驱动描述信息,即包括设备A1的设备接入信息、设备A2的设备接入信息、设备B1的设备接入信息,以及驱动程序A1的驱动描述信息、驱动程序A2的驱动描述信息、驱动程序B1的驱动描述信息。
对于硬件服务单元110,其仅可加载与设备类型A对应的驱动程序,即驱动程序A1、……、驱动程序AN。因此,硬件服务单元110由匹配单元500接收到匹配结果S5后,仅加载驱动程序A1和驱动程序A2。实例化单元111生成设备实例A1、设备实例A2和设备实例B1。此时虽然在实例化单元111中生成了设备实例B1,但是由于硬件服务单元110并不能加载驱动程序B1,因此,应用程序APP1依然不能通过硬件服务单元110与设备B交互。应用程序APP1若要与设备B1交互,则需通过硬件服务单元120。
相应地,本发明技术方案还提供一种设备驱动方法,适于在基于Linux内核的操作系统中支持设备即插即用。
参阅图6,图6是本发明一实施例的设备驱动方法的流程图。所述设备驱动方法包括:
执行步骤S100,基于设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果。所述匹配结果包括选定驱动程序的驱动描述信息以及选定设备的设备接入信息。
执行步骤S200,根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互。以下结合实施例详细说明图6的方法流程。
参阅图7并结合图2,图7是本发明另一实施例的设备驱动方法的流程图。在本实施例中,在步骤S100基于设备接入信息和驱动描述信息确定选定驱动程序和选定设备之前,首选执行步骤S300,即分别由设备获取单元300获取设备接入信息,由驱动获取单元400获取驱动描述信息。设备接入信息和驱动描述信息的获取方式可参见设备驱动装置的相关叙述,此不赘述。
接着,设备获取单元300将设备接入信息发送至匹配单元500,驱动获取单元400将驱动描述信息发送至匹配单元500,在匹配单元500的比对单元510中执行步骤S1001,即比对设备接入信息和驱动描述信息是否匹配。所述驱动描述信息与所述设备接入信息匹配是指:所述驱动描述信息中包括与所述设备接入信息对应的设备类型、设备编号和生产厂商。设备接入信息和驱动描述信息的匹配过程详见前文关于设备驱动装置的相关叙述,此不赘述。
若设备接入信息和驱动描述信息不匹配,则执行步骤S400,该智能操作系统提示用户无相应的驱动程序。在另一实施例中,若设备接入信息和驱动描述信息不匹配,智能操作系统还可以从应用程序商店(AppStore)中选择一个或多个应用程序推荐给用户,用户可以选择安装上述应用程序。
若设备接入信息和驱动描述信息匹配,则在匹配单元500的标记单元520中执行步骤S1002,标记该驱动描述信息对应的驱动程序为选定驱动程序,并标记该设备接入信息对应的设备为选定设备。
继而,执行步骤S2001,硬件服务单元100、120的实例化单元111、121根据标记单元520中确定的选定设备,生成一个或多个对应于所述选定设备的设备实例。
执行步骤S2002,通过设备查询接口112、122,将实例化单元111、121中的设备实例分别反馈给所述应用程序APP1、APP2。具体地,以APP1为例,应用程序APP1向设备查询接口112发送设备实例查询请求S10,设备查询接口112从实例化单元111中查找所有已经生成的设备实例,然后将设备实例信息S11反馈给应用程序APP1。
执行步骤S2003,应用程序APP1选择一个或多个设备实例。
执行步骤S2004,根据所述应用程序APP1、APP2选择的设备实例,硬件服务单元110、120加载选定驱动程序,该设备实例根据该选定驱动程序执行相应动作并将返回结果发送至应用程序APP1、APP2。
至此,应用程序APP1可以通过选定驱动程序A1访问设备实例A1,进而实现应用程序APP1与选定设备A1的交互。
综上所述,本发明技术方案的设备驱动装置及方法,通过设备获取单元获得设备接入信息,并将设备接入信息与操作系统中的驱动程序的描述信息进行比对,得到选定设备和选定驱动程序,并通过通知单元将上述选定设备和选定驱动程序通知硬件服务单元,硬件服务单元即可加载选定驱动程序,以使所述应用程序与所述选定设备交互。实现了在智能操作系统中接入设备的即插即用。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (15)
1.一种设备驱动装置,适于在基于Linux内核的操作系统中支持设备即插即用,其特征在于,所述设备驱动装置包括:
一匹配单元,当所述设备接入所述操作系统时,根据设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果;以及
至少一个硬件服务单元,每一硬件服务单元对应唯一设备类型,用于根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互。
2.根据权利要求1所述的设备驱动装置,其特征在于,所述匹配结果包括选定驱动程序的驱动描述信息以及选定设备的设备接入信息。
3.根据权利要求1所述的设备驱动装置,其特征在于,所述设备驱动装置还包括:
至少一个通知单元,每一通知单元对应唯一一硬件服务单元,所述通知单元接收所述匹配结果,并根据与所述通知单元相应的硬件服务单元所对应的设备类型,将对应于该设备类型的匹配结果发送至相应的硬件服务单元。
4.根据权利要求1所述的设备驱动装置,其特征在于,所述设备驱动装置还包括:
一设备获取单元,耦接所述匹配单元,用于获取设备接入信息,所述设备接入信息包括设备类型、设备编号和生产厂商;
一驱动获取单元,耦接所述匹配单元,用于获取驱动描述信息。
5.根据权利要求1所述的设备驱动装置,其特征在于,所述匹配单元包括:
一比对单元,用于对所述设备接入信息和所述驱动描述信息进行比对;以及
一标记单元,耦接所述比对单元,用于在所述驱动描述信息与所述设备接入信息匹配时,标记该驱动描述信息对应的驱动程序为选定驱动程序,并标记该设备接入信息对应的设备为选定设备。
6.根据权利要求5所述的设备驱动装置,其特征在于,所述驱动描述信息与所述设备接入信息匹配是指:
所述驱动描述信息中包括与所述设备接入信息对应的设备类型、设备编号和生产厂商。
7.根据权利要求5所述的设备驱动装置,其特征在于,所述硬件服务单元包括:
实例化单元,根据所述匹配结果生成一个或多个对应于所述选定设备的设备实例。
8.根据权利要求7所述的设备驱动装置,其特征在于,所述硬件服务单元还包括:
设备查询接口,耦接所述实例化单元,用于将所述实例化单元中的设备实例反馈给所述应用程序。
9.根据权利要求8所述的设备驱动装置,其特征在于,所述硬件服务单元还包括:设备选择接口,耦接所述实例化单元,用于使所述应用程序选择一个或多个所述设备实例;
所述硬件服务单元根据所述应用程序选择的设备实例,加载选定驱动程序,以使所述应用程序与所述选定设备交互。
10.一种设备驱动方法,适于在基于Linux内核的操作系统中支持设备即插即用,其特征在于,所述方法包括:
基于设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果;
根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互。
11.根据权利要求10所述的设备驱动方法,其特征在于,所述方法还包括:
在所述确定选定驱动程序和选定设备的步骤前,获取设备接入信息和驱动描述信息。
12.根据权利要求10所述的设备驱动方法,其特征在于,所述基于设备接入信息和驱动描述信息确定选定驱动程序和选定设备,并生成匹配结果,包括:
比对设备接入信息和驱动描述信息;
在所述驱动描述信息与所述设备接入信息匹配时,标记该驱动描述信息对应的驱动程序为选定驱动程序,并标记该设备接入信息对应的设备为选定设备。
13.根据权利要求12所述的设备驱动方法,其特征在于,所述匹配结果包括选定驱动程序的驱动描述信息以及选定设备的设备接入信息。
14.根据权利要求12所述的设备驱动方法,其特征在于,所述驱动描述信息与所述设备接入信息匹配是指:
所述驱动描述信息中包括与所述设备接入信息对应的设备类型、设备编号和生产厂商。
15.根据权利要求12所述的设备驱动方法,其特征在于,所述根据所述匹配结果加载所述选定驱动程序,在不须重新启动所述操作系统的情况下,使所述应用程序与所述选定设备交互,包括:
根据所述匹配结果生成一个或多个对应于所述选定设备的设备实例;
将所述设备实例反馈给所述应用程序;
所述应用程序选择一个或多个所述设备实例;
根据所述应用程序选择的设备实例,加载选定驱动程序,以使所述应用程序与所述选定设备交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400344.6A CN105045733B (zh) | 2015-07-09 | 2015-07-09 | 设备驱动装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400344.6A CN105045733B (zh) | 2015-07-09 | 2015-07-09 | 设备驱动装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045733A true CN105045733A (zh) | 2015-11-11 |
CN105045733B CN105045733B (zh) | 2018-08-21 |
Family
ID=54452296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510400344.6A Active CN105045733B (zh) | 2015-07-09 | 2015-07-09 | 设备驱动装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045733B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015807A (zh) * | 2017-04-06 | 2017-08-04 | 青岛海信宽带多媒体技术有限公司 | 一种设备驱动管理方法 |
CN110457076A (zh) * | 2019-09-10 | 2019-11-15 | 广州市金其利信息科技有限公司 | 一种外设管理方法 |
CN110943968A (zh) * | 2018-09-25 | 2020-03-31 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
CN113190185A (zh) * | 2020-01-14 | 2021-07-30 | 深圳怡化电脑股份有限公司 | 应用程序和物理设备匹配方法、装置及终端设备 |
CN114398108A (zh) * | 2020-08-29 | 2022-04-26 | 华为技术有限公司 | 电子设备及其驱动加载方法、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609829A (zh) * | 2003-10-24 | 2005-04-27 | 英业达股份有限公司 | Linux操作系统下对USB设备即插即用的方法 |
CN1801086A (zh) * | 2006-01-17 | 2006-07-12 | 浙江大学 | 应用于Java操作系统中设备支持的实现方法 |
CN101488114A (zh) * | 2009-02-18 | 2009-07-22 | 北京飞天诚信科技有限公司 | Linux系统下USB设备的处理方法 |
CN102196308A (zh) * | 2011-05-19 | 2011-09-21 | 广东星海数字家庭产业技术研究院有限公司 | 一种基于数字电视的多硬件接口兼容驱动系统 |
US20120124596A1 (en) * | 2010-02-24 | 2012-05-17 | Luke Mulcahy | Device driver for a device |
CN102662708A (zh) * | 2012-03-31 | 2012-09-12 | 中标软件有限公司 | 一种Linux操作系统及其显卡驱动装置 |
-
2015
- 2015-07-09 CN CN201510400344.6A patent/CN105045733B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609829A (zh) * | 2003-10-24 | 2005-04-27 | 英业达股份有限公司 | Linux操作系统下对USB设备即插即用的方法 |
CN1801086A (zh) * | 2006-01-17 | 2006-07-12 | 浙江大学 | 应用于Java操作系统中设备支持的实现方法 |
CN101488114A (zh) * | 2009-02-18 | 2009-07-22 | 北京飞天诚信科技有限公司 | Linux系统下USB设备的处理方法 |
US20120124596A1 (en) * | 2010-02-24 | 2012-05-17 | Luke Mulcahy | Device driver for a device |
CN102196308A (zh) * | 2011-05-19 | 2011-09-21 | 广东星海数字家庭产业技术研究院有限公司 | 一种基于数字电视的多硬件接口兼容驱动系统 |
CN102662708A (zh) * | 2012-03-31 | 2012-09-12 | 中标软件有限公司 | 一种Linux操作系统及其显卡驱动装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015807A (zh) * | 2017-04-06 | 2017-08-04 | 青岛海信宽带多媒体技术有限公司 | 一种设备驱动管理方法 |
CN110943968A (zh) * | 2018-09-25 | 2020-03-31 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
CN110943968B (zh) * | 2018-09-25 | 2022-04-26 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
CN110457076A (zh) * | 2019-09-10 | 2019-11-15 | 广州市金其利信息科技有限公司 | 一种外设管理方法 |
CN110457076B (zh) * | 2019-09-10 | 2022-08-12 | 广州市金其利信息科技有限公司 | 一种外设管理方法 |
CN113190185A (zh) * | 2020-01-14 | 2021-07-30 | 深圳怡化电脑股份有限公司 | 应用程序和物理设备匹配方法、装置及终端设备 |
CN114398108A (zh) * | 2020-08-29 | 2022-04-26 | 华为技术有限公司 | 电子设备及其驱动加载方法、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105045733B (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045733A (zh) | 设备驱动装置及方法 | |
CN104932926A (zh) | 智能操作系统平台中实现设备与驱动动态匹配的系统及方法 | |
EP2950203B1 (en) | Application scenario identification method, power consumption management method and apparatus and terminal device | |
EP2705422B1 (en) | Dynamically redirecting boot to another operating system | |
US20070061818A1 (en) | Detection of devices during operating system setup | |
CN110134446B (zh) | 启动pcie设备扫描的方法 | |
CN100451966C (zh) | 发现数据处理系统内的硬件的方法和设备 | |
CN102135893A (zh) | 将操作系统集成到bios芯片及启动服务器上操作系统的方法 | |
KR101920239B1 (ko) | 파일 시스템 기능을 제공하는 단말기의 장치 및 방법 | |
CN101650660A (zh) | 从中央存储装置引导计算机系统 | |
CN1744040A (zh) | 在多种存储介质上完整运行操作系统的方法及操作系统 | |
EP2735966A2 (en) | Electronic apparatus, method of updating firmware, and computer-readable recording medium | |
CN103677880A (zh) | 一种信息处理方法及电子设备 | |
CN102306117A (zh) | 一种硬件检测自动报警的方法及装置 | |
CN104679540A (zh) | 计算机系统与计算机系统启动方法 | |
US20130268744A1 (en) | Method for detecting hardware | |
CN103593281A (zh) | 测试系统及测试方法 | |
CN103514015A (zh) | 一种从存储介质中启动操作系统的方法和装置 | |
US20200205001A1 (en) | Electronic apparatus and method of executing application program | |
CN104067223A (zh) | 用于通过提供迟钝输入/输出抽象缩减平台引导时间的方法 | |
CN102652427B (zh) | 用户信息登记程序和用户信息登记方法 | |
US20120041614A1 (en) | Fan speed control system and method | |
CN113411225B (zh) | 基于云主机的qga服务管理方法、装置、设备及介质 | |
US20120198436A1 (en) | Compatible Operating System | |
KR101512296B1 (ko) | 어플리케이션 연관 파일 처리 단말 및 단말의 어플리케이션 연관 파일 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |