Ubuntu 9.10(Karmic Koala)では、GRUBでカーネルを選択した後の起動直後の画面表示(Usplash)のしくみが変更され、ログインの前後にアニメーション表示される画面表示(Xsplash)が追加されました。Xsplashについては、本家のフォーラムなどで配布されているスクリプトを利用して簡単に変更できますが、Usplashの変更は、結構面倒です。

やや難易度が高いため、Ubuntu Magazine Japan vol.03では扱わなかったので、ここで紹介しておきます。他の記事をみたら、別に書いてもよかったんじゃないかなどと思ったのは秘密です(笑)。

開発環境を導入

Usplashを変更するには、usplash-theme-ubuntuというパッケージのソースコードを入手してリビルドしなければなりません。まずは、下記のコマンドでリビルドに必要なパッケージを導入しておきましょう。

$ sudo apt-get build-dep usplash-theme-ubuntu

ソースコードを入手する

続いて、次のコマンドでソースコードを入手しましょう。

$ apt-get source usplash-theme-ubuntu

(注意) sudoは不要です。リビルド作業は、安全のため、一般ユーザで実行します。

画像を入れ替える

上記のコマンドで入手したソースコードは、usplash-theme-ubuntu-0.27というフォルダの中にあります。この中にある下記の5つの画像を変更すればカスタマイズできます。

logo_xsmall.png (画像サイズ 55x55)
logo_small.png (画像サイズ 89x89)
logo_med.png (画像サイズ 112x112)
logo_large.png (画像サイズ 139x139)
logo_xlarge.png (画像サイズ 222x222)


実際に使われるのは、通常、logo_xsmall.pngになっているようです。ディスプレイの解像度によって異なるかも知れません。表示位置や画像サイズ(上記の5つのうちどれを選ぶか)などは、usplash-theme-ubuntu.cの中で指定されています。

リビルドする

画像を変更したら、下記のコマンドでパッケージを作り直します。

$ cd usplash-theme-ubuntu-0.27/
 ↑ソースコードのフォルダに移動
$ debuild -us -uc -d >/dev/null
 ↑リビルドを実行

独自パッケージのインストール

リビルドが成功すると、ソースコードのフォルダの上位のフォルダに「usplash-theme-ubuntu_0.27_i386.deb」というパッケージができているはずです。これをダブルクリックすれば、パッケージ・インストーラが起動しますので、「パッケージの再インストール」ボタンをクリックしてインストールを行います。ここで「再インストール」の表示となるのは、デフォルトで「usplash-theme-ubuntu」がすでにインストールされているためです。

usplash-artworkの選択

Usplashの表示には、usplash-artwork.soというライブラリが使われます。usplash-artwork.soとして、今回導入したusplash-theme-ubuntu.soを使うか、デフォルトで入っているdebian-theme.soを使うかなどを指定しておく必要があります。KDE4などを導入している場合、usplash-theme-kubuntu.soも選択肢の1つとなります。

このusplash-artwork.soを選択するには、次のコマンドを実行します。

$ sudo update-alternatives --config usplash-artwork.so

コマンドを実行すると、次のように表示されますので、最後のところで、リストの左側にある指定番号のどれかを入力してEnterします。

There are 3 choices for the alternative usplash-artwork.so (providing /usr/lib/usplash/usplash-artwork.so).

Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/usplash/usplash-theme-kubuntu.so 55 auto mode
1 /usr/lib/usplash/debian-theme.so 50 manual mode
* 2 /usr/lib/usplash/usplash-theme-kubuntu.so 55 manual mode
3 /usr/lib/usplash/usplash-theme-ubuntu.so 10 manual mode

Press enter to keep the current choice[*], or type selection number:

上記の例では「2」のusplash-theme-kubuntu.soがデフォルトに設定されているので、この場合は「3」を入力します。すると、下記のように表示されてコマンドが終了します。

update-alternatives: using /usr/lib/usplash/usplash-theme-ubuntu.so to provide /usr/lib/usplash/usplash-artwork.so (usplash-artwork.so) in manual mode.

initrdの更新

最後に、初期RAMディスク(initrd)を更新しておきます。これを実行しないと、変更が適用されません。

$ sudo dpkg-reconfigure linux-image-$(uname -r)

少々時間がかかりますが、下記のように表示され、正常に終了すれば成功です。再起動後に、新しいUsplashが表示されるはずです。

Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.31-17-generic
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.31-17.54 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.31-17.54 was configured last, according to dpkg)
Running postinst hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found Debian background: back.tga
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/initrd.img-2.6.31-15-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
done
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/nvidia-common

便利なカスタマイズツールが現れれば、こんな面倒な作業は不要になるのですが…。まあ、表示のしくみやパッケージングの勉強にもなるので、いろいろ試してみるのも価値のあることだと思います。