試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Debian lenny上でSplashyが動作するかを検証(2007/11/5現在)

Ubuntu Gutsy(7.10)ではuswsuspでの休止と復帰の処理でSplashyの動作が確認できたものの、起動時にはバーが進まず、停止時にはスプラッシュ自体出なかった。Debianのほうではどうなっているのかが気になっていたので、インストール直後の状態から入れて実験してみた。

  1. インストール
    1. パッケージリポジトリ/apt-lineの設定
    2. 不安定版からパッケージを入れるための設定(apt-pinning)
  2. Splashyを使用するための準備(vesafbを使用 + Splashyを有効にするためのカーネル引数)
  3. 動作確認
  4. 現状、initramfsを使用するとNG?
  5. initramfsを使用しなくてもエラーは出ている

インストール

2007年11月頭の時点では、Splashy関係のパッケージは不安定版でのみの提供となっているため、以下の流れでこれを利用できるようにする。

パッケージリポジトリ/apt-lineの設定
不安定版のパッケージを取って来られるよう、apt-lineを追加。
ファイル名: /etc/apt/sources.list

deb http://cdn.debian.or.jp/debian/ unstable main

不安定版からパッケージを入れるための設定(apt-pinning)
/etc/apt/preferencesに、
http://debian.fam.cx/index.php
の「preferences を使う」で書かれている内容を書き、「基本的にlenny、必要なものだけsid」というパッケージの取り方をするように設定する。
設定後、実際にやってみると

$ sudo apt-get install splashy-themes
(中略)
取得:1 http://cdn.debian.or.jp lenny/main x11-common 1:7.2-5 [340kB]
取得:2 http://cdn.debian.or.jp lenny/main libxau6 1:1.0.3-2 [11.7kB]
取得:3 http://cdn.debian.or.jp lenny/main libxdmcp6 1:1.0.2-2 [16.7kB]
取得:4 http://cdn.debian.or.jp lenny/main libx11-data 2:1.0.3-7 [157kB]
取得:5 http://cdn.debian.or.jp lenny/main libx11-6 2:1.0.3-7 [567kB]
取得:6 http://cdn.debian.or.jp lenny/main libsysfs2 2.1.0-2+b1 [27.5kB]
取得:7 http://cdn.debian.or.jp lenny/main libdirectfb-0.9-25 0.9.25.1-6 [834kB]
取得:8 http://cdn.debian.or.jp lenny/main libfreetype6 2.3.5-1+b1 [347kB]
取得:9 http://cdn.debian.or.jp lenny/main libjpeg62 6b-14 [86.0kB]
取得:10 http://cdn.debian.or.jp lenny/main libpng12-0 1.2.15~beta5-3 [187kB]
取得:11 http://cdn.debian.or.jp lenny/main libxext6 1:1.0.3-2 [30.1kB]
取得:12 http://cdn.debian.or.jp lenny/main libdirectfb-extra 0.9.25.1-6 [24.1kB]
取得:13 http://cdn.debian.or.jp lenny/main libglib2.0-0 2.14.1-5 [548kB]
取得:14 http://cdn.debian.or.jp unstable/main libsplashy1 0.3.5 [25.2kB]
取得:15 http://cdn.debian.or.jp unstable/main splashy 0.3.5 [2095kB]
取得:16 http://cdn.debian.or.jp unstable/main splashy-themes 0.4 [3943kB]
(以下略)

そのようにやってくれているのが分かる。「apt-pinning」というらしいが、結構便利。

Splashyを使用するための準備(vesafbを使用 + Splashyを有効にするためのカーネル引数)

下の例では、画面解像度を1024x768/16bit(65536色)にしている。

$ sudo sed -i -e 's/\(ro quiet\)$/\1 splash vga=0x317/' /boot/grub/menu.lst

動作確認

起動させると、きちんとバーが進む。シャットダウン時にもスプラッシュに切り替わり、左向きに戻っていくのが確認できた。

現状、initramfsを使用するとNG?

以下の流れでinitrdにSplashyを入れることができる。

$ sudo sed -i -e 's/ENABLE_INITRAMFS=0/ENABLE_INITRAMFS=1/' /etc/default/splashy
$ sudo update-initramfs -u -t -k $(uname -r)

initrdを使用すると、使用しない場合よりも早めにスプラッシュに切り替わるのだが、実際に試してみると、

バーが少し進んだところ(上の画像の段階)でピタッと止まり、しばらくすると画面が切り替わり

Splashy ERROR: Timeout (120 sec) occurred while waiting for a message on the Splashy socket

と出て止まる。/etc/splashy/config.xmlに「<fifo>」の記述を書いてもダメ。

initramfsを使用しなくてもエラーは出ている

initramfsを使用しないと、スプラッシュ自体は出るのだが、起動時に

...
INIT: version 2.86 booting
(Re)generating splash steps for: rc2.d... rc0.d... rc6.d...done.
Starting Boot splash manager: splashy.
Splashy ERROR: Connection refused
Starting the hotplug events dispatcher: udevd.
...

終了時に

INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
(Re)generating splash steps for: rc2.d... rc0.d... rc6.d...done.
Starting Boot splash manager: splashy.
Splashy ERROR: Connection refused
Stopping periodic command scheduler: crond.
(中略)
Asking all remaining processes to terminate...Splashy ERROR: Error while selecting poll event: Interrupted system call
done.
Killing all remaining procecces...done.
...

のように、一部でエラーメッセージは出ている。