AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 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 lista dispositivos em diferentes controladores PCI no mesmo hub USB

  • 772

Pelo que entendi, os dispositivos conectados a diferentes controladores devem aparecer em diferentes barramentos USB. No entanto, quando conecto um teclado ao controlador xHCI, ele ainda está listado em um dos barramentos EHCI. Veja os >>>>marcadores nas listagens:

$ 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

Então, eu realmente tenho um controlador xHCI. É uma porta física separada na placa-mãe.

$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

O hub 3.0 "superspeed" no barramento 004 deve ser o controlador xHCI. O teclado, no entanto, está conectado ao barramento 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

Na verdade, não importa como eu conecto dispositivos a controladores físicos, eles sempre aparecem no mesmo barramento. Alguém tem alguma ideia do que pode estar acontecendo?

Sistema

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 respostas
  • 3096 Views

2 respostas

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

    O controlador xHCI tem na verdade dois barramentos em um. O ônibus superveloz:

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

    ... e o USB2 tradicional:

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

    Observe que ambos estão usando o xhci_hcddriver.

    Provavelmente, isso é para minimizar a interferência de dispositivos mais antigos e lentos nos dispositivos USB3+ muito mais rápidos em todas as camadas da implementação USB.

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

    O USB 3.0 no modo 5G não é compatível com USB 2.0 ou anterior, portanto, a maneira como eles implementaram a compatibilidade é usar um par de pinos na mesma posição do USB 2.0 para dispositivos legados e dois novos pares de pinos para USB 3.0 "real" dispositivos, como você pode ver, por exemplo, na pinagem na Wikipedia.

    Portanto, seu 00:14.0controlador xHCI é realmente dois controladores em um: um controlador legado USB 2.0 para o par "antigo" em cada conector, que aparece como barramento 3 (com 14 portas) e um controlador USB 3.0 "real" para os dois " new" em cada conector, que aparece como barramento 4 (com 6 portas).

    Alguns de seus conectores USB serão marcados em azul no seu PC e estão conectados a ambos os controladores. Se você conectar um dispositivo USB 2.0, ele se conectará fisicamente ao barramento 3, enquanto se você conectar um USB 3.0 "real", ele se conectará fisicamente ao barramento 4. É por isso que diferentes dispositivos conectados ao mesmo conector podem aparecer em um ou outro ônibus.

    Observe também que o controlador legado tem muito mais portas e também está conectado a alguns hubs. Não sei se você conectou algum hub externo e quantos, mas também há hubs internos na placa-mãe.

    Portanto, é totalmente possível que todos os seus conectores pertençam apenas ao controlador xHCI e os outros dois controladores EHCI que lspcimostram não estarem realmente conectados a nada (ou possivelmente aos conectores na placa-mãe).

    A maneira de descobrir é conectar um dispositivo USB 2.0 a cada conector por vez, anotar em qual barramento e em qual porta (e porta de hubs) ele aparece. Em seguida, repita o mesmo exercício com um dispositivo USB 3.0 "real" e você deve saber como os conectores USB são configurados.

    • 1

relate perguntas

  • Como inserir com segurança o pendrive/dispositivo USB no computador Linux?

  • Como instalar o pacote pppoe do usb em vez do cdrom?

  • Como modificar um stick USB para ter um nó de dispositivo como /dev/sda1 em vez de /dev/sda?

  • Configurando uma placa serial PCIe que não parece possuir portas de E/S

  • Use USBIP para dispositivos que estão sendo removidos e reconectados

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve