ページ

Clip to Evernote ←このページをノートに保存する
Add to Google ←このブログをGoogleに追加

2010年11月8日月曜日

コンソール画面で日本語を表示&入力

最近、仕事でX windowを使わないミニLinux環境を構築した。その際、コンソール画面で日本語の表示・入力ができるよう設定したので報告する。基本システムにはDebian5.0を用いた。
まず、はじめに、Debian5.0をインストールする。
http://www.debian.org/index.ja.html から、安定版のisoイメージをダウンロードしてインストールディスクを作成する。
ネットワークインストールCDのisoイメージファイルは、サイズが小さくお手ごろ感が高かったのでこれを使った。
(参照:http://www.debian.org/CD/netinst/
普通に、日本語環境を選んでインストールを進める。途中、「デスクトップ環境」「ウェブサーバ」など、どのようなパッケージをインストールするか尋ねられるので、「標準システム」だけを選んで全てのオプションを外した。(ちなみに、インストール先はHDDではなく4GBのCFカード。CFカードからブートする組み込みシステムである)
実際には、このあと、このPCを使うプロジェクト用にカーネルにパッチを当てたり、initramfsを書き換えたりしたが、日本語の表示・入力とは関係ないので割愛する。

日本語表示に必要なものは、jfbterm 。apt-getでインストールしようとしたら、既にインストール済みであった。
もしも、インストールされていないようならば、
# apt-get install jfbterm
を実行して、インストールする。
# modprobe vga16fb
を実行して、フレームバッファのドライバを読み込む。
# jfbterm
そのままjfbtermを実行すると、かなりたくさんメッセージが表示された後、フォントの違う画面に切り替わる。
この状態で日本語が表示できる。[Ctrl-D]か、"exit"を実行すると、元の画面に戻る。
メッセージがうるさい場合には、"-q"オプションを付けて起動する。
# jfbterm -q
"~/.profile"の最終行にでも書いておけば、毎回日本語表示可能な状態で立ち上がる。
ただし、フレームバッファのドライバを読んでおく必要がある……
ということならば、カーネル起動時の画面もフレームバッファを使えば、かっこよく立ち上がる。
"/boot/grub/menu.lst"の中の"kernel"ではじまる行に"video=vga16fb vga=0x318"と追加するだけだ。
# vi /boot/grub/menu.lst
例えば、
kernel /boot/bzImage root=/dev/hda1 ro video=vga16fb vga=0x318
これで、左上にペンギンの絵が表示されるそれっぽい起動画面で立ち上がる。
既にフレームバッファのドライバが読まれているので、jfbtermも問題なく立ち上がる。

さて、残るは入力。
入力には"uim-fep"を使う。FEPとは、これがまた懐かしい響き。MS-DOS時代のATOKやVJE-α、β、γ、Σ。ワープロ松に付属の松茸などを思い出す。PC-9801シリーズのMS-DOS上にはWXPというフリーのFEPもあった。(余談はこれくらいにして)
uim-fepと、これに対応したuim-anthyをインストールする。
# apt-get install uim-fep uim-anthy
このままuim-fepを実行することはできるが、[半角/全角]キーや[Ctrl-Space]などをコンソールが認識しないため、このままでは日本語入力モードに切り替えることができない。
したがって、"~/.uim"という設定ファイルを作って、[Ctrl-¥]で日本語入力モードのON・OFFを切り替えることにする。
# vi ~/.uim
以下のように書く。
(define-key generic-on-key? '("zenkaku-hankaku" " " "\\"))
(define-key generic-off-key? '("zenkaku-hankaku" " " "\\"))
とりあえずこれで使える。詳しい設定等は最後に参考ページのリストを挙げたので、こちらを参考にしていただきたい。

せっかくなので、ログイン直後からuim-fepが立ち上がって、[Ctrl-¥]でいつでも日本語が入力できるようにしておく。.profileの最終行に、下記のような行を加える。
jfbterm -q -e /usr/bin/uim-fep ; exit 0

これで、超軽量な日本語システムができた。cursesなどを使えば、コンソールベースのマルチウィンドウシステムも構築可能だ。超小型のPC互換ボードと液晶パネル、ミニキーボードなどを組み合わせれば、あの名機HP-200LXを超えるハンドヘルドPCを自作することができるのではないだろうか……などと考えたりしている。


<参考ページ>

0 件のコメント:

コメントを投稿