LinuxServer USBについて
USBは、PCとキーボードやマウス、モデムなどの周辺機器とパソコンを
結ぶバスの規格の1つです。
USBの規格には、「1.1」「2.0」「3.0」があり、転送速度はそれぞれ
1.1 = 最大12Mbps
2.0 = 最大480Mbps
3.0 = 最大5Gbps
になります。
Linuxでは、カーネル2.4以降にUSB1.1に正式に対応し、
カーネル2.4.18以降(2.6も含む)でUSB2.0に対応しました。
USBの特徴として
・周辺機器を最大127まで接続可能
・USBポートからの電源の供給が可能(USBバスパワー)
・プラグ&プレイにより、ドライバを自動認識
・ホットプラグを実装し、PC起動中に抜き差し可能
があります。
LinuxではUSB関連のドライバとして主に3つあります。
ホスト・コントローラ・ドライバ
全てのUSBデバイスは、USBコントローラ(ホストコントローラ)を介して制御されます。
ホストコントローラーとしては次のものがあります。
・UHCI (Universal Host Controller Interface)
インテルおよびVIA社が主導したチップセット。USB1.1向け
・OHCI (Open Host Controller Interface)
MS社が主導し、インテル・VIA社以外のチップセットで使われている。USB1.1向け・
・EHCI (Enhanced Host Controller Interface)
インテル社が中心。UHCIとOHCIの互換性の問題を解消し、USB2.0向け。
・xHCI (eXtensible Host Controller Interface)
インテル社が中心。USB3.0向け。
ホストコントローラはLinuxのカーネルにより使用するモジュールが異なり、
どのホストコントローラを使用するかは下記のとおりです。
規格 | コントローラ | カーネル2.4のモジュール | カーネル2.6のモジュール |
USB1.1 | UHCI | usb-uhci | uhci_hcd |
USB1.1 | OHCI | usb-ohci | ohci_hcd |
USB2.0 | EHCI | サポートされていない | ehci_hcd |
USB3.0 | xHCI | サポートされていない | xhci_hcd |
また、使用しているマシンで、どのコントローラが使われているかは
‘lspci -v’を実行することで確認できます。
[コマンド]
# lspci -v
[実行結果]
00:01.2 USB Controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) (prog-if 00 [UHCI])
Subsystem: Red Hat, Inc Qemu virtual machine
Physical Slot: 1
Flags: bus master, fast devsel, latency 0, IRQ 11
I/O ports at c020 [size=32]
Kernel driver in use: uhci_hcd
uhci_hcdモジュールが使用されているのが分かります。