找出可用 USB 端点的数量

找出可用 USB 端点的数量

我在嵌入式系统上运行 Linux。这片上系统系统有一个USB 2.0端口,并且数据表声称有 8 个可用端点。

有什么方法可以在软件中验证这一点吗?也许是/procor某处的条目/sys?我可以通过查看USB设备占用的端点数量/sys/bus/usb/devices/**/bNumEndpoints,但我想知道是否可以在软件中确定系统上可用端点的总数。

答案1

{您链接的数据表](的第 46 页https://linux-sunxi.org/images/2/23/Allwinner_V3s_Datasheet_V1.0.pdf)说:

设备模式下最多 8 个用户可配置端点

“在设备模式下”意味着 SoC 充当 USB 设备而不是 USB 主机。在 Linux 中,这称为USB 小工具模式

要在运行时配置 USB gadget 模式,您显然需要内核构建选项 CONFIG_USB_CONFIGFS,它需要 CONFIGFS_FS。您还需要 USB_LIBCOMPOSITE 和一个或多个 USB_G_* 选项,具体取决于您希望 SoC 向其连接的 USB 主机呈现哪种功能。

配置 USB 小工具功能的描述见文档/usb/gadget_configfs.rst在 Linux 内核源文档中,以及同一目录中的其他 gadget_*.rst 文件记录了您可以使用的(部分)小工具功能。每个功能都将使用一个或多个端点,而使用此 SoC,您只有 8 个可用端点。

例如,如果您将 SoC 配置为提供单一ttyACM样式的串行通道,则需要三个端点:一个用于控制接口,两个用于数据接口(一个端点用于传输,另一个用于接收)。

如果安装了 debugfs,每个端点都会列为一行E: ...,因此/sys/kernel/debug/usb/devices

grep ^E: /sys/kernel/debug/usb/devices | wc -l

会告诉您当前 USB 小工具配置使用了多少个端点。

如果您不信任数据表,我想您可以选择使用数据表中指定的端点数量的小工具功能组合,尝试配置它,同时检查报告的任何错误,然后在 USB 主机端验证所有每个配置功能的端点都是可访问的。

如果您不知道您的 USB 设备/OTG 控制器芯片声称在小工具模式下支持多少个端点,我想您可以运行一个循环来创建 USB 小工具函数,直到出现错误,然后检查生成的函数和数量USB 主机系统将能够访问的端点。

答案2

lshw将列出您的端口,包括它们支持的标准。

相关内容