CN107015807B - 一种设备驱动管理方法 - Google Patents
一种设备驱动管理方法 Download PDFInfo
- Publication number
- CN107015807B CN107015807B CN201710218893.0A CN201710218893A CN107015807B CN 107015807 B CN107015807 B CN 107015807B CN 201710218893 A CN201710218893 A CN 201710218893A CN 107015807 B CN107015807 B CN 107015807B
- Authority
- CN
- China
- Prior art keywords
- hardware
- kernel
- description list
- hardware description
- driver
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种设备驱动管理方法,操作系统的内核与驱动分离,系统启动程序运行时,进行硬件的扫描和识别,将识别的硬件信息形成硬件描述列表;系统启动程序运行后,加载运行内核,系统启动程序将硬件描述列表传递给内核,内核根据硬件描述列表自动配置加载硬件的驱动。本发明可以根据硬件种类和规格进行自动配置和管理驱动,可以根据不同的硬件规格配置和管理板级设备,保证系统在不同的硬件平台上稳定运行。本发明内核只配置加载针对当前硬件的驱动管理程序,精简大量无用的板级总线和设备驱动管理,提高系统工作效率,可以实现系统的快速升级和部署。本发明还可提高硬件的可重用性,提高硬件的生命周期,减少无端的浪费和电子污染。
Description
技术领域
本发明属于操作系统软件技术领域,特别是涉及一种设备驱动管理方法。
背景技术
智能设备系统中,软件和硬件缺一不可。每种硬件在其整个生命周期内只能运行预先设定好的操作系统和应用程序,如果预先设定的操作系统和应用程序无法维护后,那么该硬件的功能就无法很好的适应新业务的扩展,随之寿命也会终止。例如,智能手机会定时进行操作系统更新或者功能升级,操作系统包括内核和驱动,操作系统更新或者功能升级时,内核和驱动程序会同步更新和升级,但是,如果更新和升级后的驱动程序版本较高,硬件设备达不到驱动程序的要求,驱动程序与硬件设备不匹配,则会导致智能手机无法正常升级使用,造成了智能机淘汰速度的加快,产生大量的电子垃圾,严重影响环境,并造成无端的人力和财力的浪费。
发明内容
本发明的目的在于提供一种设备驱动管理方法,解决了现有内核和驱动同时更新和升级造成驱动程序与硬件设备不匹配,导致智能设备无法正常工作的技术问题。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种设备驱动管理方法,操作系统的内核与驱动分离,所述方法为:
系统启动程序运行时,进行芯片和硬件设备的扫描和识别,并将识别的硬件信息形成硬件描述列表;
系统启动程序运行后,加载运行内核,所述系统启动程序将硬件描述列表传递给所述内核,所述内核根据所述硬件描述列表自动配置加载硬件的驱动。
与现有技术相比,本发明的优点和积极效果是:本发明操作系统的内核与驱动分离,在系统启动程序运行时,对硬件进行识别,并将识别的硬件形成硬件描述列表,系统刚启动程序运行后,加载运行内核,系统启动程序将硬件描述列表传递给内核,内核根据硬件描述列表自动配置加载硬件的驱动。本发明可以根据硬件种类和规格进行自动配置和管理驱动,可以根据不同的硬件规格配置和管理板级设备,保证系统在不同的硬件平台上稳定运行。本发明内核只配置加载针对当前硬件的驱动管理程序,精简大量无用的板级总线和设备驱动管理,提高系统工作效率,可以实现系统的快速升级和部署。本发明还可提高硬件的可重用性,避免由于驱动软件升级与硬件不匹配造成无法使用的问题,提高硬件的生命周期,减少无端的浪费和电子污染。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1是本发明具体实施例的流程图。
具体实施方式
本发明所说的硬件包括关键设备和外围设备,其中,关键设备是指组成智能设备的各种芯片,例如控制类芯片、存储类芯片、电源管理类芯片和通信类芯片等;外围设备是指与智能设备可插拔的输入设备、输出设备等。输出设备可以是显示屏、打印机、音箱等;输入设备可以是鼠标、键盘、摄像头等。
本实施例提出了一种设备驱动管理方法,将操作系统的内核与驱动分离,采用硬件描述列表对硬件驱动进行管理。
内核与驱动分离的作用是:系统更新时,可分别或同时进行内核与驱动的更新。由于内核与驱动彻底分离,因而,内核的更新不依赖与驱动的更新,内核的更新不会出现问题,驱动则根据硬件信息进行更新。驱动更新时,若驱动程序的版本高于硬件现有驱动程序的版本,则对硬件的驱动程序进行更新,若更新成功即可,若更新失败,则硬件仍然配置加载现有的驱动程序的版本,以保证硬件与驱动程序的匹配,提高硬件的使用寿命。
采用硬件描述列表对硬件驱动进行管理的方法是:系统启动程序运行时,进行硬件的扫描和识别,并将识别的硬件信息形成硬件描述列表;
系统启动程序运行后,加载运行内核,系统启动程序将硬件描述列表传递给内核,内核根据硬件描述列表自动配置加载硬件的驱动。
如果内核无法正常加载硬件的驱动,则将未能正常加载驱动的硬件告知用户,提示用户通过网络或手动或者其他的方式来管理驱动。
具体的,智能设备在启动过程中,也即系统启动程序运行时,系统启动程序通过总线扫描硬件,并对扫描的硬件进行识别,得到硬件信息,然后将识别的硬件信息形成硬件描述列表。其中,硬件信息存储在硬件的存储区域中。系统启动程序运行后,加载运行内核,此时,系统启动程序将硬件描述列表传递给操作系统的内核,内核根据硬件描述列表自动配置加载硬件的驱动。其中,硬件信息根据硬件类型分为关键设备信息和外围设备信息,关键设备信息主要包括芯片规格的参数,外围设备信息主要包括外围设备规格的参数。内核根据硬件描述列表自动配置加载硬件的驱动包括加载关键设备和外围设备的驱动。
硬件描述列表包括硬件的类型、型号、设备ID信息、总线类别等信息。例如:
设备类型1 {
设备描述 = "设备的主要功能描述";
设备厂商描述符 = "厂商ID";
设备产品描述符 = "产品ID";
设备总线类型 = "PCI I2C USB";
设备驱动状态 = "sucess or failure";
设备占用系统中断资源 = " ";
设备占用系统GPIO资源 = " ";
设备工作频率 = " ";
子设备1 {
}
子设备2 {
}
…
};
设备类型2 {
};
…
智能设备每次启动时,也即系统启动程序每次运行时都会进行硬件的识别。为了加快启动过程,智能设备每次启动完毕后,也即内核启动完毕后,将硬件描述列表存储至存储设备,系统启动程序每次运行时都会进行硬件的识别,并将识别的硬件信息形成新的硬件描述列表,内核将新的硬件描述列表与存储设备中存储的硬件描述列表进行比较,如果相同,内核按照前一次加载模式快速加载,如果不相同,根据新添加的硬件或新的硬件描述列表重新自动配置加载硬件的驱动。
系统启动程序运行后,加载存储于存储设备的内核时,如果因为存储设备在系统启动程序里面的驱动无法正常工作,会造成内核加载失败,此时,开启加载外置系统模式,即,加载存储于兼容性好的外围存储设备的内核。由于USB设备为标准通用设备、兼容性好,一般通过外围USB设备进行内核的存储,加载存储于外围USB设备中的内核均会成功。加载存储于兼容性好的外围存储设备(USB设备)的内核成功后,再搜寻和安装存储内核的存储设备的驱动。
内核启动完毕,配置加载硬件的驱动完毕后,启动设备动态监测进程以实时管理硬件,例如,硬件的创建、加载、卸载,以及新加入设备的动态识别和管理,以及驱动的加载和更新。启动设备动态监测进程实时将硬件变动信息同步至存储设备中的硬件描述列表,以使硬件描述列表能够反映最新的硬件状态。如果动态监测进程发现有硬件移除,则将移除硬件的硬件信息从硬件描述列表中移除;如果动态监测进程发现有硬件插入,则将插入硬件的硬件信息增加至硬件描述列表,同时加载插入硬件的驱动,如果设备动态监测进程无法正常加载硬件的驱动,则将未能正常加载驱动的硬件告知用户,提示用户通过手动或者其他的方式来管理驱动。
设备动态监测进程还用于监控驱动的运行状态是否稳定。
设备动态监测进程主要用于管理外围设备的驱动,而关键设备的驱动的管理主要由内核负责完成。
在系统初次安装时,系统启动程序把扫描和识别的关键设备和外围设备信息保存并传递给内核。由于关键设备都是智能设备内的固定硬件,系统启动程序可以准确地扫描和识别关键设备。但是,由于外围设备大多是用户自己添加的热插拔设备,因而,系统启动程序扫描和识别外围设备时,会有外围设备信息识别不到或识别不全的情况,此时,系统启动程序生成不能识别的外围设备信息,例如:外围设备挂载总线和接口(外围设备信息识别不到的情形)、外围设备的厂商和产品信息(外围设备信息识别不全的情形),并将不能识别的外围设备信息保存在硬件描述列表中。等系统安装完成后,根据不能识别的外围设备信息对不能识别的外围设备驱动进行处理。若外围设备信息识别不全,首先会根据外围设备的厂商和产品信息,尝试联网搜索设备更新数据库,在网络不通或者没有搜索到外围设备或者外围设备信息识别不到的情况下,将不能识别的外围设备信息发送给用户态,用户可以自行咨询设备厂商安装驱动。安装完成后,每次外围设备变动后,如果是即插即用设备,启动设备动态监测进程会识别外围设备信息,将识别的外围设备信息更新到硬件描述列表并自动搜索加载外围设备驱动,等下次重新启动时,内核会根据更新的硬件描述列表加载和管理驱动。如果是其他非即插即用设备,需要断电重启进入系统后,再搜索安装驱动。一般外围设备驱动的管理采用网络自动搜查的方式。
驱动采用用户空间运行的服务方式,并且能够跟内核实现快速的交互以及隔离与其他系统模块的耦合。设备动态监测进程,为驱动运行提供了隔离环境,如果驱动程序出错,不会导致内核崩溃,提高系统的健壮性;并且可以随着不同硬件设备的出现和更新,提供灵活性和扩展性。
设备动态监测进程采用专有内存池来管理外围设备驱动,并且为每个外围设备驱动提供相互隔离的内存空间。
硬件变动时,动态监测进程形成变更标识,并将变更标识发送至系统启动程序。系统启动程序再次运行时,获取变更标识并重新扫描识别硬件。
为了保证智能设备系统能够正常启动,系统启动程序运行之前,首先运行启动固件,启动固件具有统一的规范和标准,启动固件存储有系统启动程序存储的起始地址。启动固件是在板级主芯片内置或外置的一块统一启动rom固件,板级芯片上电后,首先运行位于板级主芯片内置或者外置的统一启动rom固件(简称startrom),startrom中存储有统一启动程序。startrom引导代码进行芯片时钟和系统的初始化操作,完成最小系统环境创建完成后,再加载外置存储设备起始地址处的系统启动程序,系统启动程序例如是uboot或者BIOS、UEFI等,外置存储设备起始地址开始的一小段区域划分为统一存储区域,即,startrom可以统一识别并加载此地址处的系统启动程序。
如图1所示,以智能设备的启动过程为例进行说明:
S1、系统上电。
S2、运行启动固件中的统一引导代码。
S3、startrom统一引导代码进行芯片时钟和系统的初始化操作,完成最小系统环境创建。
S4、统一引导代码加载外置存储设备起始地址处的系统启动程序。
S5、系统启动程序扫描和识别硬件,并将识别的硬件信息形成硬件描述列表。
S6、加载运行存储设备中的内核,并判断是否成功,若失败,则进入步骤S7,否则,进入步骤S8。
S7、加载存储于外围USB设备中的内核,再搜寻和安装存储内核的存储设备的驱动,进入步骤S8。
S8、内核读取系统启动程序形成的硬件描述列表。
S9、根据硬件描述列表自动配置加载硬件的驱动,并判断是否成功,若失败,进入步骤S10,否则,进入步骤S11。
S10、将更新失败的硬件标识出来,并发行通知给用户态,用户态通过网络或者手动更新驱动。进入步骤S12。
S11、将硬件描述列表存储至存储设备。
S12、设备动态监测进程实时管理硬件,实时更新硬件描述列表。
S13、如果设备动态监测进程无法正常加载硬件的驱动。
S14、将未能正常加载驱动的硬件告知用户,提示用户通过手动或者其他的方式来管理驱动。
本实施例设备驱动管理方法,可以有效的提高硬件设备的系统移植难度,提高硬件的使用寿命和可重用度,在硬件物理期限的周期内,可以最大发挥其使用价值。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种设备驱动管理方法,其特征在于,操作系统的内核与驱动分离,所述方法为:
系统启动程序运行时,进行硬件的扫描和识别,并将识别的硬件信息形成硬件描述列表;
系统启动程序运行后,加载运行内核,所述系统启动程序将硬件描述列表传递给所述内核,所述内核根据所述硬件描述列表自动配置加载硬件的驱动;
所述内核启动完毕后,将所述硬件描述列表存储至存储设备;
内核将获取的硬件描述列表与存储设备中存储的硬件描述列表进行比较,如果相同,内核按照前一次加载模式快速加载,如果不相同,根据新的硬件描述列表自动配置加载硬件的驱动。
2.根据权利要求1所述的设备驱动管理方法,其特征在于,所述内核启动完毕后,启动设备动态监测进程以实时管理硬件,并实时将硬件变动信息同步至所述存储设备中的硬件描述列表。
3.根据权利要求2所述的设备驱动管理方法,其特征在于,所述硬件变动时,所述动态监测进程形成变更标识,并将所述变更标识发送至所述系统启动程序。
4.根据权利要求2所述的设备驱动管理方法,其特征在于,如果设备动态监测进程无法正常加载硬件的驱动,则将未能正常加载驱动的硬件告知用户。
5.根据权利要求1所述的设备驱动管理方法,其特征在于,所述系统启动程序运行后,加载存储于存储设备的内核时,如果加载失败,则加载存储于兼容性好的外围存储设备的内核。
6.根据权利要求5所述的设备驱动管理方法,其特征在于,加载存储于兼容性好的外围存储设备的内核成功后,再搜寻和安装存储内核的存储设备的驱动。
7.根据权利要求1所述的设备驱动管理方法,其特征在于,所述系统启动程序运行之前,首先运行启动固件,所述启动固件具有统一的规范和标准,所述启动固件中的引导代码进行芯片时钟和系统的初始化,完成最小系统环境的创建,再加载系统启动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218893.0A CN107015807B (zh) | 2017-04-06 | 2017-04-06 | 一种设备驱动管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218893.0A CN107015807B (zh) | 2017-04-06 | 2017-04-06 | 一种设备驱动管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015807A CN107015807A (zh) | 2017-08-04 |
CN107015807B true CN107015807B (zh) | 2020-07-10 |
Family
ID=59445162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218893.0A Active CN107015807B (zh) | 2017-04-06 | 2017-04-06 | 一种设备驱动管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015807B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577570A (zh) * | 2017-09-19 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种应用设备的测试方法及装置 |
CN111045739B (zh) * | 2019-12-03 | 2022-06-07 | 福州瑞芯微电子股份有限公司 | 基于启动程序的固件引导方法、介质及设备 |
CN111414202B (zh) * | 2020-01-02 | 2022-11-22 | 杭州迦智科技有限公司 | 硬件运行管理方法、系统、管理子系统、电子设备和存储介质 |
CN111651144B (zh) * | 2020-06-05 | 2022-07-01 | 上海航天计算机技术研究所 | 一种基于实时操作系统的星载驱动框架设计方法 |
CN111722870B (zh) * | 2020-06-10 | 2023-05-02 | 中国第一汽车股份有限公司 | 一种电控单元的驱动配置方法、装置、设备及存储介质 |
CN112130919A (zh) * | 2020-09-28 | 2020-12-25 | 山东超越数控电子股份有限公司 | 一种指纹设备自适应方法、计算机以及指纹设备 |
CN112230999B (zh) * | 2020-10-14 | 2023-07-28 | 天津津航计算技术研究所 | 一种解决VxWorks图形开发中PS2设备加载失败的方法 |
CN113268275B (zh) * | 2021-07-19 | 2021-09-28 | 成都菁蓉联创科技有限公司 | 一种基于微内核的硬件设备驱动系统及其驱动方法 |
CN116149759B (zh) * | 2023-04-20 | 2023-07-14 | 深圳市吉方工控有限公司 | Uefi驱动卸载方法、装置、电子设备及可读存储介质 |
CN116795452B (zh) * | 2023-07-20 | 2024-04-02 | 龙芯中科(北京)信息技术有限公司 | 驱动程序兼容性的确定方法、装置及设备 |
CN118012535B (zh) * | 2024-04-03 | 2024-06-07 | 商飞软件有限公司 | 一种机载设备的驱动系统及其驱动方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246453A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
CN2921952Y (zh) * | 2005-11-09 | 2007-07-11 | 中兴通讯股份有限公司 | 一种可智能加载硬件的移动终端 |
CN102999353B (zh) * | 2012-11-15 | 2016-02-03 | 青岛海信宽带多媒体技术有限公司 | 创建设备节点的方法及装置 |
US20170093971A1 (en) * | 2015-09-30 | 2017-03-30 | Cloudendure Ltd. | System and method for orchestrating replicated components in a replicated cloud based computing environment |
CN105045733B (zh) * | 2015-07-09 | 2018-08-21 | 上海联彤网络通讯技术有限公司 | 设备驱动装置及方法 |
-
2017
- 2017-04-06 CN CN201710218893.0A patent/CN107015807B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107015807A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015807B (zh) | 一种设备驱动管理方法 | |
US7743242B2 (en) | Method and system for automatic generation of operating system boot images | |
CN108170451B (zh) | 一种服务器bmc控制bios版本升级的方法及系统 | |
CN107589994B (zh) | 应用进程优先级管理的方法、设备、系统及存储介质 | |
US20030167354A1 (en) | Method and apparatus for automated operating systems upgrade | |
US8171276B2 (en) | Minimal startup mode for performing multiple-reboot configuration | |
CN110753088B (zh) | 一种系统部署方法及装置 | |
CN101689116A (zh) | 用于更新设备驱动程序的系统和方法 | |
CN111475172B (zh) | 一种裸机部署方法及装置 | |
WO2020094065A1 (zh) | 一种车载Tbox升级的方法、装置、设备以及存储介质 | |
CN104657161A (zh) | 移动终端固件更新方法及装置 | |
CN112162794B (zh) | 一种单板启动方法、装置、单板以及网络设备 | |
CN111240753A (zh) | 引导程序的加载方法、存储介质及嵌入式终端 | |
CN109710297A (zh) | 一种设备整体或分模块进行升级和回退方法 | |
EP3043262A1 (en) | Method and device for remote base station version installation | |
CN106484442B (zh) | 服务器系统及更新开机映像档的方法 | |
US20120278509A1 (en) | Updating device and method through a baseboard management controller thereof | |
CN115328562A (zh) | 操作系统安装/升级方法、系统、服务器、bmc及uefi | |
WO2014102301A1 (en) | Method to provide connectivity capabilities to a computing device | |
CN113721959A (zh) | 一种信息处理方法、装置及电子设备 | |
CN111142949A (zh) | 一种信息处理方法和电子设备 | |
CN110780943B (zh) | 一种从设备统一固件的方法及系统 | |
CN107562466B (zh) | 计算机操作系统安装的方法及设备 | |
CN116541104B (zh) | 程序管理方法、控制装置、平台、设备以及存储介质 | |
CN106126302A (zh) | 一种器件更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |