カーネル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の場合でもプラグ&プレイを全面的に利用できないというわけではない。
|