1月 302009
 

FreeBSD の ports の最新をおっかけていると xorg が 7.3 から 7.4 になり、X が起動しねー。とか、マウスが動かねー。キーボードが 101 だぁー。などとあちこちで大騒ぎのようです。まぁ、僕もそーだったのですけどね。

けど、、なんとか動くようにしたのでありました。僕は会社のもひっくるめて、デスクトップ二台、NotePC で二台の計四台の PC で X11 が動作しています。

デスクトップの場合、PS/2 のマウスとキーボードを利用しているぶんには非常にラクチンで、Section “Files” から RgbPath を取り去った後に以下の設定を記述すれば大丈夫です。まぁ、Xorg -configure した後にできた xorg.conf.new を利用したほうが楽ですけどね。

Section "ServerFlags"
    Option “AllowEmptyInput” “off”
    Option “AutoAddDevices”  “false”
EndSection

 
この設定を入れると xorg.conf に記述したキーボードとマウスの設定が有効になります。その時、 moused は起動してはダメになります。なので、マウスの設定の所は Device において /dev/sysmouse ではなく /dev/psm0 を指定することになります。これでマウスがちゃんと動くようになりました。めでたしめでたし。

後、キーボードのほうですが、ServerFlags の所で二つのオプションを追加しているので xorg.conf の内容をそのまま引きずってくれるので jp106 とか ctrl:swapcaps の設定は有効になったままとなるでしょう。

とまぁ、PS/2 のマウスとキーボードのみを利用した環境であれば特に問題はないのですが、NotePC のように普段はタッチパッド(こっちはたいていの場合 PS/2 として認識される)を利用するけど、時々は USB マウスを接続して利用したい。と言う場合もあるわけです。

その場合、Section “InputDevice” の mouse の設定をいちいち /dev/psm0 から /dev/ums0 に書き換えて、X を再起動してからでないと利用できません。後、タッチパッドと USB マウスの同時利用と言うのもできなくなります。あれまー。不便ですねぇ・・。困りましたねぇ。

このような場合はやはり、hald を起動して PS/2 と USB のマウスを認識させるしか手は無いのであります。同時に利用したい人はまずはともあれ hald を起動して、moused を停止しましょう。なお、/etc/rc.conf において moused_enable=”NO” と記述していても USB マウスを接続したとたんに moused が起動してしまう場合がありますが、とりあえずは無視して起動状態としておいても大丈夫でしょう。

続いて xorg.conf の設定ですが、マウスとキーボードの認識を hald で行うようにしたので上に書かれている ServerFlags セレクションの設定二行を削除します。

そして、/usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi と言うファイルを用意し、以下の記述をします。

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="info.capabilities" contains="input.keyboard">
           <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
           <merge key="input.x11_options.XkbModel" type="string">jp106x</merge>
           <merge key="input.x11_options.XkbLayout" type="string">jp</merge>
           <merge key="input.x11_options.XkbOptions" type="string">ctrl:swapcaps</merge>
        </match>
    </device>
</deviceinfo>

 
まあ、書いている内容は xorg.conf に書いた内容を XML 形式にしただけ。と言う感じでしょぅか。

準備ができたら hald が動作していることを確認しつつ、しかし新規にファイルを設置したのでいったん停止して再起動しつつ、 X を再起動してみましょう。

これで無事に起動したでしょうか? そしたら、PS/2 マウスと USB マウスが、両方動くことを確認します。続いてログインし、キーボードが 106 になっていることを確認して、CAPS キーと Ctrl キーもちゃんと入れ替わっていることを確認します。

しかし、hald 経由でキーボードとマウスを認識させたら、問題点が二つあるみたいです。

一個は僕の NotePC 固有の問題かもしれませんが、タッチパッドに付いているマウスの左ボタンでトリプルクリックができなくなりました。一行まるまるコピーの場合にトリプルクリックを利用するのでけすけど、それができない。ついでにダブルクリックもできない・・。トホホ。ちなみに USB マウスでは正常に動作しています。

二個目の問題ですが、キーボード入力で “け” の右横のキーの入力が出来なくなりました。”かっことじ” と “mu” のキーが “へ” の右横の “\” のキーと一緒になってしまいました。これは xmodmap で直せるかなぁ・・。
ちなみにこの記事を書いているキーボードが、既に打てない状態となっていますf(^^;;。
もし、正常に動作しない場合は /var/log/Xorg.0.log を確認してみましょう。どう言う風に確認するのかと言えば・・。動かない。とコメントに書いてください(^^;;。

なお、今回の設定ではコンソールのとこは考慮していません。僕はコンソール画面においてはマウスを利用しない人なので、コンソールでのマウスの挙動は良く分からないのです。

けど、せっかくなので、PS/2 版の xorg.conf と hald 版の xorg.conf を以下に置いておきますね。

PS/2 マウス版 xorg.conf
hald 版 xorg.conf

なお、上のほうは moused が起動している必要があります。下のほうは moused は起動していなくとも良いが hald が起動している必要があります。hald が起動している場合はポリシーファイルが必要です。

つづく