kernel 2.4.26 + i810(DC100) で Frame Buffer に挑戦したメモ。
Intel(R) 810 and 815 Framebuffer Driver http://i810fb.sourceforge.net/
i810 フレームバッファの最新版は 0.0.35 の模様。
二つのファイルをダウンロード。
一つ目の kernel 2.4.23 用のパッチ(0.0.24)を当てたうえで二つ目のパッチを当てると最新版になります。
$ cd /usr/src/linux-2.4.26/ # bzcat linux-2.4.23-24-i810fb.diff.bz2 | patch -p1
使っているカーネルは 2.4.26 なんだけどパッチが 2.4.23 用なので fb.h にうまくパッチが当たらない。
# vi include/linux/fb.h
以下の一行を Epson SED1356 の下に追加。
#define FB_ACCEL_I810 43 /* Intel 810 */
んでもって最新版にするためさらにパッチ当て。
linux-i810fb-0.0.35.tar.bz2 を展開してできたパッチを当てる。
# patch -p1 < i810fb-0.0.23-0.0.35.diff
make menuconfig で表示される Console->Video->Framebuffer->Intel 810/815 support 以下を全てチェック。
あとはカーネルをコンパイルするだけ。
とりあえず 1280x1024 16bpp に設定してみる。(実際は一行です)
options i810fb vram=4 xres=1280 yres=1024 bpp=16 hsync1=32 hsync2=91 vsync1=60 vsync2=85 accel=1 mtrr=1 hwcur=1 render=1 nosyncpan=1
これで 0.0.24 は大丈夫だったのだが 0.0.35 にバージョンアップしたら垂直同期が小さい値を取るようになってしまったので 84Hz になるように範囲を狭めたら成功した。( 実際は一行です)
options i810fb vram=4 xres=1280 yres=1024 bpp=16 hsync1=32 hsync2=91 vsync1=84 vsync2=85 accel=1 mtrr=1 hwcur=1 render=1 nosyncpan=1 vyres=2048
上記の行を挿入して demod -a を実行。
パラメータについてはここら辺 http://i810fb.sourceforge.net/howto/x83.html#AEN187
コンソールのテキスト描画が早くなるそうなので yres オプションを追加しました。
http://i810fb.sourceforge.net/howto/x83.html#AEN308
コンソール上で以下のコマンド。
# modprobe i810fb
おぉ、上手くいったみたい。
以下は dmesg の内容。
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 261M
agpgart: Detected an Intel i810 DC100 Chipset.
agpgart: detected 4MB dedicated video ram.
agpgart: AGP aperture is 64M @ 0xe4000000
PCI: Found IRQ 11 for device 00:01.0
PCI: Sharing IRQ 11 with 01:08.0
Console: switching to colour frame buffer device 160x64
fb0: Intel(R) 810-DC100 Framebuffer Device v0.0.35, Tony Daplas
Video RAM : 4096K
Mode : 1280x1024-16bpp@84Hz
Acceleration : enabled
MTRR : enabled
External VGA : disabled
Hardware cursor: enabled
Video Timings : VESA GTF (US)
Rotation Code : built
Interface : enabled
Memory Tiling : enabled
x430vfb.tgz パッケージを installpkg でインストール。
XF86Config は以下の通り。
http://www5b.biglobe.ne.jp/~kzfmsp/XF86Config.i810fb
lilo.conf とか grub.conf にオプションを書いて起動時にフレームバッファを有効にできるらしいがそこら辺がよく分からない・・。
なので今のところは /etc/rc.d/rc.modules に modprobe i810fb と書いて起動するようにしている。
以下はメモ。
video=i810fb:vram:4,xres:1280,yres:1024,bpp:16,hsync1:32,hsync2:91,vsync1:84,vsync2:85,accel,mtrr,hwcur,render,nosyncpan