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

COLUMN:カーネル2.2系におけるUSB

 カーネル2.2を利用している人は,現在でも多いはずだ。それでも,カーネル2.4への移行を躊躇しながらもUSBデバイスの利用を検討している人も,また多いだろう。カーネル2.2でUSBバスを使いたい場合,カーネルを再構築する際にUSBの設定項目に注目しよう。まず最初に,viエディタなどで,/usr/src/linux/arch/i386/config.inファイルを開き,次の行を探す。

# source drivers/usb/Config.in

 次のように先頭の“#”を削除し,保存終了する。

source drivers/usb/Config.in

 この操作によって,makemenuconfigコマンド実行後に[USB drivers - not for the faint of heart --->]というメニュー項目が現れる。これでUSBの設定ができるようになるのだ。

 [USB drivers - not for the faint of heart --->]というメニュー項目のなかには、[Support for USB (EXPERIMENTAL!)]という項目があり,その中にチェックを付けると次の項目が階層下に現れる。

  • UHCI (intel PIIX4 and others) support?
  • OHCI (compaq and some others) support?
  • OHCI-HCD (other OCHI opt. Virt. Root Hub) support?
  • USB mouse support
  • USB keyboard support
  • USB audio parsing support

 ここではまず,使用しているパソコンのUSBコントローラの種類に合わせて[UHCI (intel PIIX4 and others) support?][OHCI (compaq and some others) support?][OHCI-HCD (other OCHI opt. Virt. Root Hub) support?]のいずれかを選択する([Y]キーを押して有効にするか[M]キーを押してモジュールとして組み込む)。

 次に,その下の階層下にある[USB mouse support][USB keyboard support][USB audio parsing support]の中から,使用したいUSBデバイスを選択して有効にする。そしてカーネルを再構築後,再起動すればUSBデバイスを利用できる環境ができあがっている。

 USBデバイスの中でも,USBキーボードに関しては[USB keyboard support]を有効化しておけばケーブルを差し込むだけで利用できる。利用するにあたってのほかの設定は不要だ。しかしUSBマウスについては,[USB mouse support]を有効にするだけでは利用できない。キャラクタデバイスを作る必要があるからだ。作成方法は次の通りである。

# mknod /dev/hidbp-mse-0 c 10 32

 キャラクタデバイスを通してUSBマウスが利用可能になる。


上記のコマンドによるキャラクタデバイスの作成は,カーネル2.4の場合と,メジャー番号,マイナー番号が異なるので注意してほしい。カーネル2.4の場合,メジャー番号は13,マイナー番号は63である

 たとえば,X Window SystemでUSBマウスを使うにはデバイスとしてこの/dev/hidbp-mse-0を利用するよう指定する。

 具体的には,/etc/X11/XF86Configファイルの“Section "Pointer"”の部分に,次のように“Port "/dev/hidbp-mse-0"”を追加し,PS/2マウスを選択してある“Device "dev/mouse"”の行頭に“#”を入れ,コメントアウトさせる。

Section "Pointer"
Protocol "PS/2"
# 以下の行を加えた
Port "/dev/hidbp-mse-0"
# 以下の行をコメントアウトした
# Device "/dev/mouse"

 しかし,いずれにせよカーネル2.2ではプラグ&プレイを本格的にサポートしていないという実情がある。ほかにも一部のUSBデバイスはサポートされていないなど制限が伴うのである。本格的にUSBを利用するのであれば,カーネル2.4にアップグレードする必要があるのだ。

 ただし,プラグ&プレイに関しては,usbmgrというユーティリティを利用すると,USBデバイスが装着されるタイミングでモジュールを組み込み,抜かれたタイミングでモジュールを解放するといった処理を実現することも可能だ。このため,カーネル2.2の場合でもプラグ&プレイを全面的に利用できないというわけではない。


PREV 9/10 NEXT