Network Users' Group ``wheel''
/
Dai ISHIJIMA's Page
/
SL Zaurus関連
/
200LXをSLザウルスの外部KBに
初版: 2003/02/05
最終更新日:
2003/02/13
HP200LXをSLザウルスの外部キーボードにする
ek - an External Keyboard driver
(ただしコンソール限定)
C700でNgを立ち上げ、200LXで日本語入力
●はじめに
SL-C700には、キーボードがついていますが、
UNIXで常用するCTRLキー関連のできがよくありません。
これは特にコンソール(ターミナル)で使ってると、
どうにかならないかと感じてしまいます。
また、ビュースタイルではキーボードが使えません。
このため外部キーボードを利用したくなってしまいます。
そこで、HP200LXをコンソール限定(ターミナルとqpe-embeddedkonsole-jaなど)の
外部キーボードにするプログラムを書いてみました。
→PS/2キーボードをつなぐ話はこちらを参照してください
●使い方
ek (External Keyboard)
は、コンソールアプリ専用の
(つまり、QtのGUIアプリでは使えない)
外部キーボードドライバです。
「ターミナル」を動かして、
コマンドプロンプトから
bash-2.05$ ek
で起動します。起動時には、
ek: external keyboard now enabled
というメッセージを出力します。
以後、SDカードスロット横の赤外線ポートにつないだ200LXが
外部キーボードになります。
終了は、同じくコマンドプロンプトから
bash-2.05$ exit
とします。このときには、
exit
ek: caught SIGCHLD, child process finished
ek: external keyboard now disabled
というメッセージを出力します。
なお、ekは二重起動のチェックをします。
ekを動かしているのに、さらにekを動かすと、
ek: may already running ek, environ $EXTERNAL_KEYBOARD set, value = SERIAL
というメッセージが出ます。
ただし、二重起動を防止しているのではありません。
ekは環境変数「$EXTERNAL_KEYBOARD」を設定します。
.bashrcを工夫して、$EXTERNAL_KEYBOARDが
設定されているorいないに応じてプロンプトが変わるようにしておくと
便利かもしれません。
なお、ekが動いている状態では、
外部キーボードとザウルス本体の両方が利用できます。
ザウルス側のキーボードが使えなくなるわけではありません。
●200LX側では
外部キーボードとなる200LX側では、内蔵アプリのDataCommを動かします。
このため、200LX側で特に用意するソフトはありません。
DataCommを動かして{MENU}→{C}onnect→{S}ettingsで、
Baudを9600bpsにして、InterfaceをInfraredにします。
その他の条件は、パリティなし、8ビット、1ストップビット、
CTS-RTSフローにしてください。
以上の設定にして、ekを動かしているSLザウルスの赤外線ポートと
200LXの赤外線ポートの間が100mmぐらいになるように配置します。
この状態で、200LXでキーボードを打つと、
その文字がSLザウルス側に入力されます。
●日本語の入力について
200LX側で日本語変換FEPが動いている場合は、日本語も入力できます。
ただし、SLザウルス側で動いているソフトがSJIS入力に対応している必要が
あります。
たとえば、エディタの「Ng」の場合、C-x C-k C-i を何度か押して、
入力文字コードをSJISにすると、日本語を200LX側で変換して入力することができます。
入力文字のコードは、モードラインの以下の部分で確認できます。
-----Ng: *scratch* (-SE:fundamental)--All-------
↑ここ
詳しくは「Ng」のドキュメントをご覧ください。
また、DataCommではなく、EUCに対応したターミナルソフトを200LXで
動かしてもいいでしょう。
●日本語の入力について(2003/02/06追記)
最新版ekでは、
SJIS→EUC変換機能を内蔵しているので、
JKITとFEPをインストールした200LXでDataCommを動かすだけでOkです。
起動時に
bash-2.05$ ek -s
のように「-s」オプションをつけると、SJIS変換機能が有効になります。
DataComm側でFEPを立ち上げて、200LXで日本語変換した文字をそのまま
SLザウルスに入力可能です。
DataComm+JKIT+FEPで日本語変換
|
200LXからの日本語がNgに入力される
|
●制限事項
-
ターミナル(コンソール)以外では利用できません。
-
200LX側で Fn+Ctrl+C を押しても画面キャプチャできません。
これ以外にも特殊なキーシーケンスは利用できません。
-
外部キーボードからしか操作しないと、
ザウルス側がスクリーンセーバになったり、オートパワーオフします。
-
まだまだ完成度が高くありません(苦笑)。
-
他にもいろいろあると思います(爆)。
●その他
外部キーボードになるのは200LXだけではありません。
赤外線シリアル (IrDA) に、無手順でデータを投げられれば、
どんな計算機でも外部キーボードになります(笑)。
また、ekが動くのはSLザウルスだけではありません。
(ソースからコンパイルさえすれば)
FreeBSDやLinuxなど、さまざまなUNIXマシンで動きます。
また、対応しているインタフェースはIrDAだけではありません。
有線シリアルでも動きます。
→PS/2キーボードをつなぐ話はこちらを参照してください