USB 重定向库usbredir的移植到Android下使用的方法总结

android连接usb外设通讯_精通天翼云云桌面外设管理之外设策略原理 接上一篇《精通天翼云云桌面外设管理之云桌面策略管理》,我们在创建了云桌面的策略组后,就可以根据不同的外设需求进行外设策略定制了。进入天翼云云桌面的高级策略管理页面,在外设管理页面可以看到有"USB端口重定向",又有“设备重定向”。在USB端口重定向下面有“视频设备”的开关,而在“设备重定向”下面又有一个“摄像头重定向”的开关;在USB端口重定向下面有“打印设备”的开关,而“设备重定向下面”又有一个... 阅读详情

转载注明:http://blog.youkuaiyun.com/hubbybob1/article/details/78063443
这篇文章类似于libusb的Android下的移植,方法相通但是注意点不一样,(libusb1.0在android内的移植和使用方法 )

首先下载usbredir库:
https://www.spice-space.org/download/usbredir/ 或者
https://www.spice-space.org/page/UsbRedir
都可以下载到usbredir-0.7.tar.bz2 库
解压:tar jxvf usbredir-0.7.tar.bz2后得到usbredir-0.7目录

cd usbredir-0.7 #进入库目录
./configure  #执行配置文件生成config.h头文件,后面会用到

这里写图片描述
经过上面的处理我们得到了usbredirhost和usbredirparser两个目录,Android作为客户端使用只要编译这两个库就行了。

1。usbredirparser编译 libusbredirparser.a
A.把 /usbredir-0.7下生成的config.h复制到/usbredir-0.7/usbredirparser/ 目录下;
B.在usbredirparser/ 目录下编写Android.mk文件,如下:

LOCAL_PATH  := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := libusbredirparser
LOCAL_SRC_FILES := usbredirparser.c \
           strtok_r.c \
           usbredirfilter.c
LOCAL_C_INCLUDES += \
                    usbredirfilter.h \
                    strtok_r.h \
                    config.h \
                    usbredirparser.h \
                    usbredirproto-compat.h \
                    usbredirproto.h
include $(BUILD_STATIC_LIBRARY)   

C./usbredir-0.7/usbredirparser/ 目录下使用命令:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

编译后就在本目录下生成了obj目录、在目录obj/local/armeabi/下找到 libusbredirparser.a,那么此时这个静态库就可以在Android系统下使用了,但是用的时候的头文件就是在上面的usbredirfilter.h、strtok_r.h、usbredirparser.h、usbredirproto-compat.h、usbredirproto.h,作为你android JNI的头文件使用;

2。编译usbredirhost目录生成libusbredirhost.a
A.把 /usbredir-0.7下的config.h复制到/usbredir-0.7/usbredirhost/ 目录下
B.把/usbredir-0.7/usbredirparser/ 下的3个头文件 usbredirparser.h usbredirproto.h usbredirfilter.h 复制到/usbredir-0.7/usbredirhost/下
C.编写Android.mk文件,如下:

LOCAL_PATH  := $(call my-dir)
include $(CLEAR_VARS)
SPICE_CLIENT_ANDROID_DEPS   := $(LOCAL_PATH)/../libs/deps
LOCAL_MODULE    := libusbredirhost
LOCAL_SRC_FILES := usbredirhost.c 
LOCAL_C_INCLUDES += \
                    usbredirhost.h \
                    config.h
include $(BUILD_STATIC_LIBRARY)   

D.使用命令:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

这样在本目录下就生成了obj目录,同样obj/local/armeabi/下找到libusbredirhost.a,需要配合本目录下的头文件:usbredirhost.h;

到此编译就完成了,有需要编译usbredirserver和usbredirtestclient的可以仿照上面两个进行编译,然后移植到Android下面去测试;

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

相关推荐

压电阀控制器设计-总章

本文章用于回顾记录本人制作压电阀控制器的关键技术,本人所制作压电阀控制器已经上市得到应用,特在此对一些关键技术进行回顾记录,欢迎从事压电控制及压电阀相关人员一起讨论

qq_42712859的博客 850

usbredir-0.7内容详解(一)

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

hubbybob1专栏 4256

华为MA5620配置宽带及语音实例

华为EPON配置实例1、公共部分和宽带PPPOE部分用串口用户名密码root/mduadminMA5620E>enableMA5620E#configMA5620E(config)#MA5620E(config)#sysnamebigcow/给设备起名字/****之前为公共部一、建vlan和地址bigcow(config)#vlan100...

weixin_33862041的博客 6348

usbredir学习

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

czw 1449

inferCNVpy分析流程学习

inferCNV的用途大家都已经很清楚了,接下来就走一下流程,试一试Python版的inferCNV。使用的数据集为:GSE188711,既往推文可见:Scanpy分析全流程(含harmonypy整合/细胞周期矫正/双细胞检测及去除)(

zfyyzhys的博客 1296

WGCNA分析中那些没人告诉你的坑:以肺结核差异基因模块筛选为例

本文深入探讨WGCNA分析在肺结核差异基因模块筛选中的七个关键陷阱,包括soft-thresholding选取、样本离群值检测、模块合并阈值调整等。通过实际案例和R代码示例,揭示生信数据挖掘中常被忽视的技术细节,帮助研究者避免常见错误,提升分析结果的可靠性和生物学意义。

weixin_29218509的博客 261

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

可视化工具--Plotly

随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重要的一环。对于Python语言来说,比较传统的数据可视化模块是Matplotlib,但它存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化方面的发展。   为了解决这个问题,新型的动态可视化开源模块Plotly应运而生。由于Plotly具有动态、美观、易用、种类丰富等特性,所以一经问世就受到开发人员的喜爱。

YFater的博客 1万+

usbredir client设计实现

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

somyjun的专栏 4618

PCB铺铜技巧如何铺铜经验总结

铺铜是指在PCB电气层添加整块的铜皮;铺铜包括电源层铺铜,地层铺铜和信号走线层空闲区域铺铜;铺铜是PCB设计的一个重要的环节。

fydar的博客 1万+

【Word提效 No.010】使用AI一键复制格式刷应用格式

本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。

u011186532的专栏 78

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

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

m0_51579041的博客 1万+

usbredir client 功能说明书

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

somyjun的专栏 3686

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

5.5 USB虚拟化

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

wanthelping的博客 4315

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

USB redirection

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

hello world 2555

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux 虚拟机之--KVM的安装和配置(一)

Linux 虚拟机之--KVM的安装和配置(一) 系统环境:      操作系统: RedHat EL6.4(x86_64) 一、前言      KVM,即Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于

天涯客*Blog 3万+

也谈USB重定向的方式

在桌面虚拟化的项目中,常常会遇到用户提出的各自外设需求,这时产品对外设的兼容性就成为了项目成败的拦路虎 本文试图用通俗易懂的语言讲讲USB外设重定向的工作流程,先看看普通PC上USB设备的工作流程 usb硬件只将数据交给usb总线驱动,而应用程序只会把请求提交给本usb设备驱动处理,在usb设备驱动提交usb总线驱动处理 从上图可以看出,能够被虚拟化的只有USB设备驱动和

Summer的小屋 1万+

关于SPICE协议的usbredir总结

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

wingforlearn的专栏 5497

Android USB相关流程解析(android4.4)

前言: 对于USB的一些常量属性,比如:UsbManager. USB_FUNCTION_RNDIS等,现在也是一个比较模糊的概念,只能具体问题具体分析,我们重点说的是类结构,与USB整个框架(仅限于framework层)的逻辑。本来想画一张流程图呢。画来画去好像都跟实际情况有出入。就只能用文字叙述了。 一、调用: 我们从最常见与USB相关的界面说起。当手机连接电脑时,有如下界面:

daweibalang717的专栏 9772

usbredir-0.7内容详解(三)

usbredir-0.7内容详解(三)

hubbybob1专栏 1601

基于spicec的usb redirection技术

1.1 功能框架       Spicec通过usb redirection实现usb 外设访问,其中涉及usb设备的打开关闭,设备的读写,USB traffic的重定向,hypervisor虚拟化US B设备。         1.2 功能模块        Libusb                跨平台的usb外设访问的库        Usb redirecti

somyjun的专栏 5568

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 6096

Quickemu USB重定向:外设设备在虚拟机中的直通技术

在虚拟化技术日益普及的今天,许多开发者和IT专业人员都面临着一个共同的挑战:如何在虚拟机中无缝使用物理主机上的USB外设设备?无论是开发过程中的调试设备、测试用的硬件密钥,还是日常办公中的打印机和扫描仪,传统虚拟机方案往往无法提供原生的USB设备支持。 Quickemu作为一款基于QEMU的快速虚拟机管理工具,通过创新的USB重定向技术完美解决了这一痛点。本文将深入解析Quickemu的USB重...

gitblog_00638的博客 1180

大数据平台——HDFS的Shell操作 (1)

HDFS的Shell操作 1.语法介绍 1.1 通用语法 hdfs dfs [选项] 1.2 创建文件夹 hdfs dfs -mkdir [-p]<paths> 1.3 列出文件、目录 [-d] 返回path [-h] 人性化显示大小(human-readble) [-R] 级联显示path下的目录 hdfs dfs -ls [-d][-h][-R]<paths> 显示级联目录 hdfs dfs -ls -R <paths> 1.4 新建文件 hdfs dfs -

王同学的博客 495

Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(四)

接下来要编译的是Usbredir,在编译之前大致介绍一下什么是Usbredir: usbredir is the name of a networkprotocol for sending usb device traffic over a network connection. It is alsothe name of the software package offering a pars...

星.云计算 286
上一篇: QEMU下虚拟机内的声卡模拟方法总结
下一篇: git指令学习速记
葫芦娃二娃
博客等级 码龄15年 1850粉丝 69原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值