May 5, 2009

nice foreheadwo


nice forehead, originally uploaded by takekazu.

どうして、英語キーボードに交換したあとにファンクションキーがずれたのか?(実際のことはわからないので、以下は想像が混じっています)

普通、キーボードを交換すると、同時にキーボード内に入っているCPU (オリジナルIBM-PCだと8048だったかな?)も交換され、ROMに書いてあるキーボードの配線とスキャンコードの割り当ても同時に交換されます。
今回のEeePCのキーボード交換では、フレキシの先のキーボードのスイッチ部分だけが交換したので、普通のデスクトップのキーボード交換と違ってCPU/ROMが前のままで、キーとスキャンコードのマッピングテーブルが変更されなかったということらしいです。
EeePCは、H/Wとしては複数キーボードに対応しているようなので、フレキシの先に接続されているキーボード部分を認識して自動的に切り替える仕組みを入れていると思わますが、それがうまく動かなかったらしいです。
ダメだったのは、たぶん起動時間を短くするために、普段はそのチェックを飛ばして、以前に認識したものを使うようになっているためだと思います。その結果、単純にキーボードを交換しただけでは、キーボードIFのキーマッピングが更新されずにキー入力がおかしくなったのでしょう。

前に、Thinkpad X21のキーボードを交換したときは特に躓きませんでしたが、それは、保守マニュアル通りに作業したからかもしれません。覚えていませんが、バッテリーを外せとか、BIOSでデフォルトをロードしろとか書いてあったかもしれません。

そういえば、昔キーボードの組込CPUのプログラムを書いたのを思い出しました。石は、8051だった覚えがあります。セラミックパッケージで紫外線ランプでプログラムを消したのを思い出しました。もう、20年近く前の話です。

EeePC 4G-X Ubuntu 9.04 Notebook Remix


us keyboard, originally uploaded by takekazu.

ヤフオクで安い英語キーボードを見つけたので買って交換してみた。入れ替えるのは簡単にできたけど、ファンクションキーが左に一つずれていて、「〜」が「F1」になっている、F12を押してもなにも入力されない。BackSpaceとEnterの間の「|」も同様に反応がない。

Ubuntu 9.04では、Xでのキーボードの扱いが知っているのと違う、どうも、最近のXは、キーボード設定をhalから拾うらしい。
http://wiki.debian.org/XStrikeForce/InputHotplugGuide
console-setupをし直して確認したが様子は変わらない。

最初は、てっきりOS側の設定の問題かと思ったが、xevでもイベントが起きてないし、consoleでshowkeyを試しても入力が拾えている気配がない。念のために、freedosで起動して、キー入力を見たところ、「F12,|」は入力されない。

ASUSのページを見たら、新しいBIOS(1302)が出ていたので念のため更新、BIOS defaultをロードしたところ、キー入力できるようになった。どうも、BIOSの設定情報でキーボードのタイプを覚えているらしい。

Xは自前でいろいろ抱え込んでいて、もろもろのbad know howがあったのに、この調子だとどんどん整理されそうだ。それは、いいけど、あまり変わられると着いていくのが大変だ。