You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

禁用xhci_pci模块解决应用启动缓慢却导致键盘失效的相关问题咨询

禁用xhci_pci模块解决应用启动缓慢却导致键盘失效的相关问题咨询

兄弟,我太懂你这种两难的处境了——好不容易找到能把应用启动时间从一分钟压到几秒的办法,结果直接把键盘搞罢工了,这换谁都头疼。咱们一步步来捋清楚问题,找个两全的方案:

为什么禁用xhci_pci会让键盘失效?

首先得搞明白xhci_pci是干啥的:它是USB 3.0/3.1/3.2及以上版本的主机控制器驱动模块,你的笔记本内置键盘(哪怕是看起来“集成”的那种)大概率也是通过USB总线连接到主板的,卸载这个模块等于直接关掉了USB控制器,键盘自然就失去响应了。

怎么在解决kworker高CPU问题的同时保留键盘功能?

直接黑名单xhci_pci显然不是最优解,咱们试试这些针对性的替代方案:

1. 给xhci_pci添加内核参数修复bug

很多时候kworker占满CPU是因为xhci_pci的某些兼容性bug,不用卸载模块,加个内核参数就能解决:

  • 编辑GRUB配置文件:sudo nano /etc/default/grub
  • 找到GRUB_CMDLINE_LINUX_DEFAULT这一行,把以下参数加进去(二选一试试):
    • xhci_hcd.msi=0 (禁用MSI中断,部分AMD平台的USB控制器对MSI支持不好)
    • xhci_hcd.quirks=0x2000000 (启用特定的兼容性补丁)
  • 保存文件后更新GRUB:sudo update-grub
  • 重启系统,看看应用启动速度和键盘功能是不是都正常了。

2. 仅禁用特定的xhci_pci设备(而非整个模块)

如果你的笔记本有多个USB控制器,可以只移除出问题的那个,而保留键盘用的控制器:

  • 先列出所有USB控制器的PCI地址:lspci | grep USB
  • 找到对应高CPU占用的那个控制器(通常是标有“USB 3.x/4.x Host Controller”的条目),记下它的PCI地址(比如00:14.0)
  • 临时移除该设备:echo 1 | sudo tee /sys/bus/pci/devices/0000:00:14.0/remove(把地址换成你自己的)
  • 如果临时移除后问题解决且键盘正常,要永久生效的话,可以写个udev规则:
    创建文件/etc/udev/rules.d/99-disable-bad-xhci.rules,内容为:
    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1022", ATTR{device}=="0x790b", RUN+="/bin/sh -c 'echo 1 > /sys/bus/pci/devices/$kernel/remove'"
    
    这里的vendor和device值可以从lspci -nn | grep USB的结果里拿到(比如[1022:790b])

3. 尝试更新内核或BIOS

你的硬件是比较新的Ryzen 7000系列+RTX 4060,老内核可能对新硬件的USB控制器支持不好:

  • 升级到22.04的HWE内核:sudo apt install linux-generic-hwe-22.04,重启后看看问题是否解决
  • 去华硕官网查一下你的笔记本型号有没有最新的BIOS更新,很多时候BIOS更新能修复USB控制器的兼容性问题

强行黑名单xhci_pci会带来哪些其他问题?

如果真的硬着头皮把xhci_pci加入黑名单,除了键盘失效,你还可能遇到这些麻烦:

  • 所有USB 3.x及以上的外接设备都无法使用:包括U盘、移动硬盘、USB-C显示器、外接显卡、USB无线网卡、摄像头、USB耳机等
  • 笔记本内置的部分设备可能罢工:比如触控板、指纹识别器、内置摄像头,这些很多都是走USB总线的
  • 系统启动异常:部分现代笔记本的BIOS/UEFI依赖USB控制器,黑名单后可能卡在启动界面,甚至无法识别启动磁盘

备注:内容来源于stack exchange,提问作者Bruno Golosio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:05:27