第11章 VGAデバイスドライバ仕様

VGA出力はフレームバッファドライバが用意されており、コンソール画面として使用することができます。

初期状態ではVGAサイズ(解像度:640x480)の16ビットカラー設定となっていますが、SVGAサイズ(800x600)及びXGAサイズ(1024x768)や8/24ビットカラーにも対応しています。

ここでは、この設定の変更方法について説明します。

[警告]

現在のソフトウェアでは、デバイスが提供する設定の全てに対応していません。また、Armadillo-9のVGA出力は、VESAなどの規格化されているタイミングを完全に満しているわけではあません。そのため、許容範囲の狭いモニタでは同期ずれが起こる場合があります。

11.1. デフォルト設定の変更

デフォルト設定の変更には、カーネルのリコンパイルが必要となります。まず、コンフィギュレーションします。

[PC ~/atmark-dist]$ make menuconfig

メニューが表示されるので、

Kernel/Library/Defaults Selection --->

--- Kernel is linux-2.6.x

(None) Libc Version

[ ] Default all settings

[*] Customize Kernel Settings ここを選択する

[ ] Customize Vendor/User Settings
[ ] Update Default Vendor Settings

とします。続いてKernel Configurationのメニューが表示されるので、

Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices --->
<*> EP93xx frame buffer support --->
EP93xx frame buffer display (CRT display)
EP93xx frame buffer resolution (VGA(60Hz)) 解像度の上限
EP93xx frame buffer depth (16bpp true color) カラー設定

上記の項目を変更した後、コンフィギュレーションを終了させます。

続いて、ビルドします。

[PC ~/atmark-dist]$ make all

ビルドしてできたカーネルイメージ (linux.bin.gz) をArmadillo-9へ書き込み、VGAのデフォルトの設定は完了です。

11.2. 解像度・色深度の変更

デフォルトの解像度・色深度以外でVGAを動作させるときは、Linuxブートオプションに設定を追加するだけで変更ができます。

7章Linuxブートオプションを参考にhermitを起動させます。ブートオプションに“video=ep93xxfb:mode,depth”を追加します。“mode”に表11.1「解像度一覧」のモード名を、“depth”に表11.2「色深度一覧」のモード名を挿入してください。

表11.1 解像度一覧

モード名解像度水平周波数(kHz)垂直周波数(Hz)ドットクロック(MHz)
CRT-640x480640x48024.99831.24859.519
CRT-640x480@75640x48031.99838.09376.186
CRT-800x600800x60038.40137.50160.002
CRT-800x600@75800x60049.99847.34675.754
CRT-1024x7681024x76866.66249.60061.538
CRT-1024x768@751024x76880.00060.97676.220

表11.2 色深度一覧

モード名色深度
8bpp8ビットカラー
16bpp16ビットカラー
24bpp24ビットカラー
32bpp32ビットカラー

以下は800x600 60Hz, 8ビットカラーの設定例です。

hermit> setenv video=ep93xxfb:CRT-800x600,8bpp