我使用的是运行 Linux Kernel 3.14.18 的 i.Mx6 Sabre Lite 板,该板应该充当 USB 设备(USB Gadget)。需要将一个供应商特定接口(interface)添加到 CDC/NCM 配置中。 CDC/NCM 配置默认有两个标准接口(interface) - 通信和数据。我已将第三个接口(interface)(特定于供应商)添加到 CDC/NCM 配置。该接口(interface)有两个批量(输入和输出)端点。一旦板使用“lsusb”连接到 PC,我就可以验证这个新添加的接口(interface)。
问题:
我看不到新添加的接口(interface)暴露给 i.Mx Board 或 PC 上的用户空间,就像标准 NCM 接口(interface)在 i.Mx Board 和 PC 上可以被视为 usb0(以太网设备)一样我可以使用 usb0 对板进行 PING 操作。
如果我必须将这个新添加的接口(interface)与一些 g_"driver"连接起来(就像标准 NCM 接口(interface)连接到 g_ether 一样);那么BULK I/O 的最佳选择是什么?
如何使这个新添加的供应商特定接口(interface)可供 i.MX6 用户空间使用,以便从 Linux 应用程序对其进行读/写?我开始了解 GadgetFS;但任何例子都是
希望有人在 Linux-USB 中尝试过类似的事情并可以指导。
最佳答案
供应商特定的接口(interface)不使用标准协议(protocol),因此不可能使用标准驱动程序之一。 (并且bulk不是一个协议(protocol),它是一种实现你自己的协议(protocol)的机制。)
要访问这样的接口(interface),您必须使用类似 libusb 的低级函数。 .
关于linux-kernel - Linux USB 小工具自定义配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37538448/