强制单个 USB 3.0 端口作为 USB 2.0 工作

强制单个 USB 3.0 端口作为 USB 2.0 工作

我有几台 Dell XPS 13 机器出现左侧 USB 3.0 端口间歇性故障,如此主题。由于多个外部硬盘的静默损坏/断开连接,我丢失了数据。

证据表明,硬件设计存在缺陷(内部连接端口和控制器的电缆屏蔽不足),导致在 USB 3.0 协议下运行时出现中断。因此,不太可能通过软件/固件更新完全解决该问题。

我正在寻找的是软件解决方案强制将单个端口降级为使用 USB 2.0,即使其中插入了支持 USB 3.0 的设备。有些人报告说使用 USB 2.0 集线器可以成功,但我正在寻找一种不需要额外硬件的解决方案。

Windows 将 USB 控制器报告为Intel(R) USB 3.0 eXtensible Host Controller。两个端口都通过同一个根集线器。请告诉我是否需要提供有关控制器的更多详细信息。

没有 BIOS 选项可以切换 USB 速度(事实证明,有,但没有明确显示)。如果可能的话,我希望另一个端口以 3.0 运行。

答案1

这很可能是不可能的,或者非常设备特定。如果可能的话,这将取决于系统如何处理 2.0/3.0 兼容性。我预计低级硬件和协议检测以及传输频率管理将在硬件/固件中处理 - 而不是操作系统。如果是这样的话,那么完全由硬件供应商提供支持以在驱动程序中强制使用“传统模式”。我非常怀疑这是否普遍 - 如果有的话 - 是否完成。

您应该查阅硬件制造商的文档以获取有关此内容的更多信息。

答案2

虽然这不是软件解决方案,但如果您使用 USB 2 延长线,它将阻止插头中的 5 个 USB 3 针脚物理连接承载主机和设备之间 USB 3 握手的电线。USB 2 设备或电缆只有 4 个针脚。当仅连接 4 个针脚时,USB 3 端口将默认为 USB 2 信号通信。USB 2 延长线仅承载 4 根连接 USB 2 通信的 4 个针脚的电线。

答案3

这是可能的。它涉及更改 xHCI 控制器中的配置寄存器,因此它显然是特定于芯片组的。这是在 Linux 上完成的方式。我想在 Windows 上也应该可以做到这一点,但我不知道要使用什么实用程序。

要将两个端口都设置为 USB 2.0 模式:

sudo setpci -H1 -d 8086:1e31 d8.l=0

右端口 3.0 和左端口 2.0:

sudo setpci -H1 -d 8086:1e31 d8.l=1

右端口 2.0 和左端口 3.0:

sudo setpci -H1 -d 8086:1e31 d8.l=2

更改 d8 处的寄存器 (USB3_PSSEN) 可将端口设置为 USB 2.0 模式,但它们仍位于 xHCI 控制器上。要切换到 EHCI,您还必须更改 d0 处的寄存器 (XUSB2PR)。例如,要从 EHCI 控制器运行两个端口,您必须执行以下操作:

sudo setpci -H1 -d 8086:1e31 d8.l=0

sudo setpci -H1 -d 8086:1e31 d0.l=0

该数据表的第 17.1 节中记录了这些寄存器:英特尔® 7 系列/C216 芯片组家族平台控制器中枢 (PCH)

答案4

我有一个 xbox 360 控制器,但我的 HP Stream Notebook 11 有 usb 3.0,它需要 usb 2.0。但是,如果您使用 USB 2.0 集线器,您将能够获得 3.0 速度,但使用 2.0 连接。

希望这对你有帮助,杰克

相关内容