You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux下两个USB根集线器iSerial相同的原因及指定根集线器重置方法咨询

Linux下两个USB根集线器iSerial相同的原因及指定根集线器重置方法咨询

嘿,我来帮你梳理下这个问题,结合你的技嘉Aorus Gaming X470主板(AMD锐龙2代平台)和Arch Linux环境,咱们一步步拆解:

为什么两个USB根集线器会有相同的iSerial?

这其实是正常现象,和你的主板USB控制器设计有关:

  • 你的主板上的USB 2.0和USB 3.0根集线器,其实共享同一个XHCI PCIe控制器(对应你看到的0000:02:00.0这个PCI设备地址)。
  • XHCI控制器本身可以同时提供USB 2.0和USB 3.0的根集线器端口,这两个根集线器属于同一个物理硬件控制器,所以它们的iSerial会直接复用底层PCI设备的标识,而不是拥有各自独立的序列号。这就是为什么001:001(USB2)和005:001(USB3)会显示相同的iSerial。

如何确保重置操作针对005:001根集线器?

你之前用的unbind/bind XHCI驱动的方法,会重置整个PCI控制器下的所有根集线器(包括USB2和USB3的),所以才会影响到你的键盘鼠标所在的001:001。要单独重置005:001,可以试试下面两种方法:

方法1:使用usb-reset工具(简单直观)

Arch Linux的官方仓库里有usb-reset工具,专门用来重置单个USB设备:

  1. 先安装工具:
sudo pacman -S usb-reset
  1. 直接重置目标根集线器:
sudo usb-reset /dev/bus/usb/005/001

这个命令会精准定位到005:001对应的USB设备,只重置它,不会影响其他根集线器。

方法2:手动通过sysfs重置(无需额外安装工具)

如果不想装新工具,可以直接操作sysfs文件:

  1. 先找到005:001根集线器对应的sysfs路径里的reset文件:
find /sys/bus/usb/devices/usb5 -name reset

(这里usb5对应总线号005,你可以通过lsusb -t确认总线对应的设备路径)
2. 执行重置操作:

sudo sh -c 'echo 1 > $(find /sys/bus/usb/devices/usb5 -name reset)'

这个命令会向目标根集线器的重置节点写入1,触发单独重置。

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

火山引擎 最新活动