将驱动程序转换为 linux

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于将驱动程序转换为 linux的主要内容,如果未能解决你的问题,请参考以下文章

将 .jar 转换为适用于 Windows、Linux 和 Mac 的应用程序

写一个Linux C程序,将一个文本文件中的所有小写字母转换为大写字母。

Linux中的语音到文本转换

将 BMP + WAV 转换为视频 (XviD) 的脚本实用程序?

我的 PHP Web 应用程序如何将视频转换为声波图像?

将Prolific USB-RS232 PL2303转换器的驱动程序添加到适用于MYB-AM335X的Linux Build