【发布时间】:2012-11-22 04:43:48
【问题描述】:
tl;dr:如何强制 Linux 拒绝高速 USB 连接,使其默认为全速?
完整解释:
我正在编写基于 Linux 小工具零的 USB 小工具驱动程序。我正在测试的硬件具有高速 USB,而实际产品并非如此。出于某种原因,该小工具(尽管它在任何配置上都没有高速描述符)被报告为高速小工具
(struct usb_gadget->speed==USB_SPEED_HIGH 在复合小工具的 set_config 函数上)。
这使得驱动程序在配置绑定之前惨遭失败(尝试加载显然不存在的高速配置)。
我正在寻找一种方法来通知 Linux 该小工具不具备高速能力,以便当主机连接时,从全速切换到高速会被拒绝(或会产生类似结果的东西)。
【问题讨论】:
-
在运行编译过程之前,您可以尝试卸载或将某些模块列入黑名单,例如
uhci、ohci...看看man modprobe! -
我最终应用的解决方案是修改usb gadget驱动(我是指硬件控制器),使硬件拒绝高速请求。 (我设计了硬件/嵌入式系统,所以我已经有了所需的文档,如果应用于通用 PC,我认为这不是最好的解决方案。
标签: linux kernel usb composite