【问题标题】:USB bandwidth / host controller issues - LinuxUSB 带宽/主机控制器问题 - Linux
【发布时间】:2015-09-14 22:31:02
【问题描述】:

我有 12 个 USB 2.0 设备插入运行 Ubuntu 14.04 的英特尔 NUC D54250WYK。

运行lshw -short 显示两个不同的 USB 总线和两个主机控制器(xHCI 和 eHCI)。

所有 USB 设备都出现在同一总线上并使用 xHCI,无论它们插入的端口如何。结果,我在 dmsg 中看到以下错误:

Not enough host controller resources for new device state.
Not enough bandwidth for altsetting 0. 

有没有办法强制设备到特定的总线?

我还了解到 Linux 可能会遇到 xHCI 问题。有没有办法在不重新编译内核的情况下强制 eHCI?英特尔在 BIOS 中没有提供该选项。

【问题讨论】:

    标签: linux-kernel linux-device-driver


    【解决方案1】:

    上次我检查了这个,你有点纠结。似乎xHCI 被编译到内核中,而不是作为模块,如果你在eHCI/aHCI/oHCI 而不是xHCI 中编译,USB 整体中断,可能是由于一些内置的支持某些主板上的板载 USB 控制蓝牙和 WIFI 设备。 DO NOT UPDATE YOUR BIOS yet... see if the option to disable xHCI still exists on yours.

    目前,您最好的选择似乎是在您的 BIOS 中禁用 xHCI。这可能会禁用所有 USB3 控制器,但允许 USB2 控制器正常工作,而不会出现此问题。

    关于您描述的英特尔设备,我没有看到很多 USB 端口,所以我假设您使用的是集线器。从the tech specs for your device 看来,您必须访问内部接头才能访问 USB2 端口。

    【讨论】:

    • 我可以在另一台机器的 BIOS 中禁用 xHCI 并成功启动所有 12 台设备。我的目标机器英特尔 NUC 上没有此选项。我尝试了几个不同的 BIOS 版本,但没有该选项。
    • @chris_mac 那么你可能会被****,对不起。许多人抱怨在较新的 BIOS 版本中禁用了该选项。看来您最好的选择是尝试降级 BIOS(如果支持),或者使用不同的设备,或者等待修复(遗憾的是,我什至在 kernel.org 上找不到关于此的错误报告)。如果这对您没有帮助,我鼓励您将问题留给可以提供更多帮助的未来访问者。我自己尝试处理同样的问题,但没有运气。祝你好运:)
    【解决方案2】:

    对于面临此问题的其他人来说是个好消息。英特尔发布了新的 bios (v40),添加了禁用 xHCI 的选项。就我而言,我更新了 bios,禁用了 xHCI,一切都按预期工作。

    【讨论】:

      【解决方案3】:

      谨防仅具有 XHCI 的平台(Apollolake、Denverton)。 如果你在那里禁用 XHCI,你的硬件就会变砖。

      【讨论】:

        猜你喜欢
        • 2017-09-28
        • 2017-09-22
        • 1970-01-01
        • 2019-09-06
        • 2017-07-15
        • 2017-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多