Network Users' Group ``wheel'' / Dai ISHIJIMA's Page / SL Zaurus関連 /
PS/2キーボード | 最新版DL
まえがき | 以前のまえがき | 今後の展開・課題・予定 | 現状 | 参考文献

初版: 2003-02-11
最終更新日: 2004-03-20


PS/2キーボードはSLザウルスの周辺機器となるか?
Make ANY PS/2 Keyboard as an External Keyboard for SL Zaurus


Zaurus and PS/2 Keyboard
ええ、もちろん。PS/2キーボードはSLザウルスの周辺機器です:-)


★PS/2キーボードをつなぐ

SLザウルス、特にCシリーズには、それなりのキーボードが装備されていますが、 小型のLinuxマシンとして活用しようと思うと、 記号やコントロール文字の入力でちょっと苦労します。 そこで、業界標準のPS/2キーボードを アダプタを介して接続するドライバソフトを作成しました。

PS/2キーボードを接続するためのアダプタには、 Palmの周辺機器である、IrKB101かHappy Hacking Cradleを使います。 これらは、いずれもPS/2インタフェースを シリアルインタフェース(IrDA; 赤外線、あるいは有線RS232C)に 変換してくれるものです。

これらのアダプタは販売が終了してしまいましたが、 変換器を自作するというのも いいかもしれません(2004-03-08)。

IrKB101はTS1001Aというワンチップマイコンを、 Happy Hacking CradleはPICマイコン(PIC16C621A)を使っています。 参考文献を参考にして、 このようなインタフェースを自作することも難しくなさそうですね。

(2003/11)


★ちょっと古くなった前書き − PS/2キーボードをつなぐ

Palmの周辺機器として、PS/2キーボードを赤外線で接続するための IrKB101というアダプタが 株式会社日本トラストテクノロジー から発売されています。 大阪・日本橋だと、テクノランドなどで販売されています。 これを使うと、SLザウルスの赤外線ポートに任意のPS/2キーボードを 外部キーボードとして 接続することが可能となります…なりそうです(笑)。

また、PFUから発売されていた「Happy Hacking Cradle」を使うと、 有線シリアルでPS/2キーボードを接続できます…できそうです(笑)。

HHCは分解するとPIC一発(PIC16C621A)だったので、 自分でPIC使ったアダプタを作れるかも。 作れたら、ひさしぶりに 「トランジスタ技術」 に投稿してみるのも いいかな〜(笑)。

(2003/03)

Happy Hacking Keyboard Lite 2
Happy Hacking Keyboard Lite 2
AMiTY Keyboard
AMiTY Keyboard
こんなのできたらいいですね〜
ま、そこそこできてきましたが(笑)。


★今後の展開は?

・2004-03-16追記

PockeTop Keyboard と Targus Keyboard を入手しました。 どちらも、IrKB101と同様に9600bpsのIrDA形式でキーボードスキャンコードを 送信しています(38kHzキャリアの赤外線リモコン形式ではありません)。 キーボードスキャンコードは、PS/2、PockeTop、Targusの三種で 全く異なっています が、 ek3を改造すれば、いずれのキーボードにも対応可能のようです。 うまくいきそうだったら、またこのページで紹介します。


・2004-03-08追記

IrKB101やHHCのような、インタフェース変換器は販売が終了したようですが、 PS/2→RS232C変換器(案)RS232C→IrDA変換器(案) を作れば、PS/2キーボードをシリアルインタフェースや赤外線ポート経由で 利用できるかもしれません。


・2004-02-14追記その2

ターミナル以外の任意のアプリケーションで 外部キーボードを利用できるドライバソフト 「ek3 (ek3-2004-02-14.tgz)」 を公開しました。 アーカイブには、ソース一式と実行形式が入っています。


・2004-02-14追記

ターミナル以外の任意のアプリケーションで 外部キーボードを利用するための前段階として、 「コマンドラインから指定した文字列を、キーボード入力に流し込む」 仮想キーボード (pseudo keyboard) プログラム 「pk」 を作成してみました。


・2003-11-01追記

Linux Conference 2003 で発表したのを機に、 ソースを公開 しました。

やっぱり、Input Methodの仕組みなどをつかって、 「ターミナル限定」でなくても使えるようにすべきですねぇ…。


・2003-04-26追記

最近、ソフト自体には手を入れていません…(爆)が、 本ドライバに関して、 日本ユニックスユーザ会(jus)の研究会で発表を行いました。 その中で、「マウスには対応できないの?」という質問をいただきました。 これについては、 参考文献にPS/2マウスの話も出ていましたし、 VNCなどの仕組みと組み合わせれば使いやすいシステムができるのではないか という気がしています。 これを実現するには、PS/2キーボード+PS/2マウスの信号をRS232Cなどに 変換するPICマイコンを使った変換回路を作ればいいでしょうね。 いきなりPICマイコンの回路を作るのは面倒くさいので、 とりあえずは、PCでキーコードその他の変換を行うソフトを書いてみて、 動作全体の検証を行うのが先でしょうか。

研究会などで「生」で発表を行うと、参加された方々から直接、 貴重な意見をいただけるのがうれしいですね:-)


・2003-03-30追記

PS/2キーボード+IrKB101ドライバは、 2003/02/20版から変更していません(^^;が、 「VNCサーバの仕組みを流用すれば、 比較的簡単にユーザプロセスからQtにキーコードを送り込め (つまり、ターミナル限定ではなく、 Qtの任意のアプリケーションで外部キーボードが利用できるようになる)そうだ」 ということを、このページをご覧になられた方から ご教授いただきました。 このような貴重な情報を頂戴してうれしく思います(^^)

いつになったらできるかは、例によってわかりません(^^;が、 任意のアプリケーションで外部キーボードが利用できれば、 確かに非常に便利ですので、 そういった拡張をやってみたいなぁと思います。


★現状は?

とりあえず現状 (2004-03-20) はこんなもん↓です(笑)。


とりあえず現状 (2004-02-14) はこんなもん↓です(笑)。


とりあえず現状 (2003-02-20) はこんなもん↓です(笑)。


とりあえず現状 (2003-02-17) はこんなもん↓です(笑)。

簡単なヘルプも出ます。
	% ek2 -help
	Usage: ek2 [option]... [device]
	    options:
		-raw: RAW keyboard (no conversion) mode
		-sjis: SJIS conversion mode
		-irkb101: IrKB101+PS/2 mode
		-IrKB101: IrKB101+PS/2 mode without initialize
		-cradle: Happy Hacking Cradle+PS/2 mode
		-#: set serial speed [bps]
	    default:
		ek2 -9600 -sjis /dev/cuaa1
内蔵ターミナルとqpe-embeddedkonsole-jaに対応しています。 本体キーボードでは入力できない(…多分できないと思う) Ctrl-@(Emacs系のset-markに対応)や Ctrl-\(CannaやEggの日本語モード切り替え)などが使えるようになるので、 とっても快適です:-)

HHC, IrKB101
Happy Hacking Cradle と IrKB101



とりあえず現状 (2003-02-16) はこんなもん↓です(笑)。

簡単なヘルプも出ます。
	% ek2 -help
	Usage: ek2 [option]... [device]
	    options:
		-raw: RAW keyboard (no conversion) mode
		-sjis: SJIS conversion mode
		-irkb101: IrKB101+PS/2 mode
		-IrKB101: IrKB101+PS/2 mode without initialize
		-hhc: Happy Hacking Cradle+PS/2 mode (Not YET)
		-#: set serial speed [bps]
	    default:
		ek2 -9600 -sjis /dev/ttyS1
カーソルキー、ファンクションキーなど、HHKBのキートップにない キーは入力できません。 わたし自身があまり使わないキーはサポートしません。
HHKB
上からIrKB101, SL-C700, 初代Happy Hacking Keyboard



とりあえず現状 (2003-02-11) はこんなもん↓です(笑)。


★ソース欲しいですか?

「ターミナル限定ではなく、Qtで使えるようにドライバを書くぞ!」 あるいは 「SLザウルスのカーネルに組み込んでやる!」 という方がいらしたらご連絡ください。 現在のプログラムのソースなどをご提供いたします。


★参考文献