CN102789432B - Usb设备驱动方法和系统 - Google Patents
Usb设备驱动方法和系统 Download PDFInfo
- Publication number
- CN102789432B CN102789432B CN201110131326.4A CN201110131326A CN102789432B CN 102789432 B CN102789432 B CN 102789432B CN 201110131326 A CN201110131326 A CN 201110131326A CN 102789432 B CN102789432 B CN 102789432B
- Authority
- CN
- China
- Prior art keywords
- usb
- server
- virtual machine
- virtual
- 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.)
- Active
Links
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明提供一种USB设备驱动方法和系统,涉及计算机技术。其中,一种USB设备驱动方法,包括:服务器接收虚拟机发送的服务器设备列表请求消息;响应于服务器设备列表请求消息,服务器向虚拟机返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息;服务器接收虚拟机发送的设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息;响应于设备载入命令,服务器将设备请求信息中相应的USB设备映射到虚拟机。本发明为虚拟机访问服务器端的特定USB设备以及多台虚拟机共享一个USB设备提供解决方案。
Description
技术领域
本发明涉及计算机技术,特别是涉及一种USB设备驱动方法和系统。
背景技术
随着云计算技术的发展,虚拟机得到了广泛的应用,对虚拟机的要求特别是对通用串行总线(USB)外设的支持要求也越来越高。在现实应用中,一台刀片服务器上往往创建多台虚拟机,而服务器的USB设备有限。为了充分利用USB设备资源,需要在虚拟机与刀片服务器上的USB设备之间进行一对一或多对一映射。
目前,主要的解决方法有修改虚拟机文件法、网络文件系统(NFS)共享法、硬件辅助法等。修改虚拟机文件法是直接修改虚拟机的配置,把物理USB口写到配置文件中实现映射。此方法只能进行一对一映射,不能同时被多台虚拟机使用。NFS共享法是通过NFS技术,把要映射的USB设备共享出来,从而被多台虚拟机共享。这种方式只能实现对文件级类型的USB设备进行共享(例如,U盘等存储设备),不支持如摄像头的多媒体USB设备,且配置复杂。硬件辅助法是通过增加硬件的方式来实现映射,例如USBanywhere,这种方法成本高。
发明内容
本发明的目的是提出一种USB设备驱动方法和系统,为虚拟机访问服务器端的特定USB设备提供解决方案。
为实现上述目的,本发明提供了一种USB设备驱动方法,包括:服务器接收虚拟机发送的服务器设备列表请求消息;响应于服务器设备列表请求消息,服务器向虚拟机返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息;服务器接收虚拟机发送的设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息;响应于设备载入命令,服务器将设备请求信息中相应的USB设备映射到虚拟机。
在一个实施例中,服务器将设备请求信息中相应的USB设备映射到虚拟机,包括:服务器根据设备请求信息生成虚拟机与相应的USB设备的映射信息;服务器根据映射信息将相应的USB设备映射到虚拟机。
在一个实施例中,映射信息包括服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息。
在一个实施例中,服务器与虚拟机之间基于TCP/IP协议通过USB请求块网络协议(urbIP)包进行通信。
为实现上述目的,本发明还提供了一种USB设备驱动系统,包括:虚拟USB驱动装置,用于发送服务器设备列表请求消息,以及设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息;服务器端USB驱动装置,用于接收虚拟USB驱动装置发送的服务器设备列表请求消息,并向虚拟USB驱动装置返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息,以及接收虚拟USB驱动装置发送的设备载入命令,并将设备请求信息中相应的USB设备映射到虚拟机。
在一个实施例中,服务器端USB驱动装置,包括:映射信息生成单元,用于根据设备请求信息生成虚拟USB驱动装置与相应的USB设备的映射信息。
在一个实施例中,映射信息包括服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息。
在一个实施例中,USB设备驱动系统,还包括:服务器端的USB主机监控器,用于根据映射信息将相应的USB设备映射到虚拟USB驱动装置。
在一个实施例中,虚拟USB驱动装置与服务器端USB驱动装置之间基于TCP/IP协议通过urbIP包进行通信。
基于上述技术方案,根据本发明的一方面,对USB驱动各层,如USBCore层、USB主机监控器层的功能并未做改动,因此凡是符合USB设备规范的不同类型的USB设备都能够被虚拟机共享。
附图说明
此处所说明的附图用来提供对本发明的进一步解释,构成本发明的一部分。本发明的示意性实施例及其说明仅用于解释本发明,但并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的应用场景的示意图。
图2为根据本发明实施例的USB设备驱动方法的流程图。
图3为根据本发明另一实施例的USB设备驱动方法的流程图。
图4为根据本发明实施例的USB设备驱动系统的结构示意图。
图5为根据本发明另一实施例的USB设备驱动系统的结构示意图。
具体实施方式
下面参照附图对本发明进行更详细的描述,其中说明本发明的示例性实施例。在附图中,相同的标号表示相同或者相似的组件或者元素。
图1为根据本发明实施例的应用场景100的示意图。应用场景100包括服务器102、USB设备104和虚拟机106。
服务器102作为物理主机,其USB驱动装置能够将自身的USB设备104映射到客户端的虚拟机106的设备驱动。服务器102的USB驱动装置可以实现对USB请求块网络协议(urbIP)包的接收、还原以及传输。服务器102的USB驱动装置可以通过软件实现,成本低廉。
虚拟机106的虚拟USB驱动装置能够实现对urbIP包的还原、发送和反馈处理等,只是没有链接真正的USB设备。虚拟机106的虚拟USB驱动装置可以通过软件实现。
服务器102和虚拟机106可以通过以太网连接,在它们之间可以通过urbIP包进行通信。urbIP包是封装了IP头的urb包,能够实现以太网上的服务器端(服务器102)和客户端(虚拟机106)的USB驱动装置的通信。Urb包是USB驱动装置和USB设备通信的桥梁。
根据本发明的实施例,不但能实现同一台服务器对应的多台虚拟机共享本服务器的USB设备,而且还能实现不同的服务器对应的虚拟机共享不同服务器的USB设备。
图2为根据本发明实施例的USB设备驱动方法200的流程图。
在步骤202中,服务器接收虚拟机发送的服务器设备列表请求消息。
在步骤204中,响应于服务器设备列表请求消息,服务器向虚拟机返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息。
在步骤206中,服务器接收虚拟机发送的设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息。
在步骤208中,响应于设备载入命令,服务器将设备请求信息中相应的USB设备映射到虚拟机。
图3为根据本发明另一实施例的USB设备驱动方法300的流程图。
在步骤302中,虚拟USB驱动装置向服务器端USB驱动装置发送服务器设备列表请求消息。在一个实施例中,虚拟USB驱动装置通过urbIP请求包发送服务器设备列表请求消息,以便知道共享服务器端有哪些设备可用。
在步骤304中,响应于服务器设备列表请求消息,服务器端USB驱动装置向虚拟USB驱动装置返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器的USB设备信息。在一个实施例中,服务器端USB驱动装置向虚拟USB驱动装置返回urbIP应答包,urbIP应答包可以包括服务器设备列表。服务器设备列表可以包括服务器端USB设备的总线ID、配置值和接口值等。
在步骤306中,虚拟USB驱动装置向服务器端USB驱动装置发送设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息。虚拟机在获取到服务器的USB设备信息后,可以向服务器发送带有载入某USB设备命令的urbIP请求包。
在步骤308中,服务器端USB驱动装置对虚拟USB驱动装置发送的消息进行解析。比如,服务器端USB驱动装置接收虚拟USB驱动装置发送的urbIP请求包,对urbIP请求包进行还原,获取urb包及其设备请求信息。
在步骤310中,服务器端USB驱动装置根据设备请求信息生成映射信息。在一个实施例中,映射信息可以包括服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息等,其形式可以如下:
<usbbusname>:<domid>:<vusbnumber>:<virtualportnumber>
(<USB总线名>:<虚拟机域的ID号>:<虚拟USB总线号>:<虚拟USB端口号>)
其中,对于服务器端的USB端口可以采用USB总线号加集线器端口号的方式进行标识。USB总线号与根集线器端口号之间可以通过短横“-”隔开,根集线器端口号与各层集线器的端口号之间可以通过实心点“.”隔开。对于虚拟USB端口的命名方式可以采用虚拟机域的ID号、虚拟USB总线号和虚拟USB端口号三者组合的方式进行命名,三者之间可以通过冒号“:”或其他符号隔离。将服务器中的USB端口号跟虚拟机中的虚拟USB端口进行组合,形成映射关系,它们之间也可以用冒号“:”隔离。
上文所述的映射信息的形式仅是一种举例,并不是无遗漏的或者将本发明限于所公开的形式,很多内容或形式上的变化对于本领域的普通技术人员而言是显而易见的。
在步骤312中,服务器端USB驱动装置通过服务器端USB核心(Core)将映射信息发送给服务器端的USB主机监控器。USB主机监控器可以用于监控其端口上插入或移除的USB设备,管理服务器和USB设备之间的数据交互和控制信息。
在步骤314中,USB主机监控器根据映射信息将相应的USB设备映射到虚拟USB驱动装置,以实现客户端的虚拟机对远程服务器端具体的USB设备的映射,进而实现虚拟机对服务器端不同类型USB设备(如U盘、摄像头等)的控制。。
图4为根据本发明实施例的USB设备驱动系统400的结构示意图。USB设备驱动系统400包括虚拟USB驱动装置402和服务器端USB驱动装置404。
虚拟USB驱动装置402,用于发送服务器设备列表请求消息,以及设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息。
服务器端USB驱动装置404,用于接收虚拟USB驱动装置402发送的服务器设备列表请求消息,并向虚拟USB驱动装置402返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息,以及接收虚拟USB驱动装置402发送的设备载入命令,并将设备请求信息中相应的USB设备映射到虚拟机。
图5为根据本发明另一实施例的USB设备驱动系统的结构示意图。USB设备驱动系统500包括虚拟USB驱动装置502、服务器端USB驱动装置504和服务器端的USB主机监控器506。
虚拟USB驱动装置502,用于发送服务器设备列表请求消息,以及设备载入命令,设备载入命令包括对服务器端USB设备的设备请求信息。
服务器端USB驱动装置504,用于接收虚拟USB驱动装置502发送的服务器设备列表请求消息,并向虚拟USB驱动装置502返回服务器设备列表响应消息,服务器设备列表响应消息包括服务器端USB设备的信息,以及接收虚拟USB驱动装置502发送的设备载入命令,并将设备请求信息中相应的USB设备映射到虚拟机。在一个实施例中,服务器端USB驱动装置504还包括映射信息生成单元12,用于根据设备请求信息生成虚拟机与相应的USB设备的映射信息。在一个实施例中,映射信息包括服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息。
服务器端的USB主机监控器506,用于映射信息将相应的USB设备映射到虚拟USB驱动装置502。
在一个实施例中,虚拟USB驱动装置502与服务器端USB驱动装置504之间可以基于TCP/IP协议通过urbIP包进行通信。服务器端USB驱动装置504可以实现对urbIP包的接收、还原等。虚拟USB驱动装置502可以实现对urbIP包的还原、发送和反馈处理等。
根据本发明的一方面,对USB驱动各层,如USBCore层、USB主机监控器层的功能并未做改动,因此凡是符合USB设备规范的不同类型的USB设备都能够被虚拟机共享。根据本发明的另一方面,采用服务器/客户端(c/s)模式,通过对USB设备信息与虚拟USB端口信息的映射信息,能够实现服务器端USB设备与虚拟机之间一对多的映射,使多台虚拟机可以同时访问服务器端的特定USB设备,提高使用效率。进一步的,本发明可以基于IP协议实施,因此能够实现USB设备在互联网上的跨区映射。另外,本发明的实施例实施灵活方便,成本低廉。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (4)
1.一种USB设备驱动方法,其特征在于,包括:
服务器接收虚拟机发送的服务器设备列表请求消息;
响应于所述服务器设备列表请求消息,所述服务器向所述虚拟机返回服务器设备列表响应消息,所述服务器设备列表响应消息包括服务器端USB设备的信息;
所述服务器接收所述虚拟机发送的设备载入命令,所述设备载入命令包括对所述服务器端USB设备的设备请求信息;
响应于所述设备载入命令,所述服务器根据所述设备请求信息生成所述虚拟机与相应的USB设备的映射信息,所述服务器根据所述映射信息将相应的USB设备映射到所述虚拟机;
其中,所述映射信息包括所述服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息,对于服务器端的USB端口采用USB总线号加集线器端口号的方式进行标识,对于虚拟USB端口的命名方式采用虚拟机域的ID号、虚拟USB总线号和虚拟USB端口号三者组合的方式进行命名,将服务器中的USB端口号跟虚拟机中的虚拟USB端口进行组合,形成映射关系;
所述服务器根据所述映射信息将相应的USB设备映射到所述虚拟机的步骤包括:
服务器端USB驱动装置通过服务器端USB核心将所述映射信息发送给服务器端的USB主机监控器,所述USB主机监控器监控其端口上插入或移除的USB设备,管理服务器和USB设备之间的数据交互和控制信息;
所述USB主机监控器根据所述映射信息将相应的USB设备映射到虚拟USB驱动装置。
2.根据权利要求1所述的USB设备驱动方法,其特征在于,所述服务器与所述虚拟机之间基于TCP/IP协议通过USB请求块网络协议(urbIP)包进行通信。
3.一种USB设备驱动系统,其特征在于,包括:
虚拟USB驱动装置,用于发送服务器设备列表请求消息,以及设备载入命令,所述设备载入命令包括对服务器端USB设备的设备请求信息;
服务器端USB驱动装置,用于接收所述虚拟USB驱动装置发送的服务器设备列表请求消息,并向所述虚拟USB驱动装置返回服务器设备列表响应消息,所述服务器设备列表响应消息包括所述服务器端USB设备的信息,以及接收所述虚拟USB驱动装置发送的设备载入命令,并将所述设备请求信息中相应的USB设备映射到所述虚拟机;
所述服务器端USB驱动装置,包括:映射信息生成单元,用于根据所述设备请求信息生成所述虚拟USB驱动装置与相应的USB设备的映射信息,所述映射信息包括服务器的USB总线和端口信息、虚拟机域的信息和/或虚拟机USB总线和端口信息,其中,对于服务器端的USB端口采用USB总线号加集线器端口号的方式进行标识,对于虚拟USB端口的命名方式采用虚拟机域的ID号、虚拟USB总线号和虚拟USB端口号三者组合的方式进行命名,将服务器中的USB端口号跟虚拟机中的虚拟USB端口进行组合,形成映射关系;
其中,所述服务器端USB驱动装置还用于通过服务器端USB核心将所述映射信息发送给服务器端的USB主机监控器,所述USB主机监控器用于监控其端口上插入或移除的USB设备,管理服务器和USB设备之间的数据交互和控制信息;
所述USB主机监控器还用于根据所述映射信息将相应的USB设备映射到所述虚拟USB驱动装置。
4.根据权利要求3所述的USB设备驱动系统,其特征在于,所述虚拟USB驱动装置与所述服务器端USB驱动装置之间基于TCP/IP协议通过urbIP包进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110131326.4A CN102789432B (zh) | 2011-05-19 | 2011-05-19 | Usb设备驱动方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110131326.4A CN102789432B (zh) | 2011-05-19 | 2011-05-19 | Usb设备驱动方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789432A CN102789432A (zh) | 2012-11-21 |
CN102789432B true CN102789432B (zh) | 2016-02-17 |
Family
ID=47154836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110131326.4A Active CN102789432B (zh) | 2011-05-19 | 2011-05-19 | Usb设备驱动方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789432B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312781A (zh) * | 2013-05-15 | 2013-09-18 | 山东超越数控电子有限公司 | 一种虚拟usb总线的实现方法 |
CN104808978A (zh) * | 2014-01-28 | 2015-07-29 | 宏碁股份有限公司 | 分享即插即用装置的方法及其电子装置 |
CN105100157B (zh) * | 2014-05-15 | 2019-08-27 | 中兴通讯股份有限公司 | 一种usb设备映射、交互方法、装置、云终端及云服务器 |
CN105306410A (zh) * | 2014-06-10 | 2016-02-03 | 中兴通讯股份有限公司 | 串并口映射的方法、云终端及虚拟机 |
CN105740180B (zh) * | 2014-12-10 | 2019-08-02 | 中国移动通信集团重庆有限公司 | Usb设备的虚拟机接入方法和装置 |
CN105391652B (zh) * | 2015-12-03 | 2018-08-31 | 武汉噢易云计算股份有限公司 | 基于usb重定向实现usb设备网络共享的系统及方法 |
CN105515668A (zh) * | 2015-12-31 | 2016-04-20 | 浪潮(北京)电子信息产业有限公司 | 一种组网方法与系统 |
CN105871926B (zh) * | 2016-06-17 | 2019-07-19 | 山东大学 | 一种基于桌面虚拟化的usb设备安全共享方法及系统 |
CN107797947A (zh) * | 2016-09-05 | 2018-03-13 | 中兴通讯股份有限公司 | 一种usb设备重定向方法和装置 |
CN107168909A (zh) * | 2017-06-23 | 2017-09-15 | 苏睿 | 转接设备、远程通信系统、数据传输方法及装置 |
CN107506324A (zh) * | 2017-07-26 | 2017-12-22 | 西安万像电子科技有限公司 | 转接设备、远程通信系统、数据传输方法及装置 |
CN108132900A (zh) * | 2017-11-10 | 2018-06-08 | 西安万像电子科技有限公司 | 转接设备、远程通信系统以及数据传输方法 |
CN109240798A (zh) * | 2018-08-30 | 2019-01-18 | 郑州云海信息技术有限公司 | 管理虚拟机的外接设备的方法和装置 |
CN109144752A (zh) * | 2018-09-06 | 2019-01-04 | 郑州云海信息技术有限公司 | 访问共享usb设备方法和装置 |
CN109284170B (zh) * | 2018-09-11 | 2021-10-26 | 山东观海数据技术有限公司 | 一种局域网内usb共享系统及共享方法 |
CN109947489A (zh) * | 2019-03-19 | 2019-06-28 | 佳都新太科技股份有限公司 | 基于容器的外接设备管理方法、装置、设备及存储介质 |
CN112672091B (zh) * | 2020-12-18 | 2023-05-09 | 厦门亿联网络技术股份有限公司 | 基于网络的视频通信方法、系统、存储介质及uvc设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035039A (zh) * | 2007-04-20 | 2007-09-12 | 福建升腾资讯有限公司 | Usb映射方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI317481B (en) * | 2006-07-05 | 2009-11-21 | Quanta Comp Inc | Method for controlling usb device between incompatible processing platforms |
-
2011
- 2011-05-19 CN CN201110131326.4A patent/CN102789432B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035039A (zh) * | 2007-04-20 | 2007-09-12 | 福建升腾资讯有限公司 | Usb映射方法 |
Non-Patent Citations (1)
Title |
---|
基于Linux的USB over IP系统设计;杨勇;《中国优秀硕士学位论文全文数据库》;20070915(第03期);第26-45页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102789432A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789432B (zh) | Usb设备驱动方法和系统 | |
CN109561171B (zh) | 虚拟私有云服务的配置方法和装置 | |
US8954992B2 (en) | Distributed and scaled-out network switch and packet processing | |
JP4053967B2 (ja) | Vlanサーバ | |
CN102124449B (zh) | 用于低开销数据传输的方法和系统 | |
CN102017542B (zh) | 将光纤通道网络与基于以太网的网络对接的方法 | |
CN105554065A (zh) | 处理报文的方法、转换单元和应用单元 | |
CN103051737A (zh) | 提供融合互联架构上的网络能力 | |
US8849905B2 (en) | Centralized computing | |
JP5866083B1 (ja) | ソフトウェア定義ネットワークにおける制御方法、制御装置およびプロセッサ | |
CN106657180A (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
CN108200018A (zh) | 云计算中的流量转发方法及设备、计算机设备及可读介质 | |
Pedretti et al. | Using the Cray Gemini Performance Counters. | |
CN106713010B (zh) | 一种航电网络系统的通信方法及系统 | |
CN114050998A (zh) | 实现远程直接内存访问的方法、装置、电子设备及介质 | |
CN102299862A (zh) | 二层隧道快速转发设备和方法 | |
CN104348728A (zh) | 生成转发信息的方法及设备 | |
CN104571934A (zh) | 一种内存访问的方法、设备和系统 | |
US11405766B2 (en) | Connecting computer processing systems and transmitting data | |
US11357020B2 (en) | Connecting computer processing systems and transmitting data | |
US11290575B2 (en) | Connecting computer processing systems and transmitting data | |
CN108234542A (zh) | 一种机载文件网络化实现方法 | |
CN101309154B (zh) | 报文的发送方法、发送装置和传输系统 | |
CN105573801A (zh) | 堆叠系统中实现软件升级的方法、装置及系统 | |
KR20170005274A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |