Android USBHost 模式 - 为什么我的 IRDA 设备在 ClaimInterface 上失败?

2023-12-01

我的 Xperia Neo (Cyanogen Mod 9) 连接了一个 Lindy IRDA USB 桥接器。我已经更改了功能以支持主机模式等。代码中一切看起来都很好。我检测到该设备。我可以看到接口和两个端点(一进一出),但是一旦我尝试声明接口,它就会失败,无论我是否尝试强制声明。

似乎没有简单的方法可以找出索赔失败的原因。尽管 strace 给了我一个线索,因为对声明接口的 ioctl 调用失败并出现设备未找到错误。

忽略失败只能让我到达无法排队或发送的请求。

我的问题是(我认为):-

  1. 究竟缺少什么导致索赔失败?
  2. 有没有一种方法可以解决这个问题,理想情况下不需要root?
  3. 有没有办法以某种方式推翻索赔?

好的,所以我似乎在这里回答了我自己的问题,但我发现很多人对 USB 主机的明显支持和可以观察到的“奇怪”行为感到困惑,所以希望这个答案可以帮助一些人你出去。

我提出了 3 个问题,我对 1 和 3 有了明确的答案,但现阶段我对另一个不太确定。

1) 究竟缺少什么,为什么会导致不良索赔? 问题是该设备,一个Lindy IRDA 适配器主机(我的 Xperia Neo 手机)正在检测到该配置,但它支持的唯一配置需要太多电量,手机无法支持。

奇怪的是,这并不能阻止 a) 设备被 Android 库检测和枚举,或者 b) 设备看起来已通电(红色 LED 发光)

在任何系统库调用失败的 ClaimInterface() 时都没有报告,但是连接设备时运行的 dmesg|tail 提供了必要的洞察。

dmesg | tail
<3>usb 1-1: device v066f p4200 is not supported
<6>usb 1-1: New USB device found, idVendor=066f, idProduct=4200
<6>usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
<6>usb 1-1: Product:  IrDA/USB Bridge
<6>usb 1-1: Manufacturer:  Sigmatel Inc
<6>usb 1-1: rejected 1 configuration due to insufficient available bus power
<4>usb 1-1: no configuration chosen from 1 choice

进一步调查表明,这个小设备声称需要 440mA 电流,这似乎相当多,但似乎对此无能为力。

问题 2 是否可以采取不需要 root 的措施来解决此问题? 看来不是。理论上,我可以通过使用 USB Y 电缆或类似的黑客技术为设备提供外部电源,但我不认为这会改变手机拒绝需求的根本问题。即使获得 root 权限,也不清楚是否可以采取任何措施来覆盖电源配置文件。

问题3,有没有办法覆盖claimInterface()失败并强制通信? 这是直言不讳的。该设备根本不是由内核创建的,因此首先没有什么可以覆盖的。这确实让人有些困惑为什么 Android 库仍然提供它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android USBHost 模式 - 为什么我的 IRDA 设备在 ClaimInterface 上失败? 的相关文章

  • 如何在 OSX Catalina (10.15) 中使用 Wireshark 捕获 USB 流量

    我正在尝试让 Wireshark USB 捕获工作 显然 Catalina 之前的技巧就是调出界面 以便 Wireshark 可以看到它 https forums developer apple com thread 95380 https
  • 通过 USB 模拟 UART

    有谁知道是否可以通过 USB 模拟 UART 简单串行发送和接收 这将如何实现 我在 Microchip 网站上找到了这个链接 但不是很容易找到 http www microchip com forums m522571 print asp
  • 使用 C# 向 USB 连接的 GPRS 调制解调器发送 AT 命令

    任何人都可以给我一个关于如何访问连接到 USB 端口的 GPRS 调制解调器的良好指示或指南 我应该为我的程序制作一个 USB 驱动程序以将 AT 命令发送到调制解调器吗 或者就像一个路由器 我可以使用IP地址访问它 谢谢 如果 Windo
  • 通过 USB 记忆棒携带和操作整个开发盒。可行的?

    最近我一直在考虑投资一个有价值的 USB 笔式驱动器 类似于 并在虚拟机上安装操作系统并开始在其上进行开发 我的想法是 我希望能够携带我的开 发箱 成为一名Windows 发行版用于 Net 开发和Linux发行版像 RoR Perl 之类
  • Android:与充当主机的 USB 设备通信

    我们制作了一个可以充当 USB 主机或从机并处理其接收到的数据的设备 我想使用Android手机通过USB向其发送数据 我的研究使我得出结论 如果不修改硬件或操作系统 我们就无法在 USB 主机模式下使用 Android 设备 这样做不是一
  • libv4l2:打开流时出错:设备上没有剩余空间

    我尝试为 opencv 获取立体声对 我将 Logitech B910 和 Logitech C910 网络摄像头连接到 USB 但有这个错误 我玩弄了怪癖参数并设置outfmt mjpeg在mplayer中 但又出现此错误 在哪里可以找到
  • 如何枚举 USB 设备*并*对其进行读/写?

    我需要与一个自定义 USB 设备进行通信 它没有特定的驱动程序 该设备不显示为 dev tty I 发现 http www signal11 us oss udev 我该如何使用libudev枚举 USB 设备 假设我设法获得相应的stru
  • 使用Python直接向USB发送信号

    如何使用 Python 将 USB 端口连接设置为高或低 这可用于定制 USB 设备 例如 假设我有一个 LED 连接到 USB 端口 数据线 现在通过代码我想闪烁它或控制它 现在 这可以通过使用任何微控制器 Arduino Raspber
  • 在 Python 中将 USB 视频捕获设备友好名称与 OpenCV 端口号相关联

    我想在 Windows 平台上使用 Python 获取外部 USB 视频捕获设备的友好名称和 USB 端口号 我正在使用 OpenCV 从 USB 捕获设备捕获视频 OpenCV 将 USB 端口称为 1 找到的第一个工作摄像头 0 对我来
  • 如何枚举所有HID设备? C#

    我需要枚举连接到我的 PC 的所有 HID 设备 我尝试使用这个答案 https stackoverflow com a 3331509 902424 但它枚举了 USBHub 设备 但我在那里找不到我的 HID 设备 EDIT 我很高兴知
  • 从网络浏览器中检测和访问 USB 设备 - 即使用插件

    是否可以通过插件 activeX Java 或 Flex 编写一个能够检测从 USB 设备通道读取数据流的浏览器插件 我做了一些研究 但没有找到答案 http support microsoft com kb 832678 http sup
  • Android:如何以编程方式连接/断开 OTG

    我想在我的 Android 设备中以编程方式连接和断开 USB OTG 笔式驱动器 硬盘驱动器等 对于USB 我使用以下路径在连接到PC时绑定 取消绑定USB sys bus usb drivers usb bind or unbind 我
  • 我可以从哪里开始使用可编程硬件?

    一段时间以来 我一直渴望至少学习一点有关硬件编程的知识 并想在这里提出要求以获得一些起点 我是一位相当有成就的程序员 具有 Delphi 和 Objective c 经验 但从未听过设备端口 中断 我什至不知道术语 更不用说对硬件进行编程了
  • LibUsb 声明接口访问被拒绝 Java

    我希望能够从 USB 计步器读取数据 我正在 Java 中尝试此操作 并且使用 LibUsb 和 Usb4Java 库 我似乎无法认领 USB 管道或类似的东西 我正在使用的代码 final Context context new Cont
  • 使用 BeagleBone Black 内核 >= 3.8 打开/关闭 USB 电源

    我需要 关闭 gt 睡眠几秒钟 gt 打开 beaglebone black 的 USB 电源 能够对连接到 USB 的设备 华为 E220 调制解调器 进行硬件重置 已经尝试过软重置 使用取消绑定 绑定和授权0 1 但软件重置不足以使设备
  • 如何在 ADB 连接期间禁用电池充电?

    问题描述 每次我在电脑和手机之间连接 USB 线时 电池都会自动充电 我想使用 ADB 协议 但我不想在 ADB 连接期间为电池充电 是否可以关闭此充电功能 当然 我该怎么做呢 环境 Android 操作系统 4 及更高版本的手机 我只需要
  • 我的 Android 设备需要安装哪个驱动程序才能运行我的应用程序?

    我购买了 intex mobile 来在真实设备中测试我的 Android 应用程序 然而 该设备不存在于 OEM USB 驱动程序列表中 android 提供的设备列表中 我检查了 intex 官方网站 但不确定到底需要安装哪个驱动程序
  • Swift 上的 USB 连接委托

    Swift 中是否有一个代表可以让我的班级知道何时通过计算机的 USB 插入新设备 我想知道我的程序何时可以使用新设备 Eric Aya 的答案已经相当不错了 但这里有一个 Swift 3 的改编 我把大部分丑陋的东西包裹在一个USBWat
  • 如何在非零端点(libusb)上发送 USB 控制事务?

    我正在编写代码来了解 Freescale Kinetis 微控制器上的 USB 外设 我已经设法在 Linux 主机上完成枚举 并且可以使用 EP0 上的供应商自定义代码发送和接收数据包 与 libusb 测试程序交互 看起来我可以在微控制
  • 以编程方式连接和断开 USB,“无需拔出和重新插入”

    我需要以编程方式连接和断开 USB 也就是说 我已经插入了USB设备 我需要使用 C NET 应用程序传输文件 该应用程序将监视特定文件夹并将文件从该文件夹传输到 USB 驱动器 我需要在文件传输后断开 USB 设备的连接 并在需要时连接

随机推荐

  • Keras训练部分模型问题(关于GAN模型)

    我在使用keras实现GAN模型时遇到了一个奇怪的问题 对于GAN 我们需要先建立G和D 然后添加一个新的序列模型 GAN 然后依次添加 G 添加 D 当我这样做时 Keras 似乎反向传播回 G 通过 GAN 模型 D train on
  • PWA 未安装为 WebApk

    我制作了一个 PWA 它通过了所有 LightHouse 因素 即使在访问网站时也会显示 AddToHomeScreen 弹出窗口 但是当您将其添加到主屏幕时 它不会显示在应用程序抽屉中 并且其图标上有一个 chrome 徽章 我不知道该怎
  • 空白第一个 UITableView 节标题

    我的 UITableView 有 2 个部分 我希望我的第一个标题不存在 没有空间 什么都没有 第一个单元格接触屏幕顶部 我想要为我的第二部分添加一个自定义部分标题 如果我不使用我可以这样做 UIView tableView UITable
  • R Hessian 矩阵

    我需要创建函数的 Hessian 矩阵 如下所示 func lt expression sin x y cos x y vars lt c x y 我也需要二阶导数作为表达式 并且需要多次计算它们 所以我制作了一个一阶导数列表和一个二阶导数
  • git 更新后脚本不起作用

    编辑我的后老问题有几次 我提出了一个新问题 因为现在这是一个新问题 In git hooks post update I have echo a gt gt home pi log git update server info git st
  • XML:处理大数据

    您推荐哪种 XML 解析器用于以下目的 XML 文件 已格式化 包含空格 大约 800 MB 它主要包含三种类型的标签 我们称它们为 n w 和 r 它们有一个名为 id 的属性 我必须尽快搜索该属性 删除我不需要的属性可以节省大约 30
  • 如何使用 Firebase 客户端通过多个客户端连接(Node.JS 客户端库)连接到 Nest API?

    我正在构建一个需要处理多个用户的中央模块 让他们订阅其巢上的数据更改 根据我的搜索 Node JS 库不允许我与 Google Nest API 进行多个 Firebase 连接 在不使用 REST 或 REST 流式传输的情况下 是否有任
  • ObjectSet.AddObject() 与 EntityCollection.Add()

    假设我有两个实体集 团队 和 玩家 我正在向系统添加新团队 为了便于讨论 假设我从一个文件 包含重复项 中添加一千个团队 该系统包含 100 个团队来启动 我的目标是避免重复 而不为每个添加的团队调用 SaveChanges 流程是查询新的
  • AJAX跨域调用

    我了解AJAX跨域策略 所以我不能只是打电话 http www google com 通过 ajax HTTP 请求并显示 结果在我的网站上的某个地方 我尝试使用 dataType jsonp 这实际上可以工作 但我收到语法错误 显然是因为
  • python 深拷贝和浅拷贝并传递引用

    关于python深拷贝和浅拷贝的问题 该帖子位于深拷贝和浅拷贝有什么区别 帮不了我 为什么例如1的和是6而不是10 e g 1 kvps 1 1 2 2 theCopy kvps copy both point to the same me
  • 获取 pandas 数据框中两个日期时间列的差异[重复]

    这个问题在这里已经有答案了 我有一个数据框 它显示的类型为 signup time 151112 non null datetime64 ns purchase time 151112 non null datetime64 ns 实际值的
  • 通用Windows平台和Live SDK

    我有个问题 我最近在我的计算机上安装了 VS 2015 和 Windows 10 拥有通用应用程序真是太棒了 我计划在 UWP 上转换我的一些程序 但我有一个问题 在我的一个程序中 我允许用户将其数据保存在 OneDrive 上 如果 On
  • 如何将 stringVar() 从 tk 转换为 pyqt

    我有这个函数作为我的代码的一部分 我正在尝试从 tk 迁移到 pyqt 但我在 pyqt 方面没有太多经验 我正在尝试生成 Tkinter 字符串变量列表来存储条目 def generate stringvars self temp ent
  • PHP date() 函数没有给出正确的时间

    我试图找出为什么 php date 给我错误的时间 将实际时间设置为 2 小时 这给出了 2011 01 01 03 14 04 而不是 2011 01 01 05 14 04 小时减少 2 我没有更改 date 的时区 当用户访问该网站时
  • 如何从 dict 中获取值列表?

    如何获取 Python 字典中的值列表 在 Java 中 以列表形式获取 Map 的值就像执行以下操作一样简单list map values 我想知道 Python 中是否有一种类似的简单方法可以从字典中获取值列表 dict values返
  • 指向整数数组的指针与指向整数的双指针

    我本以为整数数组是指向整数的指针类型 因此这意味着指向整数数组的指针是指向整数的双指针类型 但我得到的结果却表明事实并非如此 我怀疑整数数组类型不是指向整数的指针类型 这是我的例子 int main int p 3 1 2 3 int pt
  • 迭代时从哈希集中删除元素[重复]

    这个问题在这里已经有答案了 所以 如果我尝试从 Java 中删除元素HashSet迭代时 我得到并发修改异常 从数组中删除元素子集的最佳方法是什么HashSet就像下面的例子一样 Set
  • 在云功能中,我如何从另一个集合加入以获取数据?

    我正在使用云功能向移动设备发送通知 我在 Firestore 中有两个集合clientDetail and clientPersonalDetail 我有clientID两个集合中相同 但日期存储在clientDetail名称存储在 cli
  • Oracle SQL:如何显示空周/没有数据的周?

    如同这个问题 但我的数据集还有一个包含许多 ID 的附加列 每个 ID 都有一个按恒定时间范围回溯的数据集 并且某些周可能会丢失数据 我想填写丢失周的值 例如 我想要这个 ID WEEKEND DAY VALUE A00 2012 01 0
  • Android USBHost 模式 - 为什么我的 IRDA 设备在 ClaimInterface 上失败?

    我的 Xperia Neo Cyanogen Mod 9 连接了一个 Lindy IRDA USB 桥接器 我已经更改了功能以支持主机模式等 代码中一切看起来都很好 我检测到该设备 我可以看到接口和两个端点 一进一出 但是一旦我尝试声明接口