TIM Labs

USBデバイスをlsしよう

| コメント(0) | トラックバック(0)
Unix(Linux,...)では、lsは最もよく使用するコマンドではないだろうか。
ls は、ファイルとか、フォルダ(ディレクトリ)についての情報が分かる。

最近は、周辺機器をUSBで繋ぐのが一般的だ。
そして、何でも繋いでいるので、何がつながっているのか調べるのに困るくらいだ。
そうなると、lsコマンドと同じように、USBについてlsできないかと思うのが自然だろう。

実は、存在する。

lsusb(8)                                          Linux USB Utilities                                          lsusb(8)

NAME
       lsusb - list USB devices

SYNOPSIS
       lsusb [ options ]

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

OPTIONS
       -v, --verbose
              Tells  lsusb  to be verbose and display detailed information about the devices shown.  This includes con‐
              figuration descriptors for the device's current speed.  Class descriptors will be shown, when  available,
              for USB device classes including hub, audio, HID, communications, and chipcard.

       -s [[bus]:][devnum]
              Show only devices in specified bus and/or devnum.  Both ID's are given in decimal and may be omitted.

以下省略
ということで、さっそく使ってみよう。
fuji$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 03f0:134a Hewlett-Packard Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
fuji$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 7: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
fuji$ 
マウスは見えるが、キーボードが見えない。
実は、キーボードは、USBではなく、PS2でHHK(Happy Hacking Keyboard)をつないでいるからである。
とりあえず、周囲に転がっていた色々なものを挿してみた。

fuji$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 071: ID 04b0:0367 Nikon Corp. 
Bus 001 Device 003: ID 03f0:134a Hewlett-Packard Optical Mouse
Bus 001 Device 077: ID 0930:6544 Toshiba Corp. TransMemory-Mini / Kingston DataTraveler 2.0 Stick (2GB)
Bus 001 Device 069: ID 054c:05b8 Sony Corp. 
Bus 001 Device 061: ID 0b05:5b0f ASUSTek Computer, Inc. 
Bus 001 Device 068: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 070: ID 04da:21c1 Panasonic (Matsushita) 
Bus 001 Device 060: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
fuji$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 6: Dev 77, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 7: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 8: Dev 71, If 0, Class=Imaging, Driver=usbfs, 480M
    |__ Port 10: Dev 60, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 70, If 0, Class=Communications, Driver=, 480M
        |__ Port 1: Dev 70, If 1, Class=CDC Data, Driver=, 480M
        |__ Port 1: Dev 70, If 2, Class=Communications, Driver=, 480M
        |__ Port 1: Dev 70, If 3, Class=CDC Data, Driver=, 480M
        |__ Port 1: Dev 70, If 4, Class=Communications, Driver=, 480M
        |__ Port 2: Dev 68, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 61, If 0, Class=Vendor Specific Class, Driver=usbfs, 480M
    |__ Port 12: Dev 69, If 0, Class=Mass Storage, Driver=usb-storage, 480M
fuji$ 
Niconはデジカメ。
ToshibaとSonyはUSBメモリなのだが、表示は非常に違う。なぜ?
ASUSTekはandroid。
マウスはたくさん有る方が便利かもしれないと思って、2つ挿してみた。
Panasonicはガラ系。
Genesys LogicはUSBハブである。

USBバッテリーは挿しても表示されない。

もっと詳しく知りたければ、 -v オプションを使えばよい。
余りにも大量の情報が出てくるので、-s でデバイスを指定しないと困るだろう。
fuji$ lsusb -v -s 077

Bus 001 Device 077: ID 0930:6544 Toshiba Corp. TransMemory-Mini / Kingston DataTraveler 2.0 Stick (2GB)
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0930 Toshiba Corp.
  idProduct          0x6544 TransMemory-Mini / Kingston DataTraveler 2.0 Stick (2GB)
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              200mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
fuji$
lsusb は、知っていると時には役立つ程度のコマンドだ。
このコマンドの詳細は、各自で調べられたし。

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/734

コメントする

このブログ記事について

このページは、fujiが2018年9月 9日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「ナンプレの同一問題の判定」です。

次のブログ記事は「PyCon JP 2018 で弊社メンバーが発表しました」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ