Почему lsusb показывает устройства, подключенные к порту USB 3 как подключенные к корневому концентратору USB2?

Я использую Ubuntu на Dell Chromebook 11, который имеет два порта USB 3 и устройство чтения карт SD. Я пытался установить, будет ли считыватель SD-карт поддерживать скорость USB 3 (и, следовательно, стоит ли покупать карту SD со скоростью 130 МБ / с), но я не могу сказать, физически ли он подключен к USB 3 внутри.

Один из способов, который я решил сделать, - запустить lsusb после подключения SD-карты - однако, если я подключу устройство USB2 к одному из портов USB 3, оно все равно будет подключено к концентратору USB 2. Если я подключу устройство USB 3 к тому же порту, оно будет отображаться как подключенное к концентратору USB 3.

  1. Почему lsusb показывает, что устройства USB2, подключенные к порту USB3, подключены к корню USB 2?
  2. Есть ли способ получить физическое, а не логическое отображение портов USB на концентраторы?
  3. Возвращаясь к моей первоначальной причине, чтобы посмотреть на это, есть ли способ сказать, на какую скорость способен внутренний считыватель SD-карт, прежде чем покупать его?

2 ответа

Почему lsusb показывает, что устройства USB2, подключенные к порту USB3, подключены к корню USB 2?

Ответ:

В USB 3.0 архитектура с двумя шинами используется для одновременного выполнения операций USB 2.0 (Full Speed, Low Speed ​​или High Speed) и USB 3.0 (SuperSpeed), обеспечивая обратную совместимость.

Источник: https://en.wikipedia.org/wiki/USB_3.0

Например, на машине с двумя портами USB 2.0 и одним портом USB 3.0 вывод 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

Дополнительный корневой концентратор USB 2.0 является частью корневого концентратора USB 3.0 и доступен для обратной совместимости со стандартами USB2.0. В результате при подключении устройств USB2 к порту USB3 они отображаются подключенными к корневому концентратору 2.0.


Есть ли способ получить физическое, а не логическое отображение портов USB на концентраторы?

Ответ: использовать lsusb -t

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

Источник: lsusb справочная страница


Возвращаясь к моей первоначальной причине, чтобы посмотреть на это, есть ли способ сказать, на какую скорость способен внутренний считыватель SD-карт, прежде чем покупать его?

Это можно сделать с помощью следующих шагов. Здесь мы рассматриваем ноутбук со встроенным кард-ридером от Alcor Micro Corp.

  1. использование 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
    

    Узнайте номер шины считывателя карт. В этом примере это 001

  2. использование 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
    

    В конце каждой строки согласованная скорость связи для каждого устройства указывается в Мбит / с.
    Скорость 480 Мбит / с называется Hi-Speed ​​и используется с USB2.0.

Для USB 3.0 согласованная скорость передачи данных составляет 5000 Мбит / с и называется "SuperSpeed" (5 Гбит / с).

Источник: https://en.wikipedia.org/wiki/USB

Результат: кардридер от Alcor Micro Corp поддерживает стандарты USB 2.0, а не стандарты USB 3.0, так как в выводе упоминалось 480M.

От man страница:

DESCRIPTION

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

Я предлагаю вам использовать lshw (возможно, вам придется sudo apt-get install lshw первый). От lshwman страница:

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.
Другие вопросы по тегам