これでマウスのインタフェースとプロトコルの種類がわかりました。次に進み ます。
さあ、これから、あなたのマウスが使っている割り込み番号を調べ、マシンに インストールしてある他の周辺機器と衝突しないことを確かめないといけませ ん。とくに後者は繰返しチェックするべきです! 付けてある他のデバイ スとぶつかっていないこと!
マウスが他のデバイスのいずれとも同じ割り込み番号を使おうとしていないこ とを確認すべきです。たとえ他のオペレーティング・システムでうまく動いて いようとも、Linux ではマウスが割り込み番号を他と共有することはできませ ん。すべての周辺機器についてドキュメントをチェックし、何がどの割り込み 番号を使っているのか調べましょう。
プラグ・アンド・プレイのカードを持っている場合は、仮に他のオペレーティ ング・システムで使っている場合なら、マウスが他のデバイスと衝突しないよ う OS が IRQ を初期化してくれているのかもしれないが、Linux ではこの手 のチェックができない、ということを心に留めておいてください。機器すべて において IRQ の衝突が無いことを確認する。これはあなた自身にかかってい るのです。
大抵の場合、IRQ4 が 1 番目のシリアル・ポート(/dev/ttyS0
)、
IRQ3 が 2 番目 (/dev/ttyS1
) (本当にこのへんのデバイスが付いて
いたら、の話ですよ。付いてないんなら、これらの IRQ は大手を振って使っ
ていいわけです) SCSI アダプタには IRQ5 を使うものがあり、そして IRQ12
を使うネットワーク・カードもあります。IRQ12 を使うカードは、PS/2 ポー
トの付いたマシンにとっては大問題。一般的に、IRQ12 を PS/2 ポート専用に
使うことを強いられてしまうからです。
ATI-XL、Inport、Logitech マウスの場合、カーネルのデフォルトは IRQ5 を 使うようになっています。ですので、コンパイル済みのカーネルを使わざるを 得ない場合(CD-ROM からブートした場合など)は、その割り込み番号を使わな ければならないことになるでしょう。Inport か Logitech のマウスを最近の カーネルで使うのなら、何番の割り込みを使うのかコマンド・ライン・オプショ ンを使ってカーネルに伝えることができますから、再コンパイルの手間は要り ません。
コンピュータのケースを開け、マウスが繋がっているカードを見れば、割り込 み番号(IRQ という名称でも知られています)を 2, 3, 4, 5 に設定する一連の ジャンパがきっとあるでしょう(運が良ければ ``INTERRUPT'' と記してありま す)。割り込み番号を変更するには、単にジャンパを今の位置から抜いて、正 しいピンの対に差し込むだけです。
****************************************************
*** ジャンパを変更する前は、コンピュータの電源が ***
*** 切ってあることを確認!! ***
****************************************************
ATI-XL、そしていくつかの ATI バスマウスなら IRQ をソフトウェアで選択可 能です - マウスと一緒に、IRQ を設定する MS-DOS プログラム (VSETUP.EXE) もついてきたはず。設定するには、(いったん) MS-DOS を立ち上げて、このプ ログラムを動かしてください。VSETUP プログラムには、垂直リフレッシュレー トを上げる(画面のちらつきを押える)ためのオプション ``/70'' があること に注意。 VSETUP プログラムではマウスのアドレスをプライマリとセカンダリ のどちらかに設定することができますが、プライマリの方に設定してください。 さもないと、カーネルがマウスを認識できなくなります。
VSETUP を動かした後は一旦ハードウェアリセットをかけないと、新しい設定 内容が有効になりません。
PS/2 マウスは必ず IRQ12 を使います。変更することはできません(ハンダゴ テを持ち出すならともかく)。めったにないでしょうが、他のデバイスも IRQ12 を使っているというような場合、その周辺機器のほうのジャンパを再設 定し、他の IRQ を使わせるようにしなければなりません。
お持ちのバスマウスを正しく動作させるためには、バスマウスのサポートが組 み込まれるようカーネルを設定しなおす必要があります。コンパイル済みのカー ネルを使っている場合は、三種のバスマウスすべてのサポートが組込み済みに なっていることも多いでしょう。でもこれでも充分でないことがあるんです。そのカー ネルは、実際とは違った割り込み番号を使おうと試みたり、自動検出に混乱し たあげく、あなたのマウスを違う種別のものとみなしたりするかもしれません。 疑わしいときは、あなたのマウスの種別だけをサポートし、正しい割り込み番 号を使うようにカーネルをコンパイルし直してみてください。
カーネルのディレクトリ(ここでは /usr/src/linux と仮定します)に行き、
make config
とします。
お持ちのマウスの種別がはっきりしない場合、まず最初はバスマウスのオプショ ンをすべて有効にしてからカーネルを再コンパイルするとよいでしょう。あな たのマウスを起動時にうまいこと自動判別してくれるかもしれません。これで いつもうまくいくとは限りませんが、うまくいけば、もうコンパイルしないで 済みますしね。
お持ちのバスマウス・インタフェースに属する質問項目には ``y'' または ``m'' と答え、それ以外すべてのバスマウスの問いには ``n'' とします。 ``m'' オプションは、あなたのシステム設定がカーネルモジュールのローディ ングに対応しているときにだけ使ってください。対応していない場合、あるい はいま言ったことの意味がわからないなら ``y'' と答えておいたほうが無難 です。これなら、機能がカーネルの中に直接組み込まれます。
例として、Inport マウスを持っているのならば、
Microsoft busmouse support
に対して ``y'' とし、他のバスマウス全ての質問には ``n'' と答えます。 マウスと関係ない質問には、いつものように答えてください。
PS/2 マウスのサポートを組み込んだカーネルをコンパイルするなら、
PS/2 mouse (aka "auxiliary device") support
に ``y'' と答えます。
PS/2 マウスドライバは、実は 2 種類のデバイスをサポートしています。標準 の PS/2 外部デバイスコントローラ、そして Texas Instruments Travelmate と Gateway Nomad ラップトップで使われている Chips & Technologies の特 殊な PS/2 マウス・インタフェース・チップの 2 つです。 これらの機種のトラックボールのサポート有りでコンパイルするには、
C&T 82C710 mouse port support (as on TI Travelmate)
に ``y'' と答えます。82C710 ドライバは実は標準 PS/2 マウスドライバに対 するアドオンなので、ここだけでなく標準 PS/2 ドライバに対しても ``y'' と答える必要があることに注意してください。
標準の PS/2 マウス・デバイスと、82C710 デバイス両方の設定がしてある場 合、ドライバはブート時にまず 82C710 チップの存在を確認しようとします。 検出に失敗すると、代りに標準ドライバが用いられるようになっています。で すので、これらのマウス・インタフェースを両方とも組み込んでおいたカーネ ルでは、標準の PS/2 マウス・ポートをも利用できます。しかしながら、存在 しない 82C710 チップが間違えて検出されてしまったという報告が 1 件あり ました。ですから、安全策を取るなら、必要ない 82C710 のサポートは設定し ないのが無難です。
そして、マウスがどの割り込み番号を使うのかカーネルに教えてやらないとい けません。もっとも PS/2 マウスならば IRQ 12 に固定なので、ここはスキッ プできます。
Logitech, Inport, あるいは Logitech プロトコルを使う ATI マウスなら、
/usr/src/linux/include/linux/busmouse.h
というファイルの
#define MOUSE_IRQ 5
という行をマウスの割り込み番号に合わせます(マウスの割り込み番号の探し 方については、 マウスの割り込み番号の設定 を参照してください)
ATI-XL マウスなら、/usr/src/linux/drivers/char/atixlmouse.c
の以下の行をマウスの割り込み番号に合わせてください。
#define ATIXL_MOUSE_IRQ 5
マウスの割り込み番号を 2 にしたい場合は、PC アーキテクチャの特殊性のた め、#define のほうは 9 にしなければなりません。
例
割り込み番号 3 を使うマウスでは
#define MOUSE_IRQ 3
割り込み番号 2 を使うマウスでは
#define MOUSE_IRQ 9
のように、上記の行を書き換えます。
次に、カーネルを付属の説明に従ってコンパイルし、できた新しいカーネルで ブートします。これで、バスマウスのサポートがちゃんと含まれたカーネルを 手にすることができました。
古いカーネルでは、selection (バーチャル・コンソール上で、X のそれ同様 なカット & ペーストを可能にしてくれるプログラム) を使うためには、 それ用のサポートをカーネルにコンパイルして組み込んでおかないとならない ことがあります。このオプションは最近のカーネルには現われませんし、 selection というプログラムは一般に gpm というプログラム(詳しくはセクショ ン gpm 参照)に世代交替しました。
古いカーネルでやっているなら、マウスの種別が何であろうと、このオプション を ``y'' にすれば selection プログラムが使えるようになります。
どの割り込み番号を使うかをコンパイル時に決めて組み込んでしまうのは、ど んなバージョンのカーネルでも使える方法です。新しめのカーネル(2.x.x あ たりのどこかから)では、LILO や LOADLIN の類を使って、カーネルが読み込 まれる間に Logitech や Microsoft Inport マウスの割り込み番号を引数とし てカーネルに渡せるようになっています。カーネルをコンパイルし直さないで (あるいはやりかたを知らなくっても)よいので、実に時間の節約になります。 また、マウスドライバをモジュールとしてロードするようカーネルを設定した 場合は、モジュールがロードされるときにこういった情報を渡すことになりま す。
以下のオプションを LILO の boot 行に与えれば、割り込み番号を変更できます。
bmouse=3 (Logitech バスマウス)
msmouse=3 (Microsoft Inport マウス)
上の数値 3 を、お使いのマウスの実際の割り込み番号に置き換えてください。 lilo でこれを使う例は:
LILO:linux msmouse=3
この手の種別情報を LILO や LOADLIN の設定ファイルに加えてしまえば、も ういちいちタイプして指定しなくて済みます。やりかたは LILO, LOADLIN の ドキュメントにあたってみてください。
モジュールを使っている場合、insmod を使って、割り込み番号を手で設定で きます:
insmod msbusmouse.o mouse_irq=3 (Inport マウス用)
insmod busmouse.o mouse_irq=3 (Logitech マウス用)
あなたのシステムがモジュールの自動ロードに kerneld を使っている場合は、 /etc/conf.modules か /etc/modules.conf を編集して下のうちのいずれか 1 行を足してください。
options msbusmouse mouse_irq=3
options busmouse mouse_irq=3
Linux では、マウスは /dev ディレクトリにあるファイルを通じてアクセスさ れます。下の表は、インタフェースの種類と、どのデバイスファイルを使うべ きかのリストです。
インタフェース デバイスファイル メジャー番号 マイナー番号
-----------------------------------------------------------
Logitech /dev/logibm 10 0
PS/2 /dev/psaux 10 1
Inport /dev/inportbm 10 2
ATI-XL /dev/atibm 10 3
注意: Inport ドライバで ATI-XL マウスをお使いの場合、/dev/atibm デバイスではなく /dev/inportbm を使ってください。
major と minor は、デバイス固有のデバイス番号です。
これらのデバイスがなかった場合は、まず作らなければなりません。以下のコ マンドを root で実行してください。
mknod /dev/logimm c 10 0
mknod /dev/psaux c 10 1
mknod /dev/inportbm c 10 2
mknod /dev/atibm c 10 3
注意: Linux の近年の歴史(比較的最近)において、バスマウスのデバ
イスの名称が変更されました。以下のデバイスの名称は上記のものに置き換え
られましたので、消去すべきです: bmousems, bmouseps2, bmouseatixl,
bmouselogitech.
使っているマウス・デバイスから /dev/mouse へシンボリック・リンクを張る 人が多いようです。そうすれば、デバイスの名称をいちいち覚えている必要が なくなります。現在配布されている Linux パッケージでも、多分そうなって いるでしょう。そのようなリンクがある場合、もしくは自分でリンクを張った 場合は、自分のマウスに合った正しいマウス・デバイスを指しているかどうか、 確認してください。