【问题标题】:Converting a driver to linux将驱动程序转换为 linux
【发布时间】:2012-09-23 06:35:07
【问题描述】:

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

我在 linux 端使用 Libusb 进行通信,并将 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 下编译,从那里调试和比较日志非常容易

【问题讨论】:

    标签: linux usb driver libusb


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多