USB重定向

  第一期中,我们一起简要的看了下传统PC和桌面云下USB重定向和USB设备重定向方式的差异,了解了桌面云下外设兼容性问题来源的根源-USB设备本身驱动不规范/不支持,

  或者虚拟机驱动实现上与USB设备对接存在疏漏。

  本期我们来详细的了解下传统PC和桌面云的外设工作原理

  目前,在通用操作系统上,USB外设占主流,下面就以USB摄像头举例说明其两种重定向技术的区别。

 传统PC

  先认识一下传统(PC机模式)USB外设工作的原理

                        

  从上图可以了解到,所有USB外设正常工作,在软件层面依赖的是USB总线驱动。一个应用需要使用USB外设必须与USB设备驱动进行交互,而设备驱动的工作

  完全依赖USB总线驱动来交互设备数据,与硬件交互都是由总线驱动来代理完成。

  桌面云

    在桌面云环境下实现对USB外设的支持,可以有两种方式,一种是基于USB总线的虚拟化重定向,称之为USB端口重定向,即替换掉USB总线驱动;另外一种

  是USB设备驱动的重定向,称之为设备重定向,即替换掉USB设备驱动。

                    

  上图所示,即为USB端口重定向方式,它通过在虚拟机和客户端各内置一个虚拟USB总线驱动,实现原物理下USB总线驱动的拉远。而设备对应的真实USB设备驱动安装

  并运行在虚拟机中,与虚拟机USB总线驱动进行交互,这样对虚拟机中的USB设备驱动来说,并不会感知到所控制的设备实际上在TC远端,同样应用程序也不会感知到

  这个差异。因为USB端口重定向与具体的设备和应用无关,直接将USB端口重定向到桌面虚拟机中,所以USB端口重定向具有良好的设备兼容性。但同时,也正是因为这个原因,USB端口重定向也有一定的局限性,由于没有经过设备驱动层的压缩和预处理,对于某些扫描仪和摄像头等图像类应用,可能会导致带宽过大,网络时延敏感等问题。在这种情况下,需要使用设备重定向技术。

  桌面云下USB重定向各模块作用(如上图)

  USB客户端:负责发现和断开客户端设备,接收服务端总线数据转发到设备,以及获取设备的总线数据转发到服务端

  虚拟USB驱动:作为一个虚拟的功能驱动,负责双向透传总线数据包

  USB服务端:负责获取服务端的总线数据包转发到客户端,以及接受客户端回应的总线数据包转发到虚拟总线驱动

  虚拟USB总线驱动:作为一个虚拟的总线驱动,向上和真实的各类USB功能驱动交互,负责转发各类USB设备的总线数据包,以及将USB 服务传递进来的数据包

  透传到上层功能驱动。

时间: 2024-10-09 20:11:30

USB重定向的相关文章

USB虚拟化和虚拟桌面USB重定向

USB:通用串行总线,是一种外部总线的标准,用于规范主机与外设之间的连接与通讯,其数据传输速度快,支持热插拔,并具有兼容性和透明性,已成为当今个人电脑和大量智能设 备必配的接口.随着虚拟化技术的盛行和发展,在虚拟化中引入对USB技术的支持,是必须的必然的结果,同时,由于传统桌面使用USB技术和大量的外设进行交互,因而在使用和实现虚拟桌面的时候,必须引入对USB技术的支持,以达到虚拟桌面对外设的兼容和交互,使得虚拟桌面达到和传统桌面一样的用户体验. 一.USB技术概述 USB(Universal

RDP协议之USB重定向虚拟通道

在RDP远程桌面协议中,USB设备虚拟通道扩展协议用于将USB数据包从终端服务器传输到终端客户端.终端客户端将USB数据包转发到物理USB设备.然后客户端在物理设备重新组装数据包后返回结果. 一般来说,远程访问的协议可以重定向USB设备,所以在使用和过程中,必须为客户端提供一种方式来指定使用该协议重定向的USB设备,或者选择使用替代方法的设备或者完全不重定向的设备.因为当设备被重定向时,它就不能在客户端上继续使用.例如: USB鼠标:如果使用此协议进行USB鼠标重定向,那么在客户端本地将无法使用

virt viewer Usbredir USB重定向

编译virt viewer之前执行的configure命令,是没有使能usb-redir相关的功能,virt viewer是否支持usbredir是完全依赖于spice-gtk的. virt viewer对spice-gtk的依赖关系,可以从virt viewer的configure结果看出来: [html] view plaincopy configure: Configuration summary configure: ===================== configure: co

在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)

1.spice的USB重定向 1.1 介绍 使用usb重定向,在client上插入的U盘会被重定向到虚拟机中. 其有两种实现方式,自动重定向(所有插入client中的U盘都被重定向),或者手动选择需要重定向的U盘 USB重定向需要为虚拟机添加USB2 EHCI驱动,以及若干个Spice channels,Spice channels的个数决定了客户端一次可以有多少个USB设备被重定向到guest 更多参考: http://people.freedesktop.org/~teuf/spice-do

解决USB key在citrix虚拟桌面里使用的问题

1.首先保证VDA和本地客户端PC都装有U盾的驱动, 2.先用USBDeview工具把U盾的VID,PID,class 和subclass记下来,如:,SubClass=00  ,VID=096e,PID=0801  3.在VDA里改注册表, 定位到此路径(HKLM\SOFTWARE\Citrix\PortICA\GenericUSB\)找到 USBPolicy Rules  修改里面的内容,把VID,PID,class 和subclass加进去允许访问,如: ALLOW:Class=03 Su

关于citrix xendesktop USB设备直接映射到虚拟机

USB设备直接映射到虚拟机里 以小米手机为例,因为小米手机需要加载驱动,也就是安装小米助手,通过USB映射本地的可移动设备是不可行的,我们可以通过USB设备重定向,直接将小米手机重定向到远端虚拟机,远端虚拟机也需要安装小米助手.远端使用时,本地是不能用的,本地端使用时,远端是看不到的.设置如下: 1.  打开终端客户机的设备管理器,查找需要重定向的USB设备 2.  记下USB设备的VID值.PID值.Class值.subclass值    3.  记下后在DDC上新建一条策略,点击USB设备.

如何在RHEV虚拟机中使用USB设备的设置方法

使用 SPICE 连接协议的虚拟机可以被配置为直接使用客户端系统上的 USB 设备. 只有在虚拟机处于活跃的状态,并且正通过客户端使用时,客户端上的 USB 设备才可以被重定向到虚拟机上.每次当一个 USB 设备被插入到客户端时,USB 重定义功能可以被手工启动,或在 SPICE 客户端菜单中设置为自动重定向到活跃的虚拟机. 请注意:"客户端系统(client machine)"和"虚拟客户端系统(guest machine)"之间的区别.客户端系统(在本文档中有时

USB Development Kit (UsbDk) Design and Architecture 中文版

这是我对UsbDk官方文档的翻译,希望对大家有帮助,有错误之处还请谅解. UsbDk开发套件是由一套软件工具和模块组成,它把USB设备从PNP管理器和设备驱动分离,并提供了一系列API供用户层程序直接独占的访问USB设备,进行USB设备相关操作. UsbDk一开始是用来为spice远程桌面程序提供USB重定向的支持,然而它可以被用来做很多其他相关事情,通过UsbDk自带的库或者通过libusb(我们为libusb做了backend支持) UsbDk开发套件包含以下模块: UsbDk.sys –

libvirt笔记(未完待续)

参考源地址:http://libvirt.org/formatdomain.html http://blog.csdn.net/qq250941970/article/details/6022094 libvirt是管理KVM的工具,通过libvirt可以管理配置虚拟机.而虚拟机的配置主要都是通过libvirt的xml文件来实现的,因此xml是十分重要的. Domain XML format 从官网文档中,我们可以发现xml文件具有一定的格式. 1.Element and attribute o