この特集のトップページへ
この回のトップページへ

USBドライバの構造

 USBのデバイスドライバは,次に挙げるよう2階層構成になっている。まずは,このことを把握してほしい。

2階層構造を持つUSBデバイス認識
 USBが動作するためには,2階層それぞれにはドライバが用意される。ホストドライバとUSBコントローラのドライバであり,UHCI(Universal Host Controller Interface)とOHCI(Open Host Controller Interface)のいずれかが役割を持つ。ホストドライバがUSB全体を制御するデバイスドライバとなり,その下には個々のUSBデバイスのデバイスドライバが存在するのだ。
個々のデバイスドライバ
 USBデバイスが動作するためには,前述のように各デバイスごとにデバイスドライバが必要だ。どのようなデバイスドライバを必要とするのかは,利用したいUSBデバイスにより異なる。また,デバイスドライバには,汎用的に利用できる「クラスドライバ」と,そのUSBデバイス固有の「ベンダードライバ」の2つがある。クラスドライバとは,たとえばキーボード,マウスといった大きな枠組みとしてのデバイスドライバであり,USBデバイスの機種依存なく利用できるものだ。

 つまりLinuxでUSBを利用するには,ホストドライバをまずインストールしておき,さらに利用したいUSBデバイスのデバイスドライバを個別にインストールする必要がある。

 個々のデバイスドライバは,USB以外のデバイスドライバと同じ考えだ。たとえばそのUSB機器がネットワークインターフェイスとして認識されるのであれば,ほかのネットワークインターフェイスのデバイスドライバとほぼ同等な設定をすればよい。サウンドデバイスの場合も同じく,ほかのサウンドデバイスと同等な設定をすることになる。USBだからといって特殊な設定はあまりない。

 LinuxのUSBの構造やデバイスドライバについては,www.linux-usb.orgにある「The Linux USB sub-system」という文章に詳細が記されている。USBを使う際には,このドキュメントにひと通り目を通しておくとよいだろう。

PREV 2/10 NEXT