CN1303542C - Linux操作系统下对USB设备即插即用的方法 - Google Patents
Linux操作系统下对USB设备即插即用的方法 Download PDFInfo
- Publication number
- CN1303542C CN1303542C CNB2003101027978A CN200310102797A CN1303542C CN 1303542 C CN1303542 C CN 1303542C CN B2003101027978 A CNB2003101027978 A CN B2003101027978A CN 200310102797 A CN200310102797 A CN 200310102797A CN 1303542 C CN1303542 C CN 1303542C
- Authority
- CN
- China
- Prior art keywords
- usb device
- usb
- equipment
- application program
- linux
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种Linux操作系统下对USB设备即插即用的方法,首先储存多个USB设备驱动程序并生成一设备列表,接着设置相应的配置文件,根据配置文件从系统核心获得USB设备接入消息,分析并识别该接入设备的品牌,读取设备型号,查找设备驱动程序,然后自动加载驱动程序并将该设备的具体信息告知应用程序,本发明在Linux操作系统与应用程序之间建立了联系管道,从而使应用程序可以及时了解USB设备的插入与移除,无需用户干预而随意使用USB设备。
Description
技术领域
本发明涉及一种USB设备即插即用的方法,尤其是关于一种Linux操作系统下对USB设备即插即用的方法。
背景技术
目前,随着Linux操作系统的风行,使用Linux的个人和行业越来越多,针对Linux而开发的应用程序也是越来越多。另一方面,通用串行总线(Universal Serial Bus,USB)作为新一代的外围设备接口,由于其传输速率比起个人计算机所使用的并行端口或是串行端口都快了许多,对于计算机设备与外围接口的传输效率有了显著的提升,因此,一经面市便得到了广泛的应用。
然而,由于历史的原因,Linux操作系统的兼容性并不是特别出色。当USB设备接入到运行在Linux操作系统上的计算机时,虽然操作系统核心(Kernel)能够侦测到USB设备的插入或移除,但应用程序却无法得到这些消息,也就是说,核心和应用程序之间缺乏联系的管道,这就导致在使用应用程序时,需要用户手工干预来选择和配置USB设备。
反观Windows操作系统所提供的功能,在Windows2000以后,对于USB设备的检测功能就已经做得很好了,尤其是对于一些标准的USB存储设备,只需要插入就能识别使用,但Windows系统与Linux系统对硬件的即插即用的支持技术是完全不同的,况且,Windows也还存在很多不尽如人意的地方,如当一台USB打印机插入时,Windows系统能够提示用户插入的是哪个厂家的打印机,是什么型号的,却还需要用户选择驱动程序,或者需要用户独立安装该打印机的驱动程序,这就增加了用户的负担,还增加了用户操作失误导致的风险。
如何在Linux操作系统与应用程序之间建立一个联系的管道,使应用程序可以及时了解到USB设备的插入与移除,自动装卸载设备驱动程序,无需用户干预而随意使用USB设备,遂成为一业界亟待解决的问题。
发明内容
本发明为了解决上述问题而提供了一种Linux操作系统下对USB设备即插即用的方法,在Linux操作系统与应用程序之间建立了联系管道,使应用程序可以及时了解到USB设备的插入与移除,自动装卸载设备驱动程序,无需用户干预。
本发明提供了一种Linux操作系统下对USB设备即插即用的方法,通过在系统核心与应用程序之间建立一守护进程(Process),从而使应用程序实时了解USB设备的连接情况,该方法包括:储存多个USB设备驱动程序并生成一设备列表;为USB设备支持设置相应的配置文件;根据该配置文件从Linux系统核心获得USB设备接入消息;对该消息进行分析并识别该接入设备的品牌;读取该设备的内部信息,以获取其型号;根据该设备品牌及型号在系统中查找与其对应的设备驱动程序;自动加载该设备驱动程序;将该设备的具体信息告知应用程序。
本发明的技术方案是这样实现的:
一种Linux操作系统下对USB设备即插即用的方法,其特征在于,通过在系统核心与应用程序之间建立一守护进程(Process),从而使应用程序实时了解USB设备的连接情况,该方法包括:
储存多个USB设备驱动程序并生成一设备列表;
为USB设备支持设置相应的配置文件;
根据该配置文件从Linux系统核心获得USB设备接入消息;
对该消息进行分析并识别该接入设备的品牌;
读取该设备的内部信息,以获取其型号;
根据该设备品牌及型号在系统中查找与其对应的设备驱动程序;
自动加载该设备驱动程序;
将该设备的具体信息告知应用程序。
其中,该为USB设备支持设置相应的配置文件的步骤,是通过在编译系统核心时选取支持USB设备的编译选项实现的。
其中,该设备接入的消息是以临时文件的形式储存与传送的。
其中,该对消息进行分析的步骤,是通过字符匹配而查找出使用者要安装的设备。
其中,该识别接入设备的品牌的步骤,是根据分析结果而得到设备的品牌信息。
其中,该读取该设备内部信息的步骤,是通过执行Linux下的ioctl函数来获得硬件的返回信息而实现的。
其中,该查找设备驱动程序的步骤,是根据分析结果通过该设备列表进行查询。
其中,该将设备的具体信息告知应用程序的步骤,是通过系统内部函数呼叫而实现的。
其中,当该USB设备被移除时,还包括如下步骤:
从Linux系统核心获得USB设备移除的消息;
比较设备列表,获知移动设备的具体信息;及
通知应用程序不再有该USB设备。
本发明由于在Linux操作系统与应用程序之间建立了一个守护进程,从而使得应用程序可以及时了解到USB设备的插入与移除,自动装卸载设备驱动程序,无需用户干预而随意使用USB设备。
附图说明
图1为本发明的Linux操作系统下对USB设备即插即用的方法流程图;
图2为本发明所提供的USB设备接入时的主要操作示意图;及
图3为本发明所提供的USB设备移除时的主要操作示意图。
其中,附图标记说明如下:
步骤101储存多个USB设备驱动程序并生成一设备列表;
步骤102为USB设备支持设置相应的配置文件;
步骤103根据该配置文件从Linux系统核心获得USB设备接入消息;
步骤104对该消息进行分析并识别该接入设备的品牌;
步骤105读取该设备的内部信息以获取其型号;
步骤106根据该设备品牌及型号在系统中查找与其对应的设备驱动程序;
步骤107自动加载该设备驱动程序;
步骤108将该设备的具体信息告知应用程序。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的描述。
本发明提供了一种Linux操作系统下对USB设备即插即用的方法,通过在系统核心与应用程序之间建立一守护进程(Process),从而使应用程序实时了解USB设备的连接情况,如图1所示,该方法包括:储存多个USB设备驱动程序并生成一设备列表(步骤101);为USB设备支持设置相应的配置文件(步骤102);根据该配置文件从Linux系统核心获得USB设备接入消息(步骤103);对该消息进行分析并识别该接入设备的品牌(步骤104);读取该设备的内部信息,以获取其型号(步骤105);根据该设备品牌及型号在系统中查找与其对应的设备驱动程序(步骤106);自动加载该设备驱动程序(步骤107);将该设备的具体信息告知应用程序(步骤108)。
为了可以及时从系统核心获得设备接入信息,可以在编译核心时选取支持USB设备(或者需要安装的其它设备)的编译选项,这个选取动作是通过选取相应协议(配置文件)来完成的,该核心的版本号应当高于2.4.18-3。
设备接入的消息是以临时文件的形式储存与传送的。对消息所进行的分析,是通过字符匹配而查找出使用者想要安装的设备。然后根据分析结果而得到设备的品牌信息。
在得到分析结果后,就可以根据设备列表的设备编号进行查找,由此找到驱动程序存放的相应目录。
以安装一Epson USB打印机为例,当Epson打印机插入时,Linux操作系统的核心能够侦测到USB设备的插入,但应用程序却不知道,因此,本发明通过建立一守护进程,就可以首先从核心获得有关设备的接入消息,如图2所示,通过分析该消息,识别出该设备为Epson品牌的打印机,但还无法确认其型号,然后通过Linux下的ioctl函数调用,向硬件设备发送命令,读取该打印机返回的内部信息,从而获知该打印机为C41UX型号,接着,在系统中查询该型号的打印机驱动程序,如果找到了的话,就自动加载该打印机驱动程序USB printer,并将打印机的具体型号通过内部函数呼叫告知打印服务程序,此时,应用程序可以通过通用的接口打印了。
为了获得最大限度的适用性,可以事先在系统中安装好大量常见型号的USB设备的驱动程序,这样就可以应付一般常见的使用者需求了。
当应用程序不再需要打印机时,应用程序通过统一的接口告诉守护进程,由守护进程卸载Epson打印机的驱动,并更新设备列表。
在应用程序运行过程中,如果拔除了Epson打印机,换上另外的打印机,此时,守护进程自动卸载Epson打印机的驱动程序,换成相应打印机的驱动程序,对于应用程序来说,打印机是透明的,不影响应用程序的打印功能。
如图3所示,当Epson打印机拔除时,守护进程获得该设备的移除消息,通过比较设备列表,获知移除设备的具体信息,通知应用程序不再有Epson打印机,这样,当用户使用打印功能时,应用程序可以告知用户没有打印机。守护进程同时卸载Epson打印机的驱动模块。
以上所述仅为本发明其中的较佳实施例而已,并非用来限定本发明的实施范围;即凡依本发明所作的均等变化与修饰,皆应属于本发明的专利保护范围之内。
Claims (3)
1.一种Linux操作系统下对USB设备即插即用的方法,其特征在于,通过在系统核心与应用程序之间建立一守护进程,从而使应用程序实时了解USB设备的连接情况,该方法包括:
储存多个USB设备驱动程序并生成一设备列表;
为USB设备支持设置相应的配置文件;
根据该配置文件从Linux系统核心获得以临时文件的形式储存与传送的USB设备接入消息;
对该消息进行分析,即,通过字符匹配查找出使用者要安装的设备,并根据分析结果得到该设备的品牌信息;
通过执行Linux下的ioctl来获得该设备的返回信息,以获取其型号;
根据该设备的品牌及型号在设备列表中查找与其对应的设备驱动程序;
自动加载该设备驱动程序;
通过系统内部函数呼叫将该设备的具体信息告知应用程序。
2.如权利要求1所述的Linux操作系统下对USB设备即插即用的方法,其特征在于,该为USB设备支持设置相应的配置文件的步骤,是通过在编译系统核心时选取支持USB设备的编译选项实现的。
3.如权利要求1所述的Linux操作系统下对USB设备即插即用的方法,其特征在于,当该USB设备被移除时,还包括如下步骤:
从Linux系统核心获得USB设备移除的消息;
比较设备列表,获知移动设备的具体信息;及
通知应用程序不再有该USB设备。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNB2003101027978A CN1303542C (zh) | 2003-10-24 | 2003-10-24 | Linux操作系统下对USB设备即插即用的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNB2003101027978A CN1303542C (zh) | 2003-10-24 | 2003-10-24 | Linux操作系统下对USB设备即插即用的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1609829A CN1609829A (zh) | 2005-04-27 |
| CN1303542C true CN1303542C (zh) | 2007-03-07 |
Family
ID=34756456
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB2003101027978A Expired - Fee Related CN1303542C (zh) | 2003-10-24 | 2003-10-24 | Linux操作系统下对USB设备即插即用的方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1303542C (zh) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101292224B (zh) * | 2005-08-23 | 2015-05-20 | Mcci公司 | 用于在用户应用和关联外围设备之间通信的驱动器系统 |
| CN100367253C (zh) * | 2005-09-08 | 2008-02-06 | 中国工商银行股份有限公司 | 一种扩展外设的方法及系统 |
| CN100386751C (zh) * | 2006-05-30 | 2008-05-07 | 北京飞天诚信科技有限公司 | 一种usb设备自动初始化的方法及装置 |
| CN1976279B (zh) * | 2006-12-04 | 2010-10-06 | 北京飞天诚信科技有限公司 | 一种自动监控和清理的智能密钥系统及其工作方法 |
| CN100474856C (zh) * | 2007-03-30 | 2009-04-01 | 北京呼啦在线传媒科技有限公司 | 自动识别用户移动终端设备型号并提供服务和内容的方法 |
| CN101533648B (zh) * | 2009-04-23 | 2012-06-13 | 广州番禺巨大汽车音响设备有限公司 | 一种实现即插即用的数字家庭网络硬盘系统及方法 |
| CN101710289B (zh) * | 2009-12-09 | 2012-08-29 | 华为终端有限公司 | 一种数据卡管理程序加载的方法和装置 |
| CN101872311A (zh) * | 2010-07-02 | 2010-10-27 | 上海市共进通信技术有限公司 | Mac平台插入USB设备运行客户端程序并弹出光驱设备的方法 |
| CN102455981A (zh) * | 2010-10-19 | 2012-05-16 | 康佳集团股份有限公司 | 基于qte环境下的usb设备热插拔的实现方法 |
| CN102393848B (zh) * | 2011-07-08 | 2017-05-24 | 中兴通讯股份有限公司 | 获取数据终端设备识别信息的方法和系统 |
| CN102915245A (zh) * | 2011-08-02 | 2013-02-06 | 珠海赛纳打印科技股份有限公司 | 一种图像形成设备的驱动程序安装方法及装置 |
| CN102542200A (zh) * | 2011-12-21 | 2012-07-04 | 北京握奇数据系统有限公司 | 数字认证终端的处理方法和装置 |
| JP2017515194A (ja) * | 2014-03-10 | 2017-06-08 | トムソン ライセンシングThomson Licensing | モバイルデータモデムのcpeデバイスへの自動接続 |
| CN103942078B (zh) * | 2014-04-30 | 2017-11-17 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
| CN105045733B (zh) * | 2015-07-09 | 2018-08-21 | 上海联彤网络通讯技术有限公司 | 设备驱动装置及方法 |
| CN105336034A (zh) * | 2015-10-15 | 2016-02-17 | 浪潮软件集团有限公司 | 一种办税服务厅多功能评价器优化方法 |
| CN105912921A (zh) * | 2015-11-09 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种usb设备即插即用的授权方法和系统 |
| CN109271332B (zh) * | 2017-07-25 | 2021-06-22 | 杭州楷知科技有限公司 | 一种节点设备驱动初始化的方法和设备 |
| CN109144592B (zh) * | 2018-09-10 | 2022-03-22 | 郑州云海信息技术有限公司 | 一种基于port模式的驱动业务执行系统及方法 |
| CN110502352A (zh) * | 2019-08-21 | 2019-11-26 | 广州慧营智能科技有限公司 | 一种外部设备管理系统及使用方法及具备该系统的自助机 |
| CN110457076B (zh) * | 2019-09-10 | 2022-08-12 | 广州市金其利信息科技有限公司 | 一种外设管理方法 |
| CN113467846B (zh) * | 2021-06-29 | 2022-11-08 | 西北工业大学 | 无人机异构任务载荷设备即插即用实现方法 |
| CN118170443A (zh) * | 2024-03-20 | 2024-06-11 | 苏州西默医疗科技有限公司 | 基于嵌入式系统的u盘自动识别和格式化方法、系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6148354A (en) * | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
| CN1445665A (zh) * | 2003-05-08 | 2003-10-01 | 上海交通大学 | 常用应用软件默认数据及缓冲数据勘查取证方法 |
-
2003
- 2003-10-24 CN CNB2003101027978A patent/CN1303542C/zh not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6148354A (en) * | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
| CN1445665A (zh) * | 2003-05-08 | 2003-10-01 | 上海交通大学 | 常用应用软件默认数据及缓冲数据勘查取证方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1609829A (zh) | 2005-04-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1303542C (zh) | Linux操作系统下对USB设备即插即用的方法 | |
| CN1218253C (zh) | 主机到外围设备驱动程序访问的改进 | |
| CN1290005C (zh) | 设备驱动程序安装方法及外围设备 | |
| CN1313941C (zh) | 数据处理装置与操作系统进行数据交换的方法 | |
| CN1855050A (zh) | 用于管理可移动媒体设备的固件的装置和方法 | |
| CN1402160A (zh) | 用缩减大小的索引进行文献检索 | |
| CN101038551A (zh) | 在移动硬盘上实现启动Linux操作系统的方法 | |
| JP2021018799A (ja) | マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 | |
| CN107608860A (zh) | 一种错误日志分类存储的方法、装置、设备 | |
| CN112615758A (zh) | 一种应用识别方法、装置、设备及存储介质 | |
| CN101055542A (zh) | 一种交叉集成开发环境中的符号调试方法及系统 | |
| CN1492320A (zh) | Windows程序异常捕获及定位方法 | |
| CN1831771A (zh) | 一种更新软件的方法 | |
| CN1920793A (zh) | 在不同的语言环境下实现测试脚本回放的装置和方法 | |
| CN100343815C (zh) | 一种移动终端关键参数的恢复方法 | |
| CN1534920A (zh) | 实现内外网络物理隔离的方法及其装置 | |
| CN101046783A (zh) | 外围设备运行方法、外围设备及主机 | |
| CN1968168A (zh) | 刀片服务器的定位方法及定位系统 | |
| CN1734430A (zh) | 文件的有效数据管理的方法和设备 | |
| CN1975701A (zh) | 主机驱动外设的方法及系统 | |
| CN101526928A (zh) | 基于预安装驱动模式的数据卡设备端口切换装置及方法 | |
| CN109491966A (zh) | 一种文件查找方法及相关装置 | |
| CN1904835A (zh) | 一种计算机软件更新的方法 | |
| CN116521414A (zh) | 故障代码定位方法、云端服务器、系统及存储介质 | |
| CN1889459A (zh) | 安全管理中心系统中的日志格式化单元及方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070307 Termination date: 20181024 |