usbredir client 功能说明书

来源:互联网 发布:雨林木风linux系统下载 编辑:程序博客网 时间:2024/04/30 17:26

什么是usb重定向?

usb redirection协议,定义了重定向一台机器上的usb设备的各种控制数据报文到另一台机器(或者虚拟机)规范,协议规范里定义了两个角色,通常物理usb设备挂载的机器可以称为源主机(usb redirection协议也称为usb-host),虚拟usb设备挂载的机器可以成为目的主机(usb redirection协议也称为usb-guest),源主机和目的主机的通信基于可靠安全的传输层协议TCP,重定向成功后,目的主机就可以看到操作被重定向的usb外设。

什么是usbredir client?

usbredir client是运行在源主机一个程序,它能重定向各类usb 设备到目的主机。它的功能有下面几方面:

1)监控管理物理usb设备的状态

2)usb控制数据报文处理

3)外部操作处理

 

目的主机,可以是物理主机,也可以是虚拟机,各种虚拟化Hypervisor管理虚拟外设会有不同的机制,现在的实现和测试是基于开源的Qemu/KVM。

 

这里需要区分说明下,usb redirection协议里所定义的usb-host指的是物理设备挂载的主机,usbredir client是从功能实现程序的角度看,它是基于TCP传输连接的client,因此就定义为usbredir client。

支持哪些类别usb总线标准的设备?

UHCI

OHCI

EHCI

XHCI(暂不支持)

各类usb外设管控

usb外设种类分门别类有不少,需要有个策略加以管控,什么类型的设备哪个设备可以或者不可以被重定向。策略规则定义如下:

规则形式:

<rule1>|<rule2>|<rule3>

规则定义:

   *@class,@vendor,@product,@version,@allow

   * Use -1 for@class/@vendor/@product/@version to accept any value.

   * 0: denyredir for this device, non 0: allow

例子1:

          "-1,-1,-1,-1,1"      表示所有设备都会被重定向(缺省策略)

下面的例子,鼠标和键盘不会重定向(设备的vendor&product用来过滤)

   "-1,0x093a,0x2510,0|1,0x11ba,0x0002,0|-1,-1,-1,-1,1"

例子2:

          "-1,-1,-1,-1,0"      表示所有设备都不会被重定向(缺省策略)

下面的例子,只有存储设备会重定向(设备的class用来过滤)

   "3,-1,-1,-1,1|-1,-1,-1,-1,0"

 

结合实际应用,usb鼠标键盘和某些U盘(ukey认证)及移动硬盘(譬如该硬盘作为系统盘)不应被重定向,别的设备应被重定向。

系统缺省设定所有设备不会被重定向,有哪类或者哪个设备需要重定向的,就添加这些个设备到规则中

并发支持

并发支持,就是支持同时有多个usb设备重定向,互相间独立正常运行。

在Qemu/KVM虚拟机环境下,最多支持并发的数量由Qemu能模拟的usb hcd及usb hub决定,参考Qemu资料,一个虚拟机最多EHCI接口usb-redirect设备支持<=3,OHCI和UHCI接口usb-redirect设备>=1。系统缺省设定,一个虚拟机并发同时支持4usb设备重定向,其中最多允许3EHCI接口设备,4OHCI4UHCI


0 0
原创粉丝点击