简而言之,我正在开发一个嵌入式系统,除其他外,它需要一个从 USB 主机端口到设备端口的桥(这只是第一步,稍后传输的信息将被过滤和更改) .
考虑到这基本上是一个 USB 窥探器/嗅探器,我认为应该有人编写了一个具有此功能的模块,但我的搜索被证明是徒劳的。
那么,对于这个问题:在 Linux 中将 USB 主机重定向到 USB 设备的最简单方法是什么?数据必须相同,所有描述符和端点必须匹配。它必须是 Linux 友好的,我可以用 C/C++ 编写代码并且有一些编写内核模块、驱动程序等的经验。
最佳答案
我在 http://www.elinux.org/BeagleBoard/GSoC/2010_Projects/USBSniffer 找到了以前的工作
在我看来,在 Linux 中将 USB 主机重定向到 USB 设备的最简单方法是同时使用 Linux 的外围 USB 堆栈和 Linux 的小工具 USB 堆栈。这些堆栈负责低级别,因此您的代码应该只关注这两个堆栈之间的高级接口(interface)。额外的好处是嗅探器(通过 usbmon)几乎是免费的。
由于这种方式将处理 Linux 内核,因此它必须对 Linux 友好。这两个堆栈的接口(interface)(至少)在 C 中可用。因此,满足您的条件。
关于c++ - 桥接 USB 主机到设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125459/