web-dev-qa-db-ja.com

lsusbがUSB2ポートハブに接続されたUSB 3ポートに接続されたデバイスを表示するのはなぜですか?

2つのUSB 3ポートとSDカードリーダーを備えたDell Chromebook 11でUbuntuを実行しています。私は、SDカードリーダーがUSB 3の速度に対応できるかどうか(つまり、130MB/sのSDカードを購入する価値があるかどうか)を確立しようとしていましたが、物理的にUSB 3に内部接続されているかどうかはわかりません。

私がこれを行うと思った1つの方法は、SDカードを差し込んだ後にlsusbを実行することです-しかし、USB2デバイスをUSB 3ポートの1つに差し込むと、とにかくUSB 2ハブに接続されているように見えます。 USB 3デバイスをまったく同じポートに挿入すると、USB 3ハブに接続されているように表示されます。

  1. Lsusbが、USB3ポートに接続されたUSB2デバイスをUSB 2ルートに接続されていると表示するのはなぜですか?
  2. USBポートをハブに論理的にマッピングするのではなく、物理的にマッピングする方法はありますか?
  3. これを調査する私の元の理由に戻って、内蔵SDカードリーダーが購入できる前に、どのくらいの速度が可能かを知る方法はありますか
4
Marcos Scriven

Lsusbが、USB3ポートに接続されたUSB2デバイスをUSB 2ルートに接続されていると表示するのはなぜですか?

回答:

USB 3.0では、デュアルバスアーキテクチャを使用して、USB 2.0(フルスピード、ロースピード、またはハイスピード)とUSB 3.0(スーパースピード)の両方の操作を同時に行うことができるため、下位互換性が提供されます。

ソース: https://en.wikipedia.org/wiki/USB_3.

たとえば、2つの2.0 USBポートと1つの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ルートハブの一部であり、USB 2.0標準との下位互換性を提供するために使用できます。この結果、USB2デバイスをUSB3ポートに接続すると、それらは2.0ルートハブに接続された状態で表示されます。


USBポートをハブに論理的にマッピングするのではなく、物理的にマッピングする方法はありますか?

回答:lsusb -tを使用してください

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

ソース: lsusb manページ


これを調査する私の元の理由に戻って、内蔵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

    各行の終わりに、各デバイスのネゴシエートされた通信速度がMビット/秒で表示されます。
    480Mbit/sは「Hi-Speed」と呼ばれ、USB2.0で使用されます。

USB 3.0の場合、ネゴシエートされた通信速度は「スーパースピード」と呼ばれる5000Mbit/s(5Gbit/s)です。

ソース: https://en.wikipedia.org/wiki/USB

結果:Alcor Micro Corpのカードリーダーは、出力に480Mが記載されているため、USB 3.0標準ではなくUSB 2.0標準をサポートしています。

4
code

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.
0
waltinator