2006年06月18日 (日)

キー配列が変わってしまった

Apple Store でピッカピカになった PowerBook ですが土曜の夜から復元し始めました。ところがキーボードのキー配列が変わってしまっていたのです。

なんせ金曜夜から土曜朝まで不眠で働いていてたのでぼうっとしておりました。交換された HDD に予め仕込んであるインストール直後の Mac OS X をベースに

  1. ターゲットモードでバックアップディスクから設定やファイルを引き継いでセットアップ
  2. rsync を用いてバックアップディスクから全部をリストア

という手順でやればいいのに、このままセットアップすると UID が変わってきてややっこしくなるなんてとち狂ったことを思い付いて、次のようにやってしまいました。

  1. ディスクの中身を一旦消去
  2. rsync を用いてバックアップディスクから全部をリストア

手順としては間違っていないのですが、この方が時間がかかるのです。しかしそんなことは問題ないのです。夜中の三時から始めて明け方までかかろうときちんと終わればいいのです。問題は 1 のときに既に現れていました。

なんと日本語キーボードなのに実際のキーアサインは US キーボードになっているのです。バックアップから起動して既にそうだったのですからリストアしても同じです。しかもリストア後の再起動ではトラックパッドも反応しません。ログイン後に /System/Library/Extentioins/AppleADBMouse.kext に問題があるから再インストールするかアップデートに付いて製造元に問い合わせなさいという主旨のアラートが表示されます。

問い合わせろっていっても Apple だしぃ、アップデートっていってもソフトウェアアップデートはないしぃ。

まずはバックアップの当該ファイルをコピーし直してみました。…駄目です。
次は嫁 book (代替機にしていた PowerBook G4 12") からコピーし直してみました。…駄目です。

/System/Library/Extentioins/ にはカーネルの拡張ファイルが詰まっています。ここにキーボードの拡張ファイルもあります。配列が US になってしまっていたので試しに AppleADBKeyboard.kext もついでに嫁 book からコピーしてみました。そうしたらですねえ…

トラックパッドもキーボードも効かなくなってしまいました。

幸いキーボードは USB 接続のマウスで常用しているのがあるのでそれでなんとかなりますが、キーボードは…ありました! 複数台のデスクトップと CPU スイッチで共用しているために余っていた Compaq マシンの USB キーボードが部屋の隅で埃を被っていたのです。始めてこのキーボードが実用される瞬間でした。

同じ PowerBook G4 で OS のバージョンも同じだから大丈夫だと思ったけれど 12" と 15" ではデバイスが微妙に違うのだろうか? 販売時期がずれているから? などと眠たい頭で考えたのですが、そんなはずはありません。なにしろ外付け HDD からどちらも起動できてどちらも正常に使えていたからです。ということは…。ここまで来て思い付きました。パーミッションとオーナによるアクセス制御がなされているんだと。試しに kextload コマンドで壊れていると言われている拡張をロードしようとすると案の定パーミッションが違うよと怒られてロードできません。ディスクユーティリティでアクセス権の修復をしてやっと使えるようになりました。原因は iScroll によるマウスのカーネル拡張の入れ替えでした。iScroll は(少なくとも以前ダウンロードしたとき) zip ファイルで提供されていました。それを展開するとパーミッションやオーナが適切に展開されません。root:wheel のファイルであるべきところが自分のオーナとグループになってしまいます。だからでした。キーボードの拡張も Finder でコピーしたら同じような結果になります。

このとき既に日曜日のお昼になっていました。でもキーボードの配列は US のままです。ここから本当の格闘が始まったのです。

/System/Library/Keyboard Layout/ にはちゃんと Japanese.bundlle があります。しかしシステム環境設定の言語には日本の国旗アイコンはありません。最初にこれに気付いて変だ変だとやっていたのです。しばらくして正常に動作している嫁 book で確認すると日本の国旗アイコンはなくて正解でした。じゃあその中身が壊れているのかと思い Japanese.bundlle にある Japanese.rsrc を DeRez コマンドでテキストにしてチェックして始めました。どうやら正常です。それじゃそれじゃ、自分でキー配列を定義してそれを使えばどうだろうと思い、ちまちま配列の定義を始めました。

このファイル、どれがどのキーを指しているのかよくわかりません。1 時間以上格闘したあげく、今やっているのは対処療法であって問題の解決ではないということに気付きました。娘ちゃんがおやつのゴマプリンを食べようと言ってきても階下に降りずに頑張ったのに無駄なことをしていたのです。

OS やその設定の問題ならば まっさらな Mac OS X でやれば正常になるはずです。その正常な状態からキーになっているファイルを持ってくれば解決するはずです。ようやくそのことに気付いたのです。そういうこともあろうかと思って PowerBook の HDD と同じ大きさの空きパーティションを外付け HDD に作っておいてあることを思い出しました。「なんて僕って用意周到なんだろう。もしかして天才?」なんて思いながら。(アホですね)

そして Mac OS X をその空きパーティションにインストールして、セットアッププロセスをキーボードで何かを打ち込むところまで進めました。そうしたらその状態で既に US の配列になっているのです。つまり、これはソフトウェア的な問題で US 配列になっているのではなくハードウェア的な問題でそうなっていると言っていいでしょう。

夕方になってやっとそのことがわかり。格闘は止めにしたのでした。明日また Apple Store に行ってきます。キーボードを交換する際に何か間違ったのでしょう。このせっかくリストアした内蔵 HDD どうしようかなあ。消されたりすると嫌だからまたバックアップに戻しておかなくっちゃ。あぁもう疲れちゃったよ。せっかく日曜日は久しぶりに娘ちゃんと遊ぼうと思っていたのにぜんぜん遊んでやれなかった。

  Comment   Trackback

当ブログ内の類似エントリ
JavaScript が有効でないと表示できません。
一年前のエントリ