问题

问题

问题

如何防止 Linux 尝试激活主板上损坏的 USB 端口?

概述

我的主板上有一个损坏的 USB 端口(也没有插入任何东西):

USB 1-3:设备描述符读取/64,错误-71

此 (usb 1-3) 端口会阻止 USB 1-4 端口初始化,直到系统放弃它为止。澄清一下,根据 dmesg,我的端口通常按以下顺序初始化:

usb 5-1:    available instantly       [USB2.0 Hub] (motherboard)
usb 3-1:    available instantly       [Generic USB Multimedia Keyboard] (frontside of PC)
usb 1-1:    available instantly       [Razer Goliathus Extended Chroma Mousepad] (motherboard)
usb 3-2:    available instantly       [FREE] (frontside of PC)
usb 3-4:    available instantly       [AURA LED Controller] (internal)
usb 5-3:    available instantly       [FREE] (motherboard)
usb 5-4:    available instantly       [FREE] (motherboard)
usb 5-1.2: available instantly       [Razer Basilisk Ultimate Dongle] (motherboard)
usb 5-1.3: available instantly       [Razer Mouse Dock] (motherboard)
usb 1-3:    -BROKEN PORT-            [FREE] (motherboard)
usb 1-4:    10s initalization delay [Razer Huntsman Elite] (motherboard)

如果我将键盘 (Razer Huntsman Elite) 插入 USB 1-4 端口,我必须在到达 tty0 后等待 10 秒,然后才能开始响应击键。此外,如果未禁用 USB 电源管理,则不会注册 USB 1-4 的按键(usbcore.autosuspend=-1)。键盘可立即与任何其他端口(5-1 / 3-1 / 1-1 / 3-2 / 5-3 / 5-4)配合使用。

仅当 USB 1-3 端口停止枚举后,USB 1-4 端口才可用(当 tty0 中弹出此消息时):

usb usb1-port3: 无法枚举 USB 设备

日志

日志ctl -b https://pastebin.com/raw/f9Brfzt3

消息 https://pastebin.com/raw/H6Wm2v5M

我尝试过的

我无法使用此 udev 规则禁用损坏的端口,因为它首先不可用:

$ echo '1-3' | sudo tee /sys/bus/usb/drivers/usb/unbind
1-3
tee: /sys/bus/usb/drivers/usb/unbind: No such device

解决方法1:

将键盘插入除 USB 1-4 和 USB 1-3 之外的任何端口。

解决方法2:

使用usbcore.autosuspend=-1等待 10 秒后我就可以使用 USB 1-4。

笔记:

USB 1-4 可立即用于:

  • [GRUB2]。
  • [BIOS]。
  • [Windows 引导加载程序]。
  • [Windows 11]。

如果通过以下方式禁用 USB 电源管理,则 USB 1-4 在到达 tty0 后 10 秒即可工作:

  • [SystemD] NixOS 23.05pre454549.545c7a31e5d(内核 6.1.11 & 5.15.93 & 5.10.167)。
  • [SystemD] Debian 12 Bookworm(内核 6.1.0)。
  • [SystemD] PopOS 22.04 LTS(内核 6.0.12)。

USB 1-4 在 tty0 中工作 2 秒:

  • [OpenRC] Alpine Linux Extended v3.17(内核 5.15.93)。

出于好奇我尝试过的其他事情:

  • [BIOS] 将我的 X570-E 游戏主板 (ComboV2PI 1208) 更新到最新 BIOS
  • [BIOS] 禁用 xHCI 切换
  • [BIOS] 在 BIOS 中禁用 IOMMU(iommu=soft 内核参数也没有产生不同)
  • [BIOS] 禁用快速启动

相关内容