Por que o lsusb mostra dispositivos conectados a uma porta USB 3 como conectados ao hub raiz USB2?

5

Estou executando o Ubuntu em um Dell Chromebook 11, que tem duas portas USB 3 e um leitor de cartão SD. Eu estava tentando estabelecer se o leitor de cartão SD seria capaz de velocidades USB 3 (e, portanto, se vale a pena comprar um cartão SD de 130MB / s), mas não posso dizer se ele está fisicamente conectado a USB3 internamente.

Uma maneira que pensei em fazer isso é rodar o lsusb depois de conectar um cartão SD - no entanto, se eu conectar um dispositivo USB2 a uma das portas USB 3, ele será conectado ao hub USB 2 de qualquer forma. Se eu colocar um dispositivo USB 3 na mesma porta, ele será conectado ao hub USB 3.

  1. Por que o lsusb mostra dispositivos USB2 conectados a uma porta USB3 como conectados à raiz do USB 2?
  2. Existe uma maneira de obter o mapeamento físico, em vez de lógico, de portas USB para hubs?
  3. Voltando à minha razão original para investigar isso, existe uma maneira de saber a que velocidade o leitor de cartão SD interno é capaz antes de comprar um?
por Marcos Scriven 11.01.2016 / 11:05

2 respostas

4

Why does lsusb show USB2 devices connected to a USB3 port as being attached to the USB 2 root?

Resposta:

In USB 3.0, dual-bus architecture is used to allow both USB 2.0 (Full Speed, Low Speed, or High Speed) and USB 3.0 (SuperSpeed) operations to take place simultaneously, thus providing backward compatibility.

Fonte: link

Por exemplo, em uma máquina que contém duas portas USB 2.0 e uma porta USB 3.0, a saída do comando lsusb mostra:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 2.0 root hub 
Bus 003 Device 002: ID 8087:8004 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0008 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 058f:6386 Alcor Micro Corp. Multi Flash Reader
Bus 002 Device 001: ID 1d6b:0007 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

O hub raiz USB 2.0 extra faz parte do hub raiz USB 3.0 e está disponível para oferecer compatibilidade retroativa com os padrões USB 2.0. Como resultado, quando você conecta dispositivos USB2 à porta USB3, eles são mostrados conectados ao hub raiz 2.0.

Is there a way to get the physical rather than logical mapping of USB ports to hubs?

Resposta: Use lsusb -t

-t     Tells lsusb to dump the physical USB device hierarchy as a tree.

Fonte: lsusb man page

Coming back to my original reason for looking into this, is there a way to tell what speed the internal SD card reader is capable of before buying one?

Isso pode ser feito usando as etapas a seguir. Aqui estamos considerando um laptop com um leitor de cartão integrado da Alcor Micro Corp.

  1. Use o comando lsusb

    $ lsusb 
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 2.0 root hub 
    Bus 003 Device 002: ID 8087:8004 Intel Corp. 
    Bus 003 Device 001: ID 1d6b:0008 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 058f:6386 Alcor Micro Corp. Multi Flash Reader
    Bus 002 Device 001: ID 1d6b:0007 Linux Foundation 3.0 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    Descubra o número do barramento do leitor de cartões. Neste exemplo, é 001

  2. Use lsusb -t

    $ lsusb -t 
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M 
    |__ Port 5: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    

    No final de cada linha, a velocidade de comunicação negociada para cada dispositivo é mostrada em Mbits / s.
    O 480Mbit / s é chamado "Hi-Speed" e é usado com USB2.0.

Para USB 3.0, a velocidade de comunicação negociada é de 5000Mbit / s chamada "SuperSpeed" (5Gbit / s)

Fonte: link

Resultado: o leitor de cartões da Alcor Micro Corp suporta os padrões USB 2.0 e não os padrões USB 3.0, já que o 480M foi mencionado na saída.

    
por code 24.01.2016 / 00:20
0

Da página man :

DESCRIPTION

       lsusb  is  a  utility for displaying information about USB buses in the
       system and the devices connected to them.

Eu sugiro que você use lshw (você pode ter que sudo apt-get install lshw primeiro). Na página lshw man :

DESCRIPTION

       lshw  is  a  small tool to extract detailed information on the hardware
       configuration of the machine. It can report exact memory configuration,
       firmware version, mainboard configuration, CPU version and speed, cache
       configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems  and
       on some PowerPC machines (PowerMac G4 is known to work).

       It  currently  supports  DMI  (x86 and IA-64 only), OpenFirmware device
       tree (PowerPC only), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA  (only
       tested on x86), SCSI and USB.
    
por waltinator 11.01.2016 / 14:21