将驱动程序转换为Linux

Nit*_*tay 5 linux usb driver libusb

我正在尝试将linux驱动程序写入我拥有Windows驱动程序的设备(类似于此处描述的情况,但是设备不同)

我正在使用Libusb进行linux端的通信,而SourceUSB作为我的USB嗅探器(在windows机器上).现在我认为我已经正确地复制了控件和批量,但是我无法真正测试针对windows的linux日志.我正在VM上运行Ubuntu 12.04.

所以我的问题是:

  1. 有多平台记录器吗?这可以真正简化日志比较过程.
  2. 当我将USB设备连接到VM时 - 我在Windows中获得了VM驱动程序.嗅探这个设备可以准确地告诉我设备看到了什么,对吧?我的意思是 - 这是我想要嗅闻的地方吗?

编辑:我已经在Windows上编译了我的应用程序(libusb是跨平台的 - 非常感谢libusb开发人员做得很好)并且我的应用程序正常工作.

在Linux上运行我的应用程序时嗅探VM驱动程序时,我看到USB的请求为VENDOR_DEVICE而不是CONTROL_TRANSFER和BULK_OR_INTERRUPT.如果我理解正确,这似乎是问题,因为这是设备"看到"的内容.

所以我想我现在的问题是为什么Linux将我的请求作为供应商发送.

另一个编辑:问题解决了:

  1. 听VM驱动程序给了我错误的请求(我正在听VM驱动器流量,而不是我想要的,我的USB linux驱动程序的流量
  2. Libusb完全是多平台的.我花了几分钟时间让我的代码在windows下编译,从那里调试和比较日志非常容易

Lau*_*eau 5

您可以使用Wireshark捕获USB流量.本页介绍了如何为Linux和Windows执行此操作:CaptureSetup/USB