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

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

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

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

[警告]

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

10.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のデフォルトの設定は完了です。

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

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

第6章を参考にhermitを起動させます。ブートオプションに“video=ep93xxfb:mode=???”を追加します。“???”に表からモード名を挿入してください。

表 10.1. 解像度一覧

モード名解像度
CRT-640x480640x480 60Hz
CRT-640x480@75640x480 75Hz
CRT-800x600800x600 60Hz
CRT-800x600@75800x600 75Hz
800x600 75Hz1024x768 60Hz
CRT-1024x768@751024x768 75Hz

表 10.2. 色深度一覧

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

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

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