Tips

LinuxServer USBについて

クラスドライバ

USBでは、「デバイスクラス」と呼ぶ、周辺機器の機能ごとにデータ送受信形式を
標準化仕様があります。デバイスクラス仕様に準拠した機器類は、「クラスドライバ」と
呼ばれる共通のデバイスドライバ・ソフトウェアによって動作します。

それぞれのデバイスには固有の「クラスID」が設定されており、デバイスは自身が属す
クラスのデバイスドライバを使用すればよく、製品ごとにドライバが必要ありません。

なお、特定のデバイスクラスに属さないUSBデバイスについては、ベンダー専用の
「ベンダーデバイスドライバ」を利用します。

主なデバイスクラスは次の表のとおりです。

クラスID クラス名 用途
00h 0 指定なし 使われていない
01h 1 Audio スピーカー、マイク、サウンドカード
02h 2 USB communications device class イーサネットカード、モデム
03h 3 USB human interface device class キーボード、マウス
07h 7 Printer プリンター
08h 8 USB mass-storage device class USBメモリ、外部記憶装置
09h 9 USB hub USB ハブ
E0h 240 Wireless Controller Wi-Fiアダプタ、Buletoothアダプタ
FFh 255 ベンダ-定義 ベンダー定義のドライバを使用することを示す

ホットプラグ

USBではマシンの電源を入れた状態でUSB機器の取り付け、取り外しができます。
この機能をホットプラグと呼びます。

Linuxではホットプラグに対応した周辺機器をマシンに接続すると
動的にデバイスを管理するデーモンであるudevがカーネルからの
通知を受け取り、/etc/udev/以下のスクリプトを実行し、
デバイスファイルを動的に作成します。

マシンに接続されているUSB機器は’lsusb’コマンドで確認できます。

[コマンド]
# lsusb
[実行例]
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd

‘lsusb’コマンドはオプション’-v’で詳細な情報が、オプション’-t’で
接続デバイスをツリー形式で表示します。

[コマンド]
# lsusb -t
[実行例]
Bus# 1
`-Dev# 1 Vendor 0x1d6b Product 0x0001
`-Dev# 2 Vendor 0x0627 Product 0x0001

この例では特にUSB機器は接続されていないようです。

また、’cat /proc/bus/usb/devices’でも接続されている
USBデバイスの情報が確認できます

[コマンド]
# cat /proc/bus/usb/devices

[実行例]
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0001 Rev= 2.06
S: Manufacturer=Linux 2.6.32-279.9.1.el6.x86_64 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:00:01.2
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0627 ProdID=0001 Rev= 0.00
S: Manufacturer=QEMU 0.12.3
S: Product=QEMU USB Tablet
S: SerialNumber=1
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search