linux-kernel - Linux USB 小工具自定义配置

标签 linux-kernel usb embedded-linux usb-descriptor

我使用的是运行 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)。

问题:

  1. 我看不到新添加的接口(interface)暴露给 i.Mx Board 或 PC 上的用户空间,就像标准 NCM 接口(interface)在 i.Mx Board 和 PC 上可以被视为 usb0(以太网设备)一样我可以使用 usb0 对板进行 PING 操作。

  2. 如果我必须将这个新添加的接口(interface)与一些 g_"driver"连接起来(就像标准 NCM 接口(interface)连接到 g_ether 一样);那么BULK I/O 的最佳选择是什么?

  3. 如何使这个新添加的供应商特定接口(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/

相关文章:

linux-kernel - 当我尝试写入设备时,为什么我的内核模块会抛出 "broken pipe"错误?

database - 在高输入频率应用程序中保留磁盘空间的策略

linux-kernel - 基于 x86 的系统的板文件

linux - Yocto 中是否有类似于 buildroot 的任何 .config 文件

linux - 如何在 ARM Linux 内核中提供 Coredump 支持

linux - 将 Ext4 打补丁并编译为内核模块

delphi - Jedi USB项目读写Delphi

android - 无法通过 USB 网络共享连接到 Tomcat

linux-kernel - Linux 用户空间中通过/dev/mem 与 PCIe 设备进行双向通信?

c - 如何在 Linux 内核中创建一个全局可访问的结构