我正在尝试将 linux 驱动程序写入具有 Windows 驱动程序的设备(类似于此处描述的情况,但设备不同)
我使用 Libusb 在 linux 端进行通信,并将 SourceUSB 作为我的 USB 嗅探器(在 Windows 机器上)。现在我想我已经正确地复制了控件和批量,但我不能真正针对 Windows 测试 linux 日志。我在虚拟机上运行 Ubuntu 12.04。
所以我的问题是:
- 有多平台记录器吗?这可以真正简化日志比较过程。
- 当我将 USB 设备连接到 VM 时 - 我在 Windows 中获得了 VM 驱动程序。嗅探这个设备可以让我准确地看到设备看到的内容,对吧?我的意思是——这是我想闻的地方吗?
编辑:我已经在 Windows 上编译了我的应用程序(libusb 是跨平台的——非常感谢 libusb 开发人员做得很好)并且我的应用程序运行正常。
在 linux 上运行我的应用程序时嗅探 VM 驱动程序时,我看到对 USB 的请求是 VENDOR_DEVICE 而不是 CONTROL_TRANSFER 和 BULK_OR_INTERRUPT。如果我理解正确,这似乎是问题所在,因为这是设备“看到”的。
所以我想我现在的问题是为什么 Linux 将我的请求作为供应商发送。
另一个编辑:问题已解决:
- 收听 VM 驱动程序给了我错误的请求(我正在收听 VM 驱动程序的流量,而不是我想要的 USB linux 驱动程序的流量
- Libusb 是完美的多平台。我花了几分钟让我的代码在 Windows 下编译,从那里调试和比较日志非常容易