【发布时间】:2014-06-06 07:10:31
【问题描述】:
主机部分将是一个由 c# 编写的 PC 程序,我将在其中使用 LibUSBdotnet 进行通信。 我的问题是如何让 Linux 端拾取和响应。我真的不知道从哪里开始。 每当我尝试搜索它时,所有结果显示都是“linux如何与连接到它的设备进行通信”。 或者设备是主机还是客户端都没有关系,因为它们使用相同的管道/总线? 我可以在“/dev/usb***”中使用一些东西吗?
我见过“libusb”,我相信它是 libusbdotnet 的 linux 表亲。 我可以以某种方式使用这个库吗?如果有人能告诉我正确的方向,我将不胜感激。
【问题讨论】:
-
也许可以创建一个 Linux USB Gadget 驱动程序; Linux 内核中的 Gadget Zero 驱动程序可能是一个起点。
-
所以我尝试研究 USB 小工具,它打开了很多东西。我还看到它有“gadget serial”并尝试安装它以尝试通过串行进行 USB 通信。但似乎 g_serial 无法与 g_mass_storage 配合使用。这是否意味着只要我使用 g_mass_storage 它就不会与其他驱动程序配合得很好?即使我基于零号小工具制作驱动程序,它们也可能无法协同工作?
-
您可以查看在单个 UDC 上实现多个小工具设备的“多功能复合小工具”(multi.c)。 IIRC,并不是所有的 UDC 驱动都支持这个功能。
-
@myninjaname,好的,我要安装 g_multi 模块。现在看来我必须找到一个合适的复合驱动程序或 .inf 以便 windows 可以正确检测到它?
-
我没有使用过 multi_gadget,所以我无法为您提供帮助。我最好的建议可能是确保您可以让多功能小工具在两个 Linux 系统之间运行。一旦您知道您的 UDC 可以在多功能小工具上正常工作,然后继续使其在 Windows 上工作。
标签: linux-kernel linux-device-driver embedded-linux