AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 421801
Accepted
Klas Lindberg
Klas Lindberg
Asked: 2018-02-05 04:26:33 +0800 CST2018-02-05 04:26:33 +0800 CST 2018-02-05 04:26:33 +0800 CST

lsusb 列出同一 USB 集线器下不同 PCI 控制器上的设备

  • 772

据我了解,连接到不同控制器的设备应显示在不同的 USB 总线下。但是,当我将键盘连接到 xHCI 控制器时,它仍然列在 EHCI 总线之一下。查看>>>>清单中的标记:

$ lspci | grep -i usb
>>>> 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)

$ lspci -vs 00:14.0
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04) (prog-if 30 [XHCI])
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB xHCI
Flags: bus master, medium devsel, latency 0, IRQ 27
Memory at ef920000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
Kernel driver in use: xhci_hcd

所以我确实有一个 xHCI 控制器。它是主板上的一个单独的物理端口。

$lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>>>> Bus 004 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
>>>> Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 014: ID 046d:c03d Logitech, Inc. M-BT96a Pilot Optical Mouse
Bus 003 Device 015: ID 195d:2030 Itron Technology iONE 
Bus 003 Device 013: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 012: ID 0424:2228 Standard Microsystems Corp. 9-in-2 Card Reader
Bus 003 Device 011: ID 0424:2602 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 010: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 003: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
>>>> Bus 003 Device 016: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

总线 004 上的“超高速”3.0 集线器应该是 xHCI 控制器。然而,键盘连接到总线 003:

$lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>|__ Port 1: Dev 16, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 10, If 0, Class=Hub, Driver=hub/2p, 480M
            |__ Port 1: Dev 11, If 0, Class=Hub, Driver=hub/4p, 480M
                |__ Port 1: Dev 12, If 0, Class=Mass Storage, Driver=usb-storage, 480M
                |__ Port 3: Dev 13, If 0, Class=Hub, Driver=hub/4p, 480M
                    |__ Port 2: Dev 15, If 0, Class=Human Interface Device, Driver=usbhid, 12M
                    |__ Port 2: Dev 15, If 1, Class=Human Interface Device, Driver=usbhid, 12M
                    |__ Port 2: Dev 15, If 2, Class=Human Interface Device, Driver=usbhid, 12M
                |__ Port 4: Dev 14, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

事实上,无论我如何将设备连接到物理控制器,它们总是出现在同一总线下。有谁知道可能发生了什么?

系统

Processor: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz
OS: Debian GNU/Linux testing (buster) with ACS patch, IOMMU enabled.
Kernel: Linux 4.10.0-acs+ (x86_64)
Version: #3 SMP PREEMPT Sun Feb 26 00:03:48 CET 2017
Processor: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz : 3900.00 MHz
Board: Asus Z87-PRO
BIOS: AMI version 1707, VT-d/x enabled
usb pci
  • 2 2 个回答
  • 3096 Views

2 个回答

  • Voted
  1. telcoM
    2018-02-05T04:56:24+08:002018-02-05T04:56:24+08:00

    xHCI 控制器实际上将两条总线合二为一。超高速巴士:

    /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    

    ...和传统的 USB2 之一:

    /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    

    请注意,两者都在使用xhci_hcd驱动程序。

    这可能是为了在 USB 实现的所有层中最大限度地减少较旧、较慢的设备对更快的 USB3+ 设备的干扰。

    • 1
  2. Best Answer
    dirkt
    2018-02-05T08:15:05+08:002018-02-05T08:15:05+08:00

    5G 模式下的 USB 3.0 与 USB 2.0 或更早版本不兼容,因此他们实现兼容性的方式是为旧设备使用与 USB 2.0 相同位置的一对引脚,并为“真正的”USB 3.0 使用两个新引脚对设备,如您在 Wikipedia 上的引脚排列中所见。

    因此,您的00:14.0xHCI 控制器实际上是两个控制器合二为一:每个连接器中“旧”对的 USB 2.0 传统控制器,显示为总线 3(具有 14 个端口),以及两个“真正的”USB 3.0 控制器“每个连接器中的“新”对,显示为总线 4(带 6 个端口)。

    您的一些 USB 连接器将在您的 PC 上标记为蓝色,并且它们连接到两个控制器。如果您插入 USB 2.0 设备,它将物理连接到总线 3,而如果您插入“真正的”USB 3.0,它将物理连接到总线 4。这就是插入同一连接器的不同设备可以显示的原因一辆或另一辆公共汽车。

    另请注意,旧版控制器具有更多端口,并且还连接到一些集线器。我不知道你是否连接了任何外部集线器,以及有多少,但主板上也有内部集线器。

    因此,您的所有连接器完全有可能只属于 xHCI 控制器,而lspci显示的另外两个 EHCI 控制器实际上并未连接到任何东西(或者可能连接到主板上的连接器)。

    找出方法是将 USB 2.0 设备依次连接到每个连接器,记下它出现在哪个总线上,以及它出现在哪个端口(和集线器端口)下。然后对“真正的”USB 3.0 设备重复相同的练习,您应该知道如何设置 USB 连接器。

    • 1

相关问题

  • 如何安全地将 U 盘/设备插入 Linux 计算机?

  • 如何从 USB 而不是 cdrom 安装 pppoe 包?

  • 如何修改 U 盘以将设备节点设为 /dev/sda1 而不是 /dev/sda?

  • 设置似乎没有 I/O 端口的 PCIe 串行卡

  • 将 USBIP 用于正在移除和重新连接的设备

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve