SPLASH(4)

名称
splash - 起動画面 (splash screen) とスクリーンセーバのインタフェース

書式
pseudo-device splash

解説
splash 疑似デバイスドライバは、カーネルに 起動画面とスクリーンセーバのサポートを加えます。 このドライバは起動画面のビットマップイメージを読み込みたい時や、 スクリーンセーバを使いたい時に必要です。

起動画面 (SPLASH SCREEN)
システムが起動しようとしている時に、任意のビットマップイメージを 画面上に表示できます。 この画像はカーネルの初期化プロセスの間じゅう画面に表示され、 ``Login'' プロンプトが画面に現れるか、 スクリーンセーバが読み込まれて初期化されるまで残ります。 また、この画像はキーを打つと消えますが、 カーネルがまだデバイスを検出している間は すぐには消えないかもしれません。

もしカーネルを読み込む際に -c ないし -v ブートオプションを指定すると、起動画面の画像は表示されません。 ただしそれでも画像は読み込まれていて、後でスクリーンセーバとして使えます。 下記を参照してください。

ビットマップを表示するためには、ビットマップファイルと、 それに対応した起動画面イメージ復号モジュールが ブートローダによって読み込まれていることが必要です。 現在、以下の復号モジュールが利用可能です:

splash_bmp.ko
    W*ndows BMP ファイル復号器。 BMP ファイルフォーマットにはさまざまな色数のものがありますが、 この復号器は現在のところ 256 色のビットマップのみを扱えます。 それ以外の色数のビットマップは表示できません。

使用例 の節で起動画面の設定法を詳しく説明しています。

VGA の標準的なビデオモードを使う場合には ビットマップのサイズは 320x200 以下であることが必要です。 VESA モジュールを静的にリンクするか もしくは VESA モジュールを読み込むかして、 カーネルの VESA モードサポートを有効にしているのなら (vga(4) 参照) 、VESA BIOS とビデオカード上のビデオメモリの量にもよりますが、 最大で 1024x768 の解像度のビットマップを読み込むことができます。

スクリーンセーバ
スクリーンセーバはシステムがアイドル状態だと考えられる時に起動されます。 アイドル状態とは、 指定した時間の間、ユーザがキーを打たず、マウスも動かさなかった時です。 スクリーンセーバは選択可能なモジュールですので、 明示的にメモリに読み込まれている必要があります。 現在、以下のスクリーンセーバモジュールが利用可能です:

blank_saver.ko
    これは単に画面を空白にするだけです。
daemon_saver.ko
    BSD デーモンのアニメーション。
fade_saver.ko
    画面が徐々に消えてゆきます。
green_saver.ko
    モニタが省電力モードを備えていれば、電源を切ります。
logo_saver.ko
    グラフィックによる BSD デーモンのアニメーション。
rain_saver.ko
    画面に夕立を描きます。
snake_saver.ko
    文字列でできた蛇を描きます。
star_saver.ko
    星が瞬きます。
warp_saver.ko
    星が素早く流れます。

スクリーンセーバモジュールは kldload(1) を使って読み込みます:

    kldload logo_saver

以下のようにしてタイムアウトの秒数を指定できます:

    vidcontrol -t N

また /etc/rc.conf ファイルの saver 変数をあなたの選んだスクリーンセーバに設定し タイムアウトを blanktime 変数に設定できます。これによりシステム起動時に、 自動的にスクリーンセーバを読み込み、タイムアウトを設定できます。

saver キーを押すことで スクリーンセーバを直ちに起動できます。 デフォルトは AT 拡張キーボードでは Shift-Pause 、AT 84 キーボードでは Shift-Ctrl-NumLock/Pause です。 キーマップ (kbdcontrol(1、) keymap(5) 参照) を書き換えて saver 機能をお好みのキーに割り当てることで、 saver キーを変更できます。

画面がテキストモードでない時にはスクリーンセーバは機能しません。

起動画面をスクリーンセーバとして使う
起動画面の画像を読み込んでいてスクリーンセーバを読み込んでいない場合、 起動画面の画像をスクリーンセーバとして使い続けることができます。 画面を切り替えるまでの間隔は、上の スクリーンセーバ の節にあるやりかたで指定できます。

関連ファイル
/boot/loader.rc
    ブートローダが読み込むスクリプト
/etc/rc.conf
    システムの設定情報
/modules/splash_*.ko
    起動画面イメージ復号モジュール
/modules/*_saver.ko
    スクリーンセーバモジュール
/modules/vesa.ko
    VESA サポートモジュール

使用例
起動画面やスクリーンセーバを読み込むためには、 カーネル設定ファイルに以下の行があることが必要です。

    pseudo-device splash

以下の例は、ブートローダのプロンプトから起動画面の画像を 読み込む方法を示しています。 これらはプロンプトのところで手で打っても良いですし、 ブートローダのスクリプト /boot/loader.rc (loader.rc(5) 参照) に書いてもかまいません。

    load kernel
    load -t splash_image_data chuck.bmp
    load splash_bmp

2 行目で起動画面に使うビットマップイメージファイルを読み込みます。 上の例では、ファイル chuck.bmp が読み込まれます。 この行に -t splash_image_data というオプションを含めることが非常に重要です。 起動画面イメージ復号モジュールは、 既に読み込まれているはずのビットマップデータを探す時に このタグ名を探すからです。 3 行目で起動画面イメージ復号モジュール splash_bmp を読み込んでいます。

以下の例では、VESA モジュールを読み込んでいるので、 標準の VGA モードでは表示できないビットマップファイルも、 VESA ビデオモードを使って表示されるはずです。

    load kernel
    load vesa
    load -t splash_image_data chuck.bmp
    load splash_bmp

もし VESA サポートがカーネルに静的にリンクされているなら、 VESA モジュールを読み込む必要はありません。 上の最初の例のように、ただビットマップファイルと 起動画面イメージ復号モジュールを読み込むだけで良いです。

警告
起動画面もスクリーンセーバも、コンソールドライバとして syscons(4) を用いる場合にのみ有効です。 もうひとつのコンソールドライバ pcvt(4) では利用できません。

バグ
スクリーンセーバが既に読み込まれている時に 他のスクリーンセーバを読み込んだ場合、 最初のスクリーンセーバは自動的には取り除かれずにメモリに残り、 カーネルのメモリを無駄に消費します。

関連項目
vidcontrol(1), syscons(4), vga(4), rc.conf(5), kldload(8), kldunload(8)

歴史
splash ドライバは FreeBSD 3.1 に初めて登場しました。

作者
splash ドライバとこのマニュアルページは Kazutaka Yokota <yokota@FreeBSD.org> が書きました。 splash_bmp モジュールは Michael Smith <msmith@FreeBSD.org> と Kazutaka Yokota が書きました。