vme*_*map 9 linux drivers linux-kernel usb-device
我有一个随机扬声器,我想为其开发一个驱动程序,以便我可以向dev文件系统报告统计数据、电池等。但是,我很难找到扬声器的供应商和设备 ID 以便将其与驱动程序正确关联。
我什至不知道制造商是谁,我的 Linux 机器没有检测到它(lsusb和其他实用程序),T&G 有一个扬声器,看起来和我的一模一样,但我的有一个不同的徽标(橙色花),而不是T&G 就是其中之一。
每个设备都有与其关联的供应商和产品 ID 吗?
如果是这样,如果您不知道您的设备并且您的机器无法识别它,您如何找到它?
是否甚至可以通过扬声器的 USB 端口向我的机器报告电池和其他统计数据,我相信该端口应该与 USB 卡一起使用?
Ljm*_*art 13
每个通过 USB 通信的设备都有一个 VID(供应商 ID)和 PID(产品 ID)。供应商 ID 是通过 USB 实施者论坛 (USB.org) 获得的,这或多或少保证了其唯一性。
当您插入 USB 设备时,dmesg即使该设备不受支持,您也应该在 的输出中看到它。我还没有见过不以这种方式显示的 USB 设备。
另一种选择是,该设备根本不通过 USB 进行通信,而仅使用 USB 连接器进行充电。
每个“USB 设备”都有一个供应商 ID 和产品 ID。然而,我们必须小心“USB 设备”的含义。并非所有带有 USB 端口的设备都是“USB 设备”。
首先,USB 主机不被视为“设备”。原则上(暂时忽略 USB C)主机应具有 A 连接器,设备应具有 B 连接器,能够充当两者的设备应具有 AB 连接器。在实践中,这一点常常被忽视。
其次,很多东西只是使用USB连接器作为充电的电源端口,根本不充当USB主机或设备。
如果它没有出现在 lsusb 中,则几乎可以肯定它不是 USB 设备。
USB C 进一步搅浑了水,该连接器可用于主机、设备和“双角色设备”(既可以充当主机又可以充当设备的设备)。
在最简单的层面上,仅在设备模式下运行的 C 端口可以使用“CC”引脚上的电阻来指示这一事实。固定主机端口稍微复杂一些,因为除非另一端连接了设备,否则它们不应该提供电源,但仍然相对简单。IIRC 双角色端口应该在充当主机端口和充当设备端口之间快速来回切换。
然而,USB C 还可以选择在“CC”引脚上使用主动协商。这可用于协商更高的功率水平、协商与数据相反方向的功率传输,甚至协商使用除 USB 之外的协议。
| 归档时间: |
|
| 查看次数: |
3743 次 |
| 最近记录: |