【问题标题】:Limit USB gadget driver speed限制 USB 小工具驱动程序速度
【发布时间】:2012-11-22 04:43:48
【问题描述】:

tl;dr:如何强制 Linux 拒绝高速 USB 连接,使其默认为全速?

完整解释:

我正在编写基于 Linux 小工具零的 USB 小工具驱动程序。我正在测试的硬件具有高速 USB,而实际产品并非如此。出于某种原因,该小工具(尽管它在任何配置上都没有高速描述符)被报告为高速小工具 (struct usb_gadget->speed==USB_SPEED_HIGH 在复合小工具的 set_config 函数上)。 这使得驱动程序在配置绑定之前惨遭失败(尝试加载显然不存在的高速配置)。

我正在寻找一种方法来通知 Linux 该小工具不具备高速能力,以便当主机连接时,从全速切换到高速会被拒绝(或会产生类似结果的东西)。

【问题讨论】:

  • 在运行编译过程之前,您可以尝试卸载或将某些模块列入黑名单,例如uhciohci...看看man modprobe
  • 我最终应用的解决方案是修改usb gadget驱动(我是指硬件控制器),使硬件拒绝高速请求。 (我设计了硬件/嵌入式系统,所以我已经有了所需的文档,如果应用于通用 PC,我认为这不是最好的解决方案。

标签: linux kernel usb composite


【解决方案1】:

uhciohci 内核模块驱动 USB 1.X 控制器。 ehci 模块驱动 USB 2.0 控制器。

如果您卸载其中一个,则对另一个实施限制。

【讨论】:

  • 虽然这应该有效并且确实回答了这个问题,但它并没有解决我的问题。主机仍在高速连接到我的小工具(这不应该发生,因为我从内核禁用了 USB2.0 支持)。
【解决方案2】:
enum usb_device_speed       speed;
enum usb_device_speed       max_speed;

you can setup usb_composite_driver

【讨论】:

  • 请在您的答案中添加解释。
猜你喜欢
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2013-03-27
  • 2014-04-04
相关资源
最近更新 更多