2009年2月18日水曜日

(FreeBSD) ようやくXOrg 7.4にしたところ、やっぱりトラブった(笑) ~ キーボードとマウスとか、GNOME2な環境で起動しなくなったり…

レガシーからの脱却のためには、いろいろと苦痛を伴うようで、やれやれな話。ソフトウェアのバージョンアップってのは、トラブルがやっぱり起きますね。



現時点でXOrg 7.4にアップデートするときは、テスト用に別環境を用意するか、もしくは、いっそのこと、新規インストールしたほうが、いいかもしれません。仕事で使っている環境をアップデートするときは、くれぐれもご注意を。従来どおりの環境に回復するまでに、けっこうな作業時間をとられる可能性があります。



FreeBSDのportsでXOrgが7.4にアップデートされたことで、いろいろ大きな変更が行われ、トラブル発生の可能性があるという話は目にしていたので、自分のお仕事用環境は、しばらくアップデートさせていなかったんです。別のパソコンで動作確認したら、とくに問題ないようなので、エイヤっ!と、お仕事環境もportupgradeしてしまいました。



そしたら、もう大変。



一応、事前に仕入れていた情報に従い・・・、

http://gihyo.jp/admin/clip/01/fdt/200901/27
FreeBSD Daily Topics
2009年1月27日 ≪注目≫X.Org 7.4へのアップグレード方法とトラブルシューティング,グラフィックアクセラレータの選択指針

xorg.confも書き換えたし、haldやdbusは以前から動かしてたし、別パソコンでは動いてるんだし、自宅のパソコンでも動いたし、もうこれでほぼ100%大丈夫かと思ってたんですが・・・



まず、gnomeな環境で起動しなくなりました。Xサーバは立ち上がるのですが、なんか途中で、固まっています。CPU使用率が100%になる、ってわけでもなく、何にもおきない、先に進まない・・・



しかたないので、つい最近まで使っていたfvwm-1.24な環境(笑)に戻しました。



さて、とりあえずこの環境のままお仕事をして、あとは、ひまを見つつ、なんとかgnome環境を復活させようと、思った・・・んですが



あれ?!キーボードの配列が英語配列になってる。



まあ慣れてはいるので、それでも使えなくはないんですが、controlキーとcaps lockを入れ替えたいとか、それとときどき思うんですが、「~」キーってどこだ!?みたいな、戸惑うこともあるので、/usr/ports/UPDATINGに書いてある



  1. Add Option "AllowEmptyInput" "off" to your ServerLayout section.
     This will cause X to use the configured kbd, mouse, and vmmouse
     sections from your xorg.conf



を行いました。



とりあえず、これで1日目は経過。裏で少しずつ、portupgradeして、gnome2な環境を回復させようとしてました。



2日目。コンソールでログインして、startxでXを立ち上げて・・・



あれ? う~ん? おかしい! ダブルクリックができない・・・



xevで見てると、ボタンリリースイベントが発生していないっぽいような感じ。
どういうこったい。



ちなみに、キーボードもマウスも、PS/2です。



しかたないので、xorg.confのOption "AllowEmptyInput" "off"を削除して、hald経由で、マウスとキーボードを使うようにしました。



あとは、キーボードの配列を直せばいいんでしょ、ってことで。



適当なキーワードで検索してみたところ、何件かの情報が見つかりました。時期によって、違いがあるみたいなのですが、現在は、こんな内容のファイルを、



<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.x11_options.XkbModel" type="string">jp106</merge>
      <merge key="input.x11_options.XkbLayout" type="string">jp106</merge>
      <merge key="input.x11_options.XkbOptions" type="string">ctrl:swapcaps</merge>
    </match>
  </device>
</deviceinfo>



/usr/local/etc/hal/fdi/policy/x11-input.fdi とかいう場所においておけばよいらしいです(ファイル名はこのとおりでなくてもいいみたい)。

(追記)
このファイルを作ったあとに、haldを再起動する必要があるみたいです。
/usr/local/etc/rc.d/hald restart



私の場合、CtrlキーとCaps Lockを入れ替えるために、ctrl:swapcapsというのを入れてあります。ただ、これで入れ替わるんですけど、modifier key(xmodmapコマンドで設定できるもの)が、意図どおりになっていなくて、「キーシンボルがCaps Lockのキーを押すと、controlになる」という、元のまんまじゃん、な状態になりました。でも、これは、Xorg 7.4よりも前から、こんな感じだったかも。この程度のことなら、とりあえず、xmodmapを駆使してなんとかなります。てゆーか、ctrl:swapcapsって不要?



(追記)
昔、xorg.confでctrl:swapcapsを設定するのではなく、xmodmapを使ってCtrlキーCaps Lockを入れ替えてたんですが、どうやらどこかで、その設定をしたxmodmapのファイルが読み込まれてしまっているみたいです。入れ替えたのをまた入れ替えて、元に戻ってる・・・みたいな。

あと気になったのは、なぜか、右ctrlを押すと、backslash「\」が出ました。場所は近いんで誤爆? それとも私の環境が変なのかもしれません。



今日は、これでなんとかマウスとキーボードが使えるようになりました。明日はどうなるかわかりません(苦笑)



実は、家のパソコンでも、キーボードが英語配列になっちゃった!と気がついてたんです。ところが、たまたまそのときはKDEを使っていたため、KDEの設定で、日本語配列にしたり、CtrlとCaps Lockも入れ替えできてたので、そんなに問題視していませんでした。





GNOMEな環境が立ち上がらない件。
gnome-sessionを実行すると、metacityとか一応プロセスは起動しているんですが、画面がまったく書き換わらず、なんだかだんまりになるんです。



fvwmにしてお茶を濁していたんですが、ほかにもだんまりになるプログラムがあることに気がつきました。gnome-terminalとかgimpとか。



2日目にして、やっとわかりました。原因は、libxcb。



libxcbが2つリンクされていたためらしいです。

libxcb.so.1 => /usr/local/lib/compat/pkg/libxcb.so.1 (0x28b16000)



libxcb.so.2 => /usr/local/lib/libxcb.so.2 (0x291f1000)

metacityもそうなってました。



portupgradeは、実は、別のマシンでビルドしたバイナリパッケージを使ったんですが、どういうわけか、こんなことになってしまいました。libxcb更新後、いろいろ再ビルドが必要だ、って話があったんですが、どうも「別のマシン」では再ビルドしたけど、バイナリパッケージは、作り直していなかったのかもしれません。自業自得か



0 件のコメント:

コメントを投稿