1月 232013
 

ちょっと前の FreeBSD-users-jp な ML で USB マウスが動かなくなる。と、いうスレッドがありました。PS/2 マウスと USB マウスの二つがあった場合、そのうちの一個が動かなくなる。と、いうのものでした。

僕の場合、USB マウスではなく、 PS/2 マウスとタッチバッドの組み合わせなのですが、マウスのほうが動かなくなって悩んでいたのであります。

僕が持っているのは ThinkPad X100e で、こいつは Windows OS で言うところの UltraNav です。キーボードの真ん中に赤ポッチがあるのが、 FreeBSD 的に言うと /dev/sysmouse でこいつは ports 的 には x11-drivers/xf86-input-mouse で認識して動作します。タッチパッド側は /dev/psm0 で x11-drivers/xf86-input-synaptics で認識してタッチパッドとして利用できます。右側を上下になぞるとちゃんとスクロールもしてくれるように設定しています。

が、この状態において、僕の環境では赤ポッチとそれに付属するポタン類が一切動作しない状態で、上記スレッドを参考に色々試したのですが、やはり動作しないので放置していたのでありました。

今回、環境を 9.1-RELEASE にしたのでもう一度試してみたのですが、やはり動作しません。悲しい・・。

以下は僕が利用している 赤ポッチマウスとタッチバッドマウスの xorg.conf の設定です。一応 hal に関係する設定も書いておきます。

Section "ServerFlags"
Option    "AllowEmptyInput" "off"
Option    "AutoAddDevices"  "off"
#       Option    "AllowEmptyInput" "on"
#       Option    "AutoAddDevices"  "on"
EndSection
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection
Section "InputDevice" Identifier "Touchpad0" Driver "synaptics" Option "Protocol" "psm" Option "Device" "/dev/psm0" Option "SHMConfig" "on"
Option "TapButton1" "1"
Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "VertScrollDelta" "200" Option "HorizScrollDelta" "200" Option "MinSpeed" "0.1" Option "MaxSpeed" "0.2" EndSection

 
この設定を書いても赤ポッチ側が動作しません。ps で hal と moused のプロセスを確認すると以下のようになっています。

$ ps -ax | grep mouse
1120 ??  Is     0:04.49 /usr/sbin/moused -p /dev/sysmouse -t auto
1332 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
moused は /dev/sysmouse 側をコントロールしています。 hald のほうは /dev/psm0 をコントールしています。 xorg.conf の設定では /dev/sysmouse は赤ポッチマウス、 /dev/psm0 はタッチパッドマウスです。まぁ、タッチパッドが無事に動作しているのでいーやー。とか思っていた時期が長いんですけどもね。

で、色々設定を見なおした結果、両方とも動作することが確認できました。上記 xorg.conf は何も問題がありませんでした。問題があったのは /etc/rc.conf で設定する moused の設定だったのであります。

以下のように設定すると 両方のマウスが無事に動作することが解りました。

moused_nondefault_enable="NO"
moused_enable="YES"
#moused_port="/dev/sysmouse"
moused_port="/dev/psm0"

 
今までは hald が /dev/psm0 をいじっているなら moused は /dev/sysmouse だろ。とか、勝手に思っていたのですが、moused のほうも /dev/psm0 に変更したらあぁら不思議。両方のマウスが動き出した。ということなんですね。 ps で確認すると以下のような感じ。

 $ ps -ax | grep mouse
33230 ??  Is     0:04.49 /usr/sbin/moused -p /dev/psm0 -t auto
33232 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
なんか、非常に違和感あるんですが、これで無事に二つのマウスが動作しております。考えてみると xf86-input-mouse がバージョンアップして以来赤ポッチマウスが動作していなかったので、随分と久しぶりに両方動きだした。ということになります。

いやー。良かったです。 xorg.conf が正しい設定であるならば rc.conf の moused の設定を変えてみてはいかがでしょうか。なお、今回は /usr/local/etc/hal/fdi/policy/ にはマウスの設定は入れていません。 xorg.conf の設定がそのまま X11 で有効になっていると思います。

ちなみにタッチパッドのほうは xf86-input-synaptics で動作しているので UltraNav みたいな動作が一応できます。 Synaptics を試してみたい方は参考にしてみてください。あ。細かい説明は一切ナシですけどもね;-)。