基于spicec的usb redirection技术

Windows下USBTrace进行USB通信分析 问题描述:USB通信协议非常流行,USB3.0已经达到5G/s的传输速度了。经常会用到USB进行数据的通信,使用起来很方便,但是对于USB协议的许多细节的了解需要花不少时间的学习。USBTrace可以协助快速的分析所使用的USB接口、主机、设备等各类描述信息和传输的数据,对于USB的开发很有辅助作用。 功能介绍:USBTrace具有查看接入的USB接口、主机、设备的各类描述信息的功能,也 阅读详情

1.1 功能框架

      Spicec通过usb redirection实现usb 外设访问,其中涉及usb设备的打开关闭,设备的读写,USB traffic的重定向,hypervisor虚拟化US B设备。

       

1.2 功能模块

       Libusb

               跨平台的usb外设访问的库

       Usb redirection

               重定向USB各类操作及数据到别的主机

       Spicec

               SpiceProject是RedHat 公司开发的开源VDI项目,在终端设备上,运行着Client进程spicec

1.3 编译配置和运行参数

         在configure脚本添加下面的配置,实现autoconfig,automake:

                --enable-usbredir=[auto/yes/no]               Enable usbredir support[default=auto]

        在建立虚拟桌面连接时,设立下面几个与usb重定向有关的参数:

                --spice-disable-usbredir   (禁用USB重定向,没指定禁用,即是使用)

                                                                                  Disable USB redirection support

               --spice-usbredir-auto-redirect-filter=<filter-string>  (USB插入时,过滤的规则)

                                                                                  Filter selecting USB devices to be auto-redirected when plugged in

              --spice-usbredir-redirect-on-connect=<filter-string>   (建立连接时,过滤的规则)

                                                                                  Filter selecting USB devices to redirect on connect

1.4 物理usb设备访问

          Libusb这个开源的库,提供了跨平台的usb外设访问的功能,包括打开/关闭设备,I/O读写,重置设备等等。它提供了丰富的API封装,基于这些API即可实现我们的功能

1.5 usb设备管理控制信息

              Usb设备的管理信息,包括下面的各个部分

1.6 动态监控usb外设状态

             在usb外设动态插拔的情况下,需要即时捕获状态的变化,更新系统的状态;Linux系统服务udev已经实现这些功能。

1.7 创建usb redirection 信道

            在Spicec main channel初始化过程中,服务端会根据虚拟机XML文件里定义的usbredir设备数量,发送spicec客户端创建多少个usb channel。

           Spicec初始化过程中,创建channel的过程如下:


1.8 usb redirect 消息格式

1.9 usb redirec消息处理

             Usb channel处理消息的线程,负责接收usb guest的请求消息,分发并处理消息,及后续的状态应答。

 


QEMU+SPICE+USBredir详细编译步骤 在linux系统下(包括CentOS、Ubuntu等)编译QEMU和SPICE协议,使其支持USB重定向。 立即下载

相关推荐

YOLOv8模型RKNN量化策略与RK3588部署实战解析

本文详细解析了YOLOv8模型在RK3588平台上的RKNN量化策略与部署实践。通过对比INT8和FP16量化方式的性能差异,结合实际测试数据,为开发者提供了从模型导出、转换到板端部署的完整解决方案,帮助实现高效的边缘AI应用部署。

oil88的博客 1089

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

在RDP远程桌面协议中,USB设备虚拟通道扩展协议用于将USB数据包从终端服务器传输到终端客户端。终端客户端将USB数据包转发到物理USB设备。然后客户端在物理设备重新组装数据包后返回结果。 一般来说,远程访问的协议可以重定向USB设备,所以在使用和过程中,必须为客户端提供一种方式来指定使用该协议重定向的USB设备,或者选择使用替代方法的设备或者完全不重定向的设备...

weixin_34304013的博客 3546

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1559

SPICE 协议 USB 重定向

SPICE 协议 USB 重定向 用SPICE协议来进行USB透传的介绍,在SPICE官网上有:Spice 官网 kvm xml配置 <device> <controller type='usb' index='0' model='ich9-ehci1'/> <controller type='usb' index='0' model='ich9-uhci1'>...

WEi的博客 4230

《从底层结构开始学习FPGA》目录与传送门

《从底层结构开始学习FPGA》目录与传送门

孤独的单刀 16万+

【重识云原生】第四章云网络4.9.5.1节下一代智能网卡——DPU综述

随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方向。若数据中心仅关注计算能力的提升,通信基础设施的提升跟不上,那么数据中心的整体系统性能依然受限,无法发挥出真正的潜力。DPU的提出背景就是应对这些数据量和复杂性的指数级增长。未来,需要将计算移至接近数据的位置,这是目前业界所公认的以数据为中心的体系结构下的创新。综上,DPU对数据中心来说,是通过更明细的分工来实现效率的提升、实现总体系统的成本最优化。...

junbaozi的专栏 1724

usbredir-0.7内容详解(一)

在spice源码中难免会遇到usb重定向的问题,现在最新的usb重定向的版本是:usb重定向协议0.7版本(USB redirection protocol version 0.7)

hubbybob1专栏 4254

IgH EtherCAT 从入门到精通:第 29 章 实战:EoE 远程维护通道搭建

摘要:本章详细介绍了基于EoE(Ethernet over EtherCAT)协议的远程维护通道搭建方案。主要内容包括:1)网络架构设计,采用管理网络与EoE子网隔离的方案;2)从站EoE支持确认与IP地址配置,提供API和命令行两种方式;3)路由/交换两种部署模式,重点推荐路由模式并给出自动化配置脚本;4)SSH远程访问配置,包括直接连接和跳板访问两种方式;5)安全加固措施,如防火墙规则、SSH密钥认证等;6)故障恢复机制与性能注意事项。该方案实现了通过EtherCAT网络对从站设备的远程SSH访问、文件

从事嵌入式linux android驱动开发,拥有全栈能力 360

usbredir client设计实现

介绍 关于usbredir client功能的描述,可以参考文档《usbredir client 功能说明书》,这个文档,分析了在不同操作系统平台,如何实现这个功能。 跨平台支持 基于不同操作系统平台Windows和Linux,对于支持分门别类众多的usb外设,重定向都会用到libusb这个库来访问usb设备,也可以说重定向usb设备的驱动程序是基于libusb实现的。在仔细分析阅读了lib

somyjun的专栏 4618

PyTorch深度学习实战(1)——神经网络与模型训练过程详解

在本节中,我们将了解传统机器学习与人工神经网络间的差异,并了解如何在实现前向传播之前连接网络的各个层,以计算与网络当前权重对应的损失值;实现反向传播以优化权重达到最小化损失值的目标。并将实现网络的所有关键组成——前向传播、激活函数、损失函数、链式法则和梯度下降,从零开始构建并训练了一个简单的神经网络。

盼小辉丶的博客 9万+

YOLOv11改进,YOLOv11结合DynamicConv(动态卷积),CVPR2024,二次创新C3k2结构

DynamicConv(动态卷积)是一个用于提高卷积神经网络(CNN)性能的技术,核心思想是动态地生成卷积核(filter),而不是使用固定的卷积核。通过引入更多的计算灵活性和适应性来增强卷积操作的表达能力,进而提升模型的性能。专家选择:DynamicConv 通过引入多个“专家”(experts),每个专家学习特定的卷积模式。输入图像的不同部分会选择不同的专家进行卷积。动态卷积核生成:根据输入的不同特征,专家网络动态地生成卷积核,而不是使用固定的卷积核。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2263

关于SPICE协议的usbredir总结

用SPICE协议来进行USB透传的介绍,在SPICE官网上有:https://www.spice-space.org/usbredir.html 总结一些自己的使用心得: 在libvirt.xml创虚机时,Linux系统均可使用xhci的USB模式: &lt;controller type="usb" index="0" model="nec-xhci"/&gt; 而Window...

wingforlearn的专栏 5496

MTK平台WiFi学习--Wi-Fi 连线/断线问题初步分析

摘要:本文详细介绍了MTK平台WiFi连接问题的日志分析方法。文章首先阐述了WiFi连接的标准流程,包括指令接收、BSSID选择、信道分配、认证关联、四次握手和DHCP获取等关键步骤。针对常见故障场景,如选网失败、信道申请失败、认证关联失败、四次握手失败等,提供了具体的日志分析方法和排查思路,包括识别关键日志、分析状态码、结合固件日志和抓包数据等。文章还特别强调了不同故障场景下需要收集的日志类型和分析要点,为WiFi连接问题的定位提供了一套系统化的解决方案。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1590

usbredir-0.7内容详解(二)

usbredir-0.7内容详解(二)usb_redir_interface_info/***************************************** usb_redir_header.type: usb_redir_interface_info usb_redir_header.length: sizeof(usb_redir_interface_info_heade

hubbybob1专栏 1737

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

USB redirection

物理上插在某A机器上,需要在某B系统中使用,而这个B系统,运行在某台服务器C的虚拟化环境中。 A:本机(WINDOWS-7OKPR5E) B:192.168.143.203上的虚拟机 C:192.168.143.203

hello world 2555

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

MacOS 使用WireShark抓包USB

MacOS 使用WireShark抓包USB安装WireShark检查是否开启SIP关闭/开启 SIP关闭SIP开启SIP开启USB端口监控获取USB设备位置ID(Location ID)WireShark抓包参考资料 本人使用的OS版本是11.4,旧版本OS可能会有所不同。 安装WireShark 首先我们去WireShark官网下载软件https://www.wireshark.org/并且进行安装。 检查是否开启SIP 检查系统是否开启了SIP( System Integrity Protecti

anjisi的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

usbredir学习

usbredir 最初是为与 Spice 配合使用而创建的,但该协议和 usbredirhost 完全独立于 Spice,它们也可以用于创建 VNC 扩展,以便通过 VNC 连接将 USB 设备重定向到 QEMU 虚拟机。可以发现,原来导出的设备重新被attach进去了,此时lsusb又可以看到该设备了,设备又回到本地了。一个实现 usbredir 连接中 usb-host端的库,这是实际usb设备所连接的一端。被导出的设备被reset掉了,本地lsusb是看不到这个设备了,设备从本地导出了。

czw 1449

【抓包工具】win 10 / win 11:WireShark 下载、安装、使用

WireShark:下载、安装、使用,安装教程详解

顾三殇 —— 博客空间(软件测试) 15万+

SPICE USBREDIR学习笔记系列(一):USBREDIR Channel初始化

Spice Server中USBREDIR Channel初始化 首先,USBREDIR在QEMU中是一个虚拟设备而存在的。QEMU启动时将初始化该设备,为建立USB Redirect Channel做准备。 其模块定义于:hw/usb/redirect.c: static const TypeInfo usbredir_dev_info = { .name = TYPE_USB_REDIR, .parent = TYPE_USB_DEVICE, .

xiongyee的博客 1701

USB Redirector远程共享USB与一键穿透异地连接攻略

USBRedirector共享软件,内网设备共享,远程操作USB设备。外网访问穿透工具usb.navjs.cn,异地连接。包括远程调试PLC、共享加密狗授权、控制3D打印机等,高效的远程USB设备管理方案。

navjs的博客 896

usbmon-wireshark之USB协议抓取分析

usbmon + wireshark 协议抓取 usbmon 内核开启CONFIG_USB_MON=m, 重新编译内核, 编译ko : make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- CONFIG_USB_MON=m M=./drivers/usb/ modules 设备挂载debugfs, 加载ko : mount -t debugfs debugfs /sys/kernel/debug/ insmod usbmon.ko 查看是否成功产生

weixin_38878510的博客 2348

Linux下抓取usb总线数据

在linux环境下抓取usb数据

lihuan680680的博客 2710

linux上USB数据流

笔者曾得到一个类似于加密“狗”的USB设备,要使之在Linux下正常工作。然而,通过一个名为USBView的小程序判断,Linux内核无 法驱动这个USB设备,并且在“Linux USB Working Devices”的列表中也没有找到该设备,这意味着只有很少的人在使用这种类型的 USB设备。 在Linux的/proc/bus/usb/devices文件中,有这个USB设备...

weixin_30853329的博客 332

usbredir client 功能说明书

什么是usb重定向? usb redirection协议,定义了重定向一台机器上的usb设备的各种控制数据报文到另一台机器(或者虚拟机)规范,协议规范里定义了两个角色,通常物理usb设备挂载的机器可以称为源主机(usb redirection协议也称为usb-host),虚拟usb设备挂载的机器可以成为目的主机(usb redirection协议也称为usb-guest),源主机和目的主机的通信

somyjun的专栏 3686

5.5 USB虚拟化

本节分析qemu中usb 的虚拟化原理

wanthelping的博客 4315

Horizon client连接windows桌面显示:USB设备已禁用/USB重定向功能已禁用

背景 USB注册表没找到禁用的选项,但Horizon client登录时,提示USB重定向功能不可用;域控上查看组策略,并没有相关策略配置。 操作过程 1、禁用USB存储而不禁用USB鼠标和键盘 通过禁用U盘驱动、USB驱动的方式来禁止操作系统自动识别U盘、自动安装U盘启动的方式来限制U盘使用、阻止USB存储设备的接入,同时还不影响USB鼠标键盘的使用。 我的电脑——>本地磁盘C: ——>windows文件夹——>inf文件夹:在此文件夹中找到U盘的2个驱动文件:usbstor . inf

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 6094
上一篇: Qemu/KVM虚拟化外设的几种方式
下一篇: 非阻塞socket引发的数据不完整
somyjun
博客等级 码龄14年 34粉丝 49原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值