次のページ 前のページ 目次へ

6. マウスを 3 ボタン・モードに切り替える

たとえ安価なマウスでも MouseSystems プロトコルを使って 3 つあるボ タン全部を動かすことができます。これには、少しトリックが必要です。そ のトリックとは、マウスに「自分は、MouseSystems のマウスなんだ。」 と、思い込ませることです。そのようにするには、次のことを行ないます。

  • マウスの左ボタンを押しながらコンピュータの電源を入れます(ボタンは、 コンピュータが完全に立ち上がるまで押し続けてください)。

これでマウスを MouseSystems モードに切り替えることができます。 ずいぶんと簡単なことですが、このことが説明書に書かれているのは非常に稀で す。ところが、コンピュータの電源を入れ直しただけでは、マウスの電源 を切ることができないシステムもありますので、そうしたシステムではこの 方法は使えません。モードを切り替える方法には上記以外にもいろいろあり、 それらの方法はあなたがお使いのマウスに当てはまる場合もありますが、そうで ないこともあります。以下で説明する設定方法のうち、少なくともふたつに ついては、コンピュータを立ち上げ直すよりもずっと簡単です。

  • コンピュータが手元にあるなら、電源を入れたままマウスのコネクタを一旦抜き、 次にボタンを押したままコネクタを差し込みます。(通常、電源の入ったコンピュータ にはプラグを差し込んではいけないのですが、RS232 の仕様書には大丈夫と ありました。)
  • echo "*n" > /dev/mouse というコマンドを打てば、マウスをリセット することができるかもしれません。これは、プラグを差し直すのと同じ効果が あります。MouseSystems モードの場合のみ、マウスの左ボタンを押して ください。Microsoft モードの場合、押してはいけません。上記の コマンドは、X を起動させるスクリプトに書き込んでおくこともできます。
  • Bob Nichols (rnichols@interaccess.com) が、これと同じことをする 簡単な C プログラムを書いてくれました。echo "*n" が機能しない 場合に効果があります(逆に、Nichols のプログラムが駄目な場合は、 echo "*n" を使ってください)。このプログラムのソースコードは、 http://kipper.york.ac.uk/src/fix-mouse.c にあります。
  • Xconfig ファイルに "ClearDTR" という行を入れておくと、MouseSystems モードに切り替わるという報告例があります。
  • 度胸のあるかたは、マウスの裏側のネジを外し、中を覗いてみてください (これをすると、製品の保証が効かなくなることに注意してください)。 マウスによっては、内部に切り替えスイッチが付いているものがあります。 マウスメーカーがどうしてこういう仕組みにしているのか、理解に苦しみます。 安価なマウスの場合は、これが着脱可能なジャンパスイッチになっていること が多いようです。このスイッチ、もしくはジャンパスイッチは、 スイッチ付きマウスの章で説明した `MS/PC' スイッチと同じ機能を持っています。回路基盤は 2 ボタンと 3 ボタンの 切り替え用に設計されているかもしれませんが、基盤を簡単に切り替える ことはできません。スイッチは、図で示すとつぎのようになっています。
             -----------
            | o | o | o |  SW1
             -----------
              1   2   3
    
    スイッチ 1-2 を接続するか、2-3 を接続して、マウスの動作が変わるかどうか 試してください。これで動きが変わるようなら、ジャンパピンを適当な位置に 付けるか、もしくは半田付けしてしまって固定してください。
  • ハンダ付けに関するもので、Peter Benie <pjb1008@chiark.chu.cam.ac.uk > 氏から報告された方法ですが、MouseSystems の 3 ボタンモードを理解しない マウスに対する最後の手段と呼ぶべきものが存在します。真ん中のボタンのスイッチ が 2 極スイッチである場合、そのスイッチの一方のピンと左ボタンのスイッチの ピンを接合し、もう一方のピンと右ボタンのスイッチのピンとを接合するという ものです。真ん中のスイッチが 2 極スイッチでない場合は、直接の接合ではなく、 ダイオードを使います。これで、真ん中のボタンを押すと、左右両方のボタンが 押されたことになります。その上で、XF86Config ファイルにおいて ChordMiddle を指定すると、真ん中のボタンを機能させることができます。
  • また、ハンダ付けを利用する究極の手段を、Brian Craft < bcboy@pyramid.bio.brandeis.edu> 氏が著者にいちはやく報告して くれていました。現在最も一般的に使用されている 2 つのマウスチップとして 16 ピンの Z8350 と 18 ピンの HM8350A があります。 いずれのチップも、モード制御はつぎのようにひとつのピンで行われています。
    第3ピン  モード
    -------  ------
    Open     デフォルトは、Microsoft。電源投入時にボタンを押していれば MouseSystems。
    GND      常時 MouseSystems。
    Vdd      常時 Microsoft。
    
    (通常、ピンは次のようになっています:)
              ____ 
    第 1 ピン -| \/ |-
    第 2 ピン -|    |-
    第 3 ピン -|    |-
          -|    |-
          -|    |-
          -|    |-
          -|    |-
    第 8 ピン -|____|-
    
    (これらの情報は、Hans-Christoph Wirth と Juergen Exner 両氏が de.comp.os.linux.hardware に投稿したものを拝借しました) ここで、 第 3 ピンと GND をハンダ付けすると、MouseSystems モードに固定する ことができます。
    • Peter Fredriksson <peter@lysator.liu.se> 氏が、SYSGRATION SYS2005 チップを使い、第 3 ピンと GND を繋ぐことで MouseSystem モードに設定できることを確かめてくれました。
    • Uli Drescher <ud@digi.ruhr.de> 氏からは、HN8348A チップ について動作確認をいただきました。Ben Ketcham <bketcham@anvilite. murkworks.net> 氏からも (第 9 ピンが GND である) HM8348A で設定 できることの確認をいただきました。
    • Urban Widmark <ubbe@ts.umu.se> 氏が、第 8 ピンが GND である EC3567A1 チップで同じことを試していただきました。著者もこの チップを試しましたが、問題なく動きました。
    • Timo T Metsala <metsala@cc.helsinki.fi> 氏には、第 3 ピンと 第 9 ピンの GND を繋いで MouseSystems モードに設定する HT6510A チップの動作確認をいただきました。また同氏によって 第 8 ピンが GND である HT6513BHT6513F チップについての 報告もいただいております。
    • Robert Romanowski <robin@cs.tu-berlin.de> 氏には、第 3 ピン と第 8 ピン(GND)を繋ぐ EM83701BP チップの報告をいただきました。
    • Robert Kaiser <rkaiser@sysgo.de> 氏には、第 3 ピンと GND を 繋ぐ EC3576A1 の報告をいただきました。
    • Sean Cross <secross@whidbey.com> 氏には、第 2 ピンと第 7 ピン(GND)を繋ぐ HM8370GP チップの報告をいただきました。
    • Peter Fox <fox@roestock.demon.co.uk> 氏には、第 3 ピンと 第 8 ピンを繋ぐ HM8348A チップについて報告をいただきました。
    • Jon Klein <jbklein@mindspring.com> 氏には、第 3 ピンと 第 9 ピンを繋ぐことで動作する UA5121S チップについて報告を いただきました。
  • また、前述のようなハンダ付けの別法として、システムを起動するときに マウスボタンを押すようにさせて、MouseSystems モードにすることもできます。 下記の回路図は、Mathias Katzer <mkatzer@TechFak.Uni-Bielefeld.DE> 氏 からのものです。
              -----                       
           ---  R  ---------O------ + 電源
          |   -----   |        |                     C = 100nF コンデンサ
          |           | E      |                     R = 100kオーム 抵抗
          |       __ /         |                     T = BC557 トランジスタ
          |      /  \          O
          |   B | #V | T         /
          |-----|-#  |          /   マウスの左ボタン
          |     | #\ |         O
          |      \__/          |
         ---         \  C      |
         --- C        ------O----------> (マウスの内部へ)
          |
         ###  Gnd
    
    【訳注:上記回路ではコンデンサの放電経路がないので、 R にダイオードを抱かせる変更を推奨】

    テストしたマウスは、MUS2S という無名のモデルでした。他のマウスでもこの方法が 上手くいくかどうかは、マウスの回路しだいです。スイッチが + 電源では なく GND に繋がっている場合でも、BC547 のような NPN 型トランジスタを使って、 抵抗(R)とコンデンサ(C)を入れ替えれば動くはずです。

この章ではいろいろな方法を説明しましたが、最終的にどうするかは、 あなたしだいです。初期設定である Microsoft プロトコルの 2 モダンモード のままでもいいですし、モードの切り替え方法を見つけだして、X ウィンドウ上で 3 ボタンモードの利点を活かすのもいいと思われます。


次のページ 前のページ 目次へ

[