フレームバッファ用端末エミューレータFbTermで、日本語の表示と入力、マウスのコピー&ペースト
環境
Thinkpad X40 2371-KJ1
Intel 82852/82855 GM/GME Graphics Controller
KNOPPIX 6.2 (X40 2ndHDD)
lang=ja vga=791 (/boot/grub/menu.lst)
LANG=”ja_JP.UTF-8″
LANGUAGE=”ja”
LC_MESSAGES=”ja_JP.UTF-8″ (/etc/environment, /etc/default/locale)
fbterm 1.1-1
uim-fep 1:1.5.3-1
uim-anthy 1:1.5.3-1
xfonts-unifont 1:5.1.20080914-1 PCF version of the GNU Unifont
gpm 1.20.4-3.1
条件
フレームバッファ
ffbtermにはフレームバッファが必要である。わたしにはフレームバッファのことがほとんどわからない。それでもフレームバッファが作動するかどうか、最低限の確認をしておこう。
$ ls /proc/fb
/proc/fb
/proc/fb が表示されれば、カーネルの問題はないらしい。フレームバッファが作動していれば、コンソールが高解像度で表示できる。/boot/grub/menu.lst (GRUB)や/boot/grub/grub.cfg (GRUB2)などの起動メニューに「vga=xxx」というオプションがついていればだいじょうぶだろう。つまり、よほど年代物のパソコンでなければきっとだいじょうぶなはずだ。
インストール
fbterm 1.1-1
fbtermは、フレームバッファに出力されるターミナルエミュレータというものらしい。Xウィンドウ環境のいらない端末アプリケーションと考えてよいのだろうか。基本的にはランレベル2〜4のコンソール画面と同じだが、Xウィンドウ上で動作する端末と同じように日本語を表示したり入力したりすることもできる。
上のリンク先からfbterm_1.1-1_i386.debをダウンロードして適当な場所に保存したら、そのディレクトリに移動して、次のコマンドでインストールする。それだけでインストールされた。
# dpkg -i fbterm_1.1-1_i386.deb
△ fbterm1.6
fbtermには1.6という新しいバージョンもあるが、インストールができなかった。apt-get からインストールしようとすると、libfontconfig1というファイルとの依存関係でつまずく。また、配布サイトからfbterm-1.6.tar.gzというファイルをダウンロードしてビルドしようとしたら、fontconfigが見つからないというメッセージが出た。fbterm-1.6のdebファイルをみつけてきて # dpkg -i をやってみるといいのかもしれない。
△ jfbterm
同じようなターミナルエミュレータにjfbtermというものもある。これはapt-getからインストールすることができた。jfbtermはfbtermよりも古い。動作が遅いらしい。gpmマウスも使えないらしい。そして、exitで終了すると画面がフリーズしてしまう。それでも試してみたところ、ちゃんとunifontの日本語が表示されて、uim-fepで日本語が入力できた。しかも、jfbtermでuim-fepを起動したら、exit時の不具合が解消された。それまでは別のコンソール画面からkillコマンドでプロセスを強制終了しなければならなかった。
△ jfbterm for FreeBSD
jfbterm for FreeBSDというものもある。jfbtermのさまざまな問題が解決されて、コンソール用のマウスもはじめから入っているらしい。DebianなどのLinuxにもインストールできるというのだが、ビルドに失敗した。makeコマンドを打つと「framebuffer.c:997: error ‘FB_MAJOR’ undeclared」といったエラーが出て、どう対処したらよいのかわからない。
uim-fep 1:1.5.3-1
uimというのは多言語が扱えるようにするしくみであり、コンソールではuim-fepを用いる。apt-getでインストールできる。
# apt-get install uim-fep
uim-anthy 1:1.5.3-1
uimは、各種の変換エンジンと組み合わせて使う。KNOPPIXのデフォルトの変換エンジンanthyを使うなら、uim-anthyをインストールする。
# apt-get install uim-anthy
xfonts-unifont
unifontは、fbtermやjfbtermなどのターミナルエミュレータで日本語が表示できるUTF-8用のフォントだ。文字エンコードがEUCなら、別のフォントが必要だ。
# apt-get install xfonts-unifont
gpm
gpmは、コンソール用のマウスポインタだ。ふつうのCUIコンソールでも使える。コピー&ペーストを試してみたが、なかなか便利だ。
# apt-get install gpm
「The package should be built with new debhelper to get trigger support」というきな臭いメッセージが出たが、一応インストールはできているようだ。これはバージョンアップで修正されるバグらしい。
設定ファイルや解説ページ
fbterm
インストールしたときのホームディレクトリにfbtermの設定ファイル ~/.fbtermrc ができる。わたしの場合は / 直下にできていた。「font-names=mono」というところにフォントを追加する。unifontを追加する場合は次の通り。
font-names=unifont,mono
マニュアルページには、ショートカットキー、基本的なマウスのコピー&ペーストの方法、起動メニューの追加項目などについての解説がある。
# man fbterm
コピー&ペーストの方法
ちなみにfbtermでのコピーは、左ボタンを押しながらマウスカーソルで範囲を選択する。ペーストは、そのまま右ボタンをクリックする。
uim-fep
/usr/share/uim/generic-key-custom.scm というファイルで、日本語入力のオン・オフのキーを設定する。uim-fepでは[半角/全角]キーが使えず、デフォルトのキー設定の [Shift]+[Space] も作動しないようだ。次のように編集して、入力切替のキーを [CTRL]+[J] に設定した。セミコロン「 ; 」は、コメントアウトのマークだ。デフォルトの行を編集でコメントアウトしている。
;;;(define-custom ‘generic-on-key ‘(“zenkaku-hankaku” “<Shift> “)
(define-custom ‘generic-on-key ‘(“zenkaku-hankaku” “<Control>j”)
‘(global-keys1)
‘(key)
(N_ “[Global] on”)
(N_ “long description will be here”))
;;;(define-custom ‘generic-off-key ‘(“zenkaku-hankaku” “<Shift> “)
(define-custom ‘generic-off-key ‘(“zenkaku-hankaku” “<Control>j”)
‘(global-keys1)
‘(key)
(N_ “[Global] off”)
(N_ “long description will be here”))
uim-fepにはマニュアルページがない。ヘルプを参照する。
# uim-fep -h
gpm
/etc/gpm.conf という設定ファイルがあるが、今のところいじらずにすんでいる。マニュアルページには、コマンドのオプションとマウスの詳しい操作法などの解説がある。
# man gpm
開始の手順
fbtermが「stdin isn’t a[sic] interactive tty!」のようなメッセージを出したりgpmが消しゴムになったりする問題が生じたら、起動の順番を少し変えてやれば解決するかもしれない。
1.コンソールモードに入る。
ランレベルをたとえば2に切り換えるなら # init 2 から [ALT]+[F2] 。LXDEに切り換えるには # init 5 。コンソール画面を開くだけなら [CTRL]+[ALT]+[F2] 。LXDEに戻るには [ALT]+[F5] 。
コンソールの言語設定を確認しておく。
# locale
LANGとLC_ALLが空欄で、ほかはすべて”POSIX”になっている状態ではないだろうか。
2.gpmの起動とエンコードの変更
コンソールマウスポインタのgpmは、あらかじめ起動しておいてもだいじょうぶだ。-m 以下のオプションでマウスの種類を指定している。ThinkPadのトラックポイントを使う場合は次の通り。
# gpm -m /dev/input/mice -t ps2
fbtermを起動する前に、必ずエンコードを日本語用に変更しておいた方がよさそうだ。UTF-8の場合は次の通り。
# export LANG=”ja_JP.UTF-8″
3.fbtermの起動
# fbterm
ここでfbtermを起動すれば、日本語が表示される。エンコードがEUCの場合は、もしかするとオプションをつけて起動する必要があるかもしれない。
4.uim-fepの起動
anthyで変換する場合は次の通り。
# uim-fep -u anthy
終了の手順
1.uim-fepの終了
# exit
# exit のかわりに [CTRL]+[D] でもよい。
2.fbtermの終了
# exit
fbtermの終了コマンドはuim-fepと同じだが、両方起動している状態で # exit と打ってみると、uim-fepの終了が先になる。fbtermの終了については、[CTRL]+[D] あるいは [CTRL]+[ALT]+[E] でもよい。
3.エンコードの変更
もとのコンソール画面に戻ったら、エンコードを変更する。
# export LANG=C
4.gpmの終了
gpm -k
gpmは急いで終了しなくてもよさそうだ。fbtermを終了した後のコンソール画面でgpmのマウスカーソルを動かすと、残っていたfbtermの表示を消しゴムのように消してしまうが、新しいコンソールの表示まで消したりすることはない。
まとめ
コンソール画面から短いコマンド1つか2つでfbtermとuim-fepとgpmをまとめて起動させられるような設定が作れるといいのだが。
参考記事
framebuffer
「フレームバッファコンソールの利用」(scratchpad.fc2web.com)
fbterm
「X不要で動作する高機能ターミナルエミュレータFbTerm」(SOURCEFORGE.JP 2008年09月04日)
「FBTerm」(KEN’S GNU/LINUX DIARY 2008年09月04日)
「コンソールで日本語の表示をするには」(Debian GNU/Linux スレッドテンプレ)
「CentOSでFbTerm」(エマノンの雑記帳 2010年8月7日)
uim-fep
「コンソールでの日本語入力 」(Debian GNU/Linux Sarge/Etch インストールメモ 2008年06月30日)
「コンソール」(Debian GNU/Linux スレッドテンプレ)
gpm
「コンソールで文字をコピー&ペーストするには」(北浦訓行
2002年3月21日 @IT)
「Re: Thinkpadでのgpmの設定方法」(武藤@Debianぷろじぇくと 2008年12月19日 debian-users@debian.or.jp)





