こんにちは.木村です. 下保さんの patch により [FreeBSD-users-jp 94009] の続きは不要に なりつつあったのですが,これを解説しないと,今 Dobashi さんの 直面している壁が ML の方々にわかりませんので,続けます. 解説ネタはこれで終わりです.
先ず昨日の分 [FreeBSD-users-jp 94009] の訂正です. > (Xorg -configure の出力も,今はこれだけのはずです.) 久々に実行してみたら,増えていました.ただし,これらは X server の動作には反映していません.混乱を招く「仕様」です. (例えば,moused off の状態で X を立ち上げれば検証できます. hald から渡された /dev/psm0 や /dev/ums0 の方が使われます.) Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection --------------------------------------------------------------- やっと「3. 問題の生じ方」の解説と補足です. [FreeBSD-users-jp 94008] にこう書きました. > 2. 問題が生じるハードウェア環境 > ・PC に PS/2 マウスまたは USB マウスが単独で接続されていて, > かつ,moused が動作している状態で生じる. 話をひっくり返して申し訳ありませんが,この部分を厳密に 言い直すと,次のようになります. ・PC に PS/2 マウスまたは USB マウスが単独で接続されている場合 にはすべて,X server は hald からの情報の受け取りに失敗する. そして,X server は default を設定する.(/dev/ums0 or /dev/psm0) ・moused が動作していない場合には,X server の設定する default が 正しいので,マウスは動作する. ・moused が動作している場合には,それが正しくないので動作しない. ---------------------------------------------------------------- X の log の比較です. ・正常に動作する xf86-input-mouse-1.6.0 および xf86-input-mouse-1.7.1 + 下保さんの patch の場合.(moused on) (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so (II) Module mouse: vendor="X.Org Foundation" compiled for 1.7.7, module version = 1.6.0 (**) Microsoft 3-Button Mouse with IntelliEyeTM: Device: "/dev/sysmouse" ^^^^^^^^^^^^^^^^^^^^^^^ hald から /dev/sysmouse が渡され,マウスは正常に動作します. moused off の場合には hald から /dev/ums0 が渡され,動作します. ・問題のある xf86-input-mouse-1.7.1 の場合.(moused on/off で同じ!) (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so (II) Module mouse: vendor="X.Org Foundation" compiled for 1.7.7, module version = 1.7.1 (WW) Mitsumi Quick Scroll Mouse USB: No Device specified, looking for one... ^^^^^^^^^^^^^^^^^^^ (II) Mitsumi Quick Scroll Mouse USB: Setting Device option to "/dev/ums0" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ X server から「規定されていないから /dev/ums0 に設定したよ!」 と警告されます.[FreeBSD-users-jp 94009] の話で言えば, 「(1) が失敗したので (3)」になったわけです. moused off の場合には,/dev/ums0 で正しいので動作します. moused on の場合には,/dev/sysmouse とすべきなので動作せず, 以下のようなエラーが出ます. (EE) xf86OpenSerial: Cannot open device /dev/ums0 Device busy. PS/2 マウスの場合も同様です. USB マウスを一度抜き挿しした場合,今度は情報を受け取ります.(!?) ---------------------------------------------------------------- 参考までに,対照実験です.xorg.conf を以下のようにしてみました. Section "ServerFlags" Option "AutoAddDevices" "False" Option "AutoEnableDevices" "False" # Option "AllowEmptyInput" "False" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" # ここに書きべき情報を故意に消した. EndSection すると,問題のある場合と同じエラーが再現しました. ([FreeBSD-users-jp 94009] の「(2) が失敗したので (3)」です.) (WW) Mouse1: No Device specified, looking for one... (II) Mouse1: Setting Device option to "/dev/ums0" ^^^^^^^^^ この場合には,マウスの種類や moused on/off に応じて ums0, psm0, sysmouse にしてくれます! この点は [FreeBSD-users-jp 94009] の記述が一部誤りです. ただ,この対照実験でなく本番では一度も moused on に応じて sysmouse にしてくれたことはありませんでした. Satoshi Kimura (satosi.kim...@nifty.com)