我正在为Ubuntu 16.04中的数据采集设备编写usb设备驱动程序。数据采集设备目前在Windows下工作,制造商只提供Windows的驱动程序,我需要它在Linux下工作。
因此,为了进行反向工程,我在Windows中使用Wireshark捕获了数据。我找出了所有的设置urb,我可以将数据发送到数据采集设备,并且工作正常,但问题是接收数据。似乎有来自端点1和3(它们是端点中的大部分)的连续(周期性)数据。在Windows中,似乎没有任何请求包去usb设备接收来自端点1和3的数据,但在Linux中,只有当我发送某种类型的请求(例如,读文件操作)时才会接收数据。
我发现在Windows中有一个叫做"Continuous Reader“的东西,但是我在Linux中找不到任何从usb设备读取连续数据的提示。https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/how-to-use-the-continous-reader-for-getting-data-from-a-usb-endpoint--umdf-
非常感谢您的帮助,谢谢!
发布于 2018-02-06 13:28:17
您确定设备没有intr-IN端点来声明数据的可用性,然后使用bulk IN传输来获取数据吗?它如何配置EP2,我假设它是中断?如果您使用libusb之类的工具,则可能需要根据intr-EP描述设置一个中断轮询器。
https://stackoverflow.com/questions/48635843
复制相似问题