Splash Screen

FreeBSD 3.1-RELEASE からブートメッセージを表示している間、スプラッシュスクリーン※1 を表示させる機能が付いた。
筆者の mobio の使い方は、サスペンド・レジュームですんでいるので再起動することはほとんど無いのだが、Windows ユーザーにひけをとってはいけないので設定すること にする。

スプラッシュスクリーンを使うと、表示画像がメモリーに残ってしまうので、メモリーの少ない環境ではお勧めしない。
画像のために確保されたメモリーは、スクリーンセイバーで利用することで再利用できるが、X では使えない。(使い方があるのなら教えてください)

また、ブートメッセージを見たい場合には、スプラッシュスクリーン表示中になにかキーを押すと、ブートメッセージを見ることができる。

ここでは、3.2-RELEASE 以降のインストール方法について紹介する。

インストール

カーネルの再構築

カーネルコンフィグレーションファイルの、pseudo-device splash を有効にする。
デフォルトで有効になっているので、自分で書き換えてなければカーネルを再構築する必要はありません。

# cd /usr/src/sys/i386/conf
# vi [your config file name]
# splash screen/screen saver
pseudo-device  splash

高画質なスプラッシュスクリーンを表示するために、VESA BIOS サポートをカーネルに組み込みます。
320×200 dot のスプラッシュスクリーンを使う場合には、この作業は必要ありません。

ほかに、VESA モジュールを起動プロセスをコントロールするスタートアップファイルから読み込む方法もあるようですが、ここでは解説しません。
文末の参考文献等を参照してください。

# vi [your config file name]
options   SYSVSHM    #SYSV-style shared memory
options    SYSVMSG    #SYSV-style message queues
options    SYSVSEM    #SYSV-style semaphores
options    "VM86"     # To include support for VESA video modes
options    VESA       # needs VM86 defined too!!

カーネルコンフィグレーションファイルを変更したら、カーネルの再構築を行う。

# config [your config file name]
# cd ../../compile/[your conf file name]
# make depend all install

ここで再起動を行い、新しいカーネルがきちんと動作することを確認しておく。

# shutdown -r now

画像の用意

VESA BIOS サポートを組み込まないなら、解像度 320×200 dot の BMP か PCX 形式の画像を用意する。
VESA BIOS サポートを使うならば解像度 1024×768 dot までの画像を表示できるので、高画質なスプラッシュスクリーンを表示させることができます。

自分でかけない私のような人は、ウェブなどをさまよって探すように※2
320×200 dot の大きさのファイルはなかなか見つからないので、見つからなければ GIMP 等でサイズ調整してください。

画像ファイルは、/boot に置いておくことにします。

/boot/loader.rc の編集

/boot/loader.rc に以下の設定が書かれているか確認します。
たぶん、デフォルトで書かれていたと思ったんだけど、よくおぼえてない……。

# cd /boot
# vi loader.rc
include /boot/loader.4th
start

/boot/loader.confの編集

/boot/loader.conf で、スプラッシュスクリーン画像の指定等をする。
loader.conf も /rc.conf と同じように、/boot/default/ にデフォルトのファイルが置いてあるので、必要な項目を /boot/loader.conf にコピーして使う。

私は、splash.bmp という名前の BMP 形式の画像を用意したので、このように設定した。
ファイル名は、自分の使う画像ファイル名にあわせて書き換えること。

また、PCX 形式を使う場合には、splash_pcx_load を YES にする。

# cd /boot
# grep splash default/loader.conf >> loader.conf
# vi loader.conf
splash_bmp_load="YES"     # Set this to YES for bmp splash screen!
splash_pcx_load="NO"      # Set this to YES for pcx splash screen!
bitmap_load="YES"         # Set this to YES if you want splash screen!
bitmap_name="/boot/splash.bmp" # Set this to the name of the bmp or pcx file
bitmap_type="splash_image_data"

それでは、再起動してスプラッシュスクリーンを観賞してみましょう。

# shutdown -r now

参考文献

  1. FreeBSD FAQ 8. X Window System と仮想コンソール 
    Q: スプラッシュスクリーンのインストールはどうするのですか. どこで見つけることができますか?
  2. FreeBSD Splash Screens
  3. 「Personal UNIX No.3」 p.79
    Linux/FreeBSD カスタマイズ入門 FreeBSDのコンソールのカスタマイズ 著者 : 横田 和隆
    出版社 : 毎日コミュニケーションズ ISBNコード : 4-8399-0266-6 価格 : 1,400円 + 税

注釈

※1 スプラッシュスクリーン
起動時のブートメッセージを隠すために、グラフィックを表示するもの。
Windows 起動時のフラッグ画面が有名かな。
※2 画像の用意
FreeBSD FAQ にあるhttp://www.cslab.vt.edu/~jobaldwi/splash/ は、今(2000/11/24)利用できないみたい。
FreeBSD Splash Screensギャラリーか、http://www.teabag.demon.co.uk/freebsd/splash/