简而言之,我正在开发一个嵌入式系统,其中包括从USB主机端口到设备端口的桥接器(这只是第一步,稍后传输的信息将会被过滤和改变)。将USB主机桥接到设备
考虑到这基本上是一个USB窥探器/嗅探器,我想有人应该写一个能够做到这一点的模块,但我的搜索已被证明是徒劳的。
因此,对于这个问题:在Linux中将USB主机重定向到USB设备的最简单方法是什么?数据必须相同,所有描述符和端点必须匹配。它必须是Linux的友好,我可以在C/C++编写代码,并与编码内核模块,驱动程序等
简而言之,我正在开发一个嵌入式系统,其中包括从USB主机端口到设备端口的桥接器(这只是第一步,稍后传输的信息将会被过滤和改变)。将USB主机桥接到设备
考虑到这基本上是一个USB窥探器/嗅探器,我想有人应该写一个能够做到这一点的模块,但我的搜索已被证明是徒劳的。
因此,对于这个问题:在Linux中将USB主机重定向到USB设备的最简单方法是什么?数据必须相同,所有描述符和端点必须匹配。它必须是Linux的友好,我可以在C/C++编写代码,并与编码内核模块,驱动程序等
我发现以前的工作在http://www.elinux.org/BeagleBoard/GSoC/2010_Projects/USBSniffer
最简单的方法来重定向USB主机的一些经验在我看来,Linux中的USB设备使用Linux的外设USB堆栈和Linux的gadget USB堆栈。这些堆栈会处理低级别,所以您的代码应该只关注这两个堆栈之间的高级接口。额外的好处是嗅探器(通过usbmon)几乎免费。
因为这样处理Linux内核,它必须是Linux友好的。这两个堆栈的接口(至少)在C中都可用。因此,您的条件得到满足。
谢谢你的链接,以后再检查一下。基本上是的,我的水平稍高一点。没有那么灵活,但我受到一些严重的时间限制。如果我想要改善这一点,我也会这样做。 – user1783395
基本上你需要编写你自己的驱动程序,它应该处理数据输入/输出。您应该开始研究如何在Linux上开发USB驱动程序。 – garzanti