我想修改USB驱动程序以通过网络发送和接收USB数据。
以iMac和PC为例。我有一台iPod插在我的电脑上(纽约)。我希望我的iMac(在洛杉矶)能够将iPod识别为插入本地USB端口并能够与iPod通信。
忘记我的资格,或缺乏资格(我有网络背景,iOS应用程序,我玩过Java和C)。
哪里可以获取我可以修改的Windows USB驱动程序的源代码? Mac OS?
任何有关实现我的目标的提示或指示也将受到赞赏。
答案 0 :(得分:2)
在Mac OS X端,驱动程序以堆栈形式构建。你想要做的应该是相对简单的(在内核中没有什么是非常简单的)。您需要创建一个可以通过以太网与PC通信的驱动程序,并且看起来像USB设备一样到驱动程序匹配软件。然后其他一切都会自动发生。
源代码适用于Apple的USB stack。您还应该阅读IOKit API和IOKit device driver guidelines以及IOKit fundamentals。
哦,是的,你说你玩过Java和C.要在OS X上编写设备驱动程序,你需要学习一些C ++。
答案 1 :(得分:2)
看起来人们想出的东西接近你想要的东西。如果您决定自行推送,则您要求的USB驱动程序源为libusb。
答案 2 :(得分:1)
我建议你去看看USBIP项目。这适用于Linux和Windows,但不清楚MAC。如果您可以为MAC安装VHCI-Controller驱动程序,我们可以为MAC启动USBIP。
答案 3 :(得分:0)
听起来很像this product,但有点不确定他们是否适用于广域网。
答案 4 :(得分:0)
你不能使用某种远程桌面吗?
答案 5 :(得分:0)
我对我如何去做有一个大概的想法,但没有任何具体细节。基本上,我使用平台的驱动程序开发工具包在客户端计算机上编写USB设备模拟器。然后,我会在该系统中添加一个名为“网络USB主机”的虚拟设备,或类似的东西,维护一个开放端口,以监听来自服务器的通信并将其传递给您的虚拟USB设备。 IIRC,Windows DDK附带USB仿真框架,可能能够帮助您解决这个问题。
在服务器上,您必须挂钩USB子系统才能将原始USB数据包发送到客户端计算机。 libpcap和wireshark有USB capturing设施,但我不确定这是否适用于winpcap和Windows版本的wireshark。
编辑:请查看this以获取跨平台USB捕获替代方案。
答案 6 :(得分:0)
您可以购买OSR USB学习工具包:https://www.osronline.com/custom.cfm?name=index_fullframeset.cfm&pageURL=https://www.osronline.com/store/index.cfm
这实际上是具有已知接口的小型USB设备。 Windows驱动程序工具包(WDK)包含此设备的示例KMDF驱动程序:http://www.microsoft.com/whdc/driver/wdk/
这是学习Windows驱动程序开发和USB驱动程序开发的良好起点。但是,它仍然远离您的问题解决方案。