toge's diary

コンピュータ関連の趣味をつらつらと。

インストール

パッケージインストール

DirectFBというからにはFrameBufferが必要で、Linuxの場合はX-Windowと排他利用になるから・・・とWindowsマシンの空きパーティションにFedora Core5を入れてみて、DirectFB周りのパッケージを入れてみました。
入れたのはdirectfb-0.9.24とdirectfb-devel-0.9.24ですね。

Linux側の準備

まずはX-Windowが邪魔なので止めましょう。rootでtelinit 3するなり、/etc/inittabを弄るなりして下さい。

つぎにLinuxでのFramebufferを有効にします。/etc/grub.confのkernelの行に適当な値を入れて下さい。
私の環境ではこんな感じ。

kernel /boot/vmlinuz-2.6.16-1.2111_FC5 ro root=LABEL=/1 rhgb quiet vga=0x31B video=vesafb:mtrr:3,ywrap 

起動時にペンギン画像が出れば設定成功です。何も画面に出なくなっちゃったら・・・恐らく設定がミスっているのでしょう、vgaの数値なんかを色々弄ってみて下さい。

場合によってはビデオカードが対応していない・・・なんてこともあります。
昔はよくありましたが、近頃は少ないように思います。ちょっと特殊なNotePCを使っているとやばいかもしれません。

サンプルのコンパイル

Fedora Core5のDirectFBのパッケージにはサンプルは全然入っていないので本家から落してきましょう。
最新版のexamplesには最新版のDirectFB(0.9.25)が必要なので、古いexampleを持ってきます。

http://www.directfb.org/downloads/Old/DirectFB-examples-0.9.23.tar.gz

tar zxvf DirectFB-examples-0.9.23.tar.gz
cd DirectFB-examples
./configure
make
sudo paco -lD 'make install' 

これでとりあえず起動は出来るようになったはずです。
諸般の事情で実行にはroot権限が必要ですのでご注意を。

ちょっと画面が乱れたり、綺麗でなかったりするかもしれません。この調整には設定ファイルの記述が必要です。

設定ファイルの作成

DirectFBの動作の詳細は,下のどれかで指定出来ます。

  1. 設定ファイル
  2. 環境変数 "DFBARGS"
  3. プログラム引数

UNIXの礼儀にならって、後ろの設定が前の設定が上書きする形になってます。
毎回設定するのは面倒なので設定ファイルを作ってしまいます。

DirectFBは基本的に次の順で設定ファイルを読みます。

  1. /etc/directfbrc
  2. ~/.directfbrc
  3. /etc/directfbrc.(プログラム名)
  4. ~/.directfbrc.(プログラム名)

これも前から順に上書きするみたいですね。
ここらへんのロジックは"src/misc/conf.c"にのってます。

ではいよいよ設定ファイルを書きましょう。詳細は本家のドキュメント(http://www.directfb.org/docs/directfbrc.5.html)を見てもらうとして、私の書いた設定は以下の通りです。

mode=1280x1024
depth=24
quiet
no-banner
no-debug
hardware
no-sync
vsync-none
screensht-dir=/tmp 

もう一度プログラムを起動すると・・・大分綺麗に表示されるようになったはず。めでたしめでたし・・・と。