FbTermの有すもう1つの特長は、X Windowの未インストール環境であっても簡単にターミナルが使用できることである。確かにその種のシステムに対する管理作業の大部分は、SSHを介してシステムにログインした状況下で行うものかもしれないが、システム上での拡張セッションとして直接実行するケースに遭遇することもあるはずだ。
FbTermのバージョン1.0は先月リリースされたばかりである。このように歴史の浅いFbTermであるため、現状にてメインストリームのLinuxディストリビューションのパッケージリポジトリに収録されていないケースが多いのも、ある意味致し方のないところであろう。例えばUbuntuおよびFedora用にパッケージ化はされていないが、openSUSE 11については1-Clickインストールができるようになっている。私の場合、本稿の執筆用に先月リリースされたFbTerm 1.0を64ビット版Fedora 9用にソースからビルドしたが、その際に用いたのは「./configure; make; sudo make install」という通常のプロセスである。
FbTermを使用する場合、最初に遭遇する可能性の高いトラブルは、/dev/fbファイルがインストールされていないというものだ。実際に私の場合も、NvidiaおよびATIグラフィックスカードを搭載した2台のマシンにて、Fedora 9用のフレームバッファデバイスが作成されていなかった。ところが意外なことに、かなり旧式なS3 PCIグラフィックスカード搭載マシンのFedora 9インストレーションに関しては、/dev/fb0のフレームバッファが作成されていたのである。いずれにせよこれらデバイスファイル群を入手する一番簡単な方法は、各自のカードに適したカーネルモジュールを追加することだろう。例えばATI X300を搭載したラップトップの場合、フレームバッファデバイスを作成させるには「modprobe radeonfb」というコマンドを実行すればいい。通常フレームバッファモジュールの格納位置は、下記のような各システムのカーネル中とされるはずである。
/lib/modules/`uname -r`/kernel/drivers/video
/dev/fb(実際には/dev/fb0に対するシンボリックリンクとされている場合が多い)がインストールできたら、FbTermを実行する準備はほぼ整ったことになる。ただしこの設定段階におけるFbTermの実行にはroot権限が必要だが、実用上は一般ユーザの権限で実行できる方が便利だろう。実のところ一般ユーザによるFbTermの実行が行えない原因は、/dev/fb0デバイスの実行権限がrootに対してのみ与えられているからに過ぎない。この問題の回避策の1つは「chown username /dev/fb0」コマンドを使用することだが、あるいはフレームバッファ用のグループを作成して必要なユーザを登録しておく方法も考えられる。
しかしながら、fbのシンボリックリンク作成を規定しているのは/etc/udev/rules.dディレクトリに置かれた50-udev-default.rulesファイルなので、この場合は、必要なグループや実行権限をfbデバイスの作成時に設定するためのカスタムudevルールを作成してしまう方が、よりシステムフレンドリな実行権限の回避策と言えるだろう。具体的には、下記に例示したようなフレームバッファ.rulesファイルをmy-rules.dディレクトリに用意しておくことで、指定したユーザが所有権を持つfb0デバイスが作成されるようになる。
# mkdir -p /etc/udev/my-rules.d # cd /etc/udev/my-rules.d # cat framebuffer.rules KERNEL=="fb0", OWNER="username", MODE="0640"
指定したユーザによりアクセス可能なフレームバッファデバイスの準備ができたら、後はfbtermコマンドによりターミナルを起動すればいい。そしてFbTermの初回起動時には、表示カラーとフォントのデフォルト指定に関する設定ファイルが~/.fbtermrcに作成されるはずである。例えばATIグラフィックスチップ搭載のFedora 9ラップトップの場合、デフォルトで作成される設定ファイルは、次のように記述されている。
# Configuration for fbterm # font family/pixelsize used by fbterm, mulitple font families must be separated by ',' font_family=mono font_size=12 # default color of foreground/background text # available colors: 0 = black, 1 = red, 2 = green, 3 = brown, 4 = blue, 5 = magenta, 6 = cyan, 7 = white color_foreground=7 color_background=0
