5

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

我使用 Libusb 在 linux 端进行通信,并将 SourceUSB 作为我的 USB 嗅探器(在 Windows 机器上)。现在我想我已经正确地复制了控件和批量,但我不能真正针对 Windows 测试 linux 日志。我在虚拟机上运行 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 下编译,从那里调试和比较日志非常容易
4

1 回答 1

5

您可以使用 Wireshark 来捕获 USB 流量。本页解释了如何在 Linux 和 Windows 上执行此操作:CaptureSetup/USB

于 2012-10-02T13:14:58.303 回答