第27卷第4期 武 汉 工 业 学 院 学 报 Vo1.27N0.4
2008年 12月 Journal of Wuhan Polytechnic University Dec.2008
文章编号:1009-4881(2008)04-0040433
基于Linux的USB设备重定向研究
王 璇 ,蔡雄飞 ,吴志军
(1.福建工程学院计算机与信息科学系,福建 福州350014;2.武汉市建筑设计院,湖北 武汉430014;
3.武汉工业学院机械工程系,湖北 武汉430023)
摘 要:Linux具有 良好的移植性和较好的稳定性,在终端和服务器的领域都得到极广的应
用。而USB总线也具有很强的通用性,是 目前最为流行的外围接 口总线之一。鉴于Linux的
操作系统作为服务器不支持设备重定向这一缺陷,提出基于Linux的USB设备重定向的方案,
介绍了URB请求重定向的处理流程 以及服务器和终端所需要做的工作。
关键词:USB;重定向;Linux
中图分类号:TG306 文献标识码 :A
0 引言 1 设备重定 向
由于Linux开放源代码便于移植,运行稳定,无 1.1 重定 向的原理
论是在终端还是服务器领域,Linux的应用都越来越 设备重定向,就是把Linux服务器上,对设备的
广。Lintcx终端可以通过xdmep等协议登陆到Linux 操作,重定向到 Linux终端上。USB设备重定向的
服务器,在这种 c/s体系中,数据的访问、查询、处 原理是:在服务器通过创建虚拟设备,对该设备的操
理、存储在服务器上,终端只负责数据的输入输出以 作(主要是URB请求)被虚拟驱动通过网络发送到
及前期工作,因此对终端的软件和硬件的要求不高。 终端,终端接收到请求后,发送给 USB设备,再把结
USB设备即插即用,数据传输速率快,USB接 果通过网络返回给服务器。对于服务器来说,网络
口已经取代串口、并口、IEEE1394,成为使用最广泛 是透明,上层的应用程序并不知道它所操作的对象
的计算机外围接 口。但是 xdmcp等协议并没有象 是远端的USB设备,就像操作本地的USB设备。也
Windows服务器提供的rdesktop、ICA协议那样,具 就是把对服务器本地的虚拟设备的URB请求重定
有设备重定向的功能,也就是说终端登陆到 Linux 向到终端的实际USB设备。URB请求的具体执行
服务器后,服务器上的应用程序并没有办法操作终 是Linux终端来完成。
端上的USB设备,而终端本地多采用嵌入式操作系 要成功的完成 URB请求操作,就必须搞清楚
统,对设备操作能力有限。这对于本地资源来说,是 URB请求的含义以及所代表的操作。
一 种严重的浪费,也使 Linux服务器的应用受到了 1.2 URB
一 定限制。 URB(USBrequestblock)是USB设备驱动中用
本文提出了基于Linux的USB设备重定向的方 来描述与USB设备通信所用的基本载体和核心数
案,详细介绍了URB请求重定向的处理流程以及服 据结构。用户要和USB设备通讯,必须按照 URB
务器和终端所需要做的工作,使得 Linux服务器上 请求包的格式提交给 Linux内核,内核根据这个
的应用程序可以访问Linux终端上的USB设备。 URB请求包的pipe信息,把 URB请求包添加到不
收稿 日期 :2008-09—11
作者简介:王璇 (1978一),男,福建省福清县人,工程师。
4期