SSブログ

【Ubuntu 9.10】起動画面の変更の仕方 [サイズ変更あり] (usplash編)   [ubuntu]

こちらの「【Ubuntu 9.10】起動画面を変更しちゃいました。」にある動画の0:55~1:15で表示されている画面です。

元々はStart-Up-Manegerをいじった事が間違いで、修正するために調べているうちにできるようになりました。それ以来、Start-Up-Manegerを使ってません。Ubuntu 9.10を使用している人は使わない方がいいかもしれません。Grub2の設定ファイルである/etc/default/grubが変になってました。

それと。。

logo_small.png

が表示されるだけでは寂しい。。

そこで、下記に変更(640x400のサイズ)

logo_small.png

初めは、下記にしていたのですが。。。動画をアップする際になんとなく変更しました。

logo_small.png

それで、変更するに当たって必要な事があります。

1) C言語がちょっとは読めること。及び四則演算が出来ること。
2)電卓を用意すること。(暗算得意な人はいいです)
3)起動しなかった場合にリカバーできること(というか自己責任ということですね)
4)コンパイルが何か分かってること。
5) カラーパレットが分かってること。

つまりソースコード持ってきて、作り直しますので上記の条件が必要です。

では、興味がある方は「続きを読む」を押してください。(結構長文です)

 

※ usplash-theme-ubuntu ver. 0.27 を元に記述していますので、それ以外の場合は異なる場合があります。

1) 画像の用意。

まずは、png形式の画像を用意します。その時に、 最大640x400以下の画像を1枚(xsmall用)、最大1024x576以下の画像を1枚(small用)、最大1280x800以下の画像を1枚(med用)、最大1920x1200以下の画像を1枚(large用)用意することが出来ます。※logo_xlarg.pngもあって5個のはずとおもわれますが、 ver.0.27ではlogo_xlarg.pngは使われていません。縦横のピクセルサイズともに2で割りきれる方いいです。

私は面倒だったので、 640x400の画像1枚(ubutulogo_640x400.png)と640x480(ubutulogo_640x480.png)の画像1枚を用意しました。

そして、画像をGIMPなどのツールで256色に減色してください。カラーバレット数を256色にしてください。

GIMPだったら、 [画像]→[モード]→[インデックス]を選ぶとウインドが開きます。その時に255色になってると思うので256色にしてください。透過部分があると256色にしてもカラーバレットは255色になってしまうので、すべて塗りつぶしてください。なので絵の書いてない部分は黒にしてください。

確認は、[色]→[マップ]→[カラーインデックスの並び替え]でみれば0~255まで色が並んでるはずです。

2) usplash-theme-ubuntuのソースをダウンロード&展開する。

http://packages.ubuntu.com/source/karmic/usplash-theme-ubuntu

から usplash-theme-ubuntu_0.27.tar.gz を持ってきて適当なディレクトリに展開してください。

usplash-theme-ubuntu と言うディレクトリが出きるはずですので、

cd  usplash-theme-ubuntu

で中に入ってください。

3) 画像ファイルを置き換える。

4枚用意した画像を仮に~/tmpの下にxsmall.png,small.png,med.png,large.pngとしたら、

cp ~/tmp/xsmall.png logo_xsmall.png
cp ~/tmp/small.png logo_small.png
cp ~/tmp/med.png logo_med.png
cp ~/tmp/large.png logo_large.png

として上書きコピーしてください。私は2つしか用意しなかったので、

cp ~/tmp/ubutulogo_640x400.png logo_xsmall.png
cp ~/tmp/ubutulogo_640x480.png logo_small.png
cp ~/tmp/ubutulogo_640x480.png logo_med.png
cp ~/tmp/ubutulogo_640x480.png logo_large.png

としました。

4)usplash-theme-ubuntu.c の改造

電卓を用意してください。そして geditなどのエディタでusplash-theme-ubuntu.cを開きます。

すると下記の様な構造体が連続して現れます。

-------

struct usplash_theme usplash_theme = {
    .version = THEME_VERSION, /* ALWAYS set this to THEME_VERSION,
                                 it's a compatibility check */
    .next = &usplash_theme_640_480,
    .ratio = USPLASH_16_9,

    /* Background and font */
    .pixmap = &pixmap_logo_xsmall,

        /* theme resolution; if 0, use width/height of pixmap */
        .theme_width = 640,
        .theme_height = 400,

        /* position of pixmap */
        .pixmap_x = 292,
        .pixmap_y = 165,

    /* Palette indexes */
    .background             = 0,
      .progressbar_background = 71,
      .progressbar_foreground = 209,
    .text_background        = 0,
    .text_foreground        = 200,
    .text_success           = 220,
    .text_failure           = 67,

    /* Progress bar position and size in pixels */
      .progressbar_x      = 198,
      .progressbar_y      = 190,
      .progressbar_width  = 244,
      .progressbar_height = 3,

    /* Text box position and size in pixels */
      .text_x      = 96,
      .text_y      = 246,
      .text_width  = 360,
      .text_height = 100,

    /* Text details */
      .line_height  = 15,
      .line_length  = 32,
      .status_width = 35,

    /* Functions */
    .init = t_init,
    .clear_progressbar = t_clear_progressbar_16,
    .draw_progressbar = t_draw_progressbar_16,
    .animate_step = t_animate_step_16,
};

-----

それで、緑字で書いた部分から16:9用であることが分かります。 オレンジの字で書かれた部分がロゴにlogo_xsmallを使うことが分かります。実はpixmap_ファイル名となってます。

それで、青字が解像度です。そして修正するのは赤字です。

作成した画像(オレンジの字のファイルのもの)の横のpixcel数をXとして、.theme_width =にかかれているもの(子の場合は640ですが)をWとしたときに、電卓でもいいので(もっといいのはプログラムしてしまう)

(W-X)÷2

を計算して、その値を.pixmap_x = CCC CCCの部分を書き直してください。

私の場合は640x400の画像を用意したので.pixmap_x = 0 です。

同様に縦も同じ事をします。 自分の作ったファイルの縦のpixcel数をYとして .theme_height の右辺をHとした場合に

(H-Y)÷2

の値で .pixmap_yの右辺を書き直します。

ここまで書くと分かる方がいると思うのですが、すなわち画像の左上のポジションを.pixmap_x .pixmap_y で指定しているのです。というか。。これが理解出来ていないと失敗すると思います。

同様にすべてのusplash_theme_xxxx_yyyyという構造体をやっていきます。全部で15個あります。

5) Makefileの書き換え

Makefileをエディタで開いて、

usplash-theme-ubuntu.soと書いてある部分を拡張子を変えずに適当な名前に変更してください。全部で3箇所あります。あと、間違ってタブをいれたり空白を入れたりしないでください。

例えば usplash-theme-mylogo.so

6) Make & INSTALL

端末からmakeと打ってコンパイルしてください。この時に再帰エラーが出ますが大丈夫なようです。
そして先ほどMakefileで書き直したsoファイルができたら、sudo make installとしてインストールします。といっても /usr/lib/usplashのディレクトリにコピーするだけですが・・・

7) alternative登録

まずパッケージgalternativesをインストールしてください。

G alternativesを実行(アプリケーションのシステムツールにAlternatives Configuratorというのがあるはずです)して(rootパスワード求められます)、usplash-artwork.soを探してクリックしてください。

そして、「追加」ボタンをおして、Pathを右側のbrowsボタンを押して、/usr/lib/uslash/の下にインストールされたファイルを指定してください。例えば /usr/lib/usplash/usplash-theme-mylogo.so とします。Priortyは55にでもしてください。(そのままコンパイルしていれると55になるので。。)追加されたら、そこに●印のチェックをいれてください。

ちなみにコマンドラインなら、

sudo update-alternatives --install /usr/lib/usplash/usplash-artwork.so usplash-artwork.so /usr/lib/usplash/usplash-theme-mylogo.so 55

sudo  update-alternatives --set usplash-artwork.so /usr/lib/usplash/usplash-theme-mylogo.so

で出来るとおもうのですが。。。やったことないので。。

8) 再起動して確認

再起動してみてください。終了の時に自分のusplashが出てくるはずです。文字だけなら間違ってます。

気に入るまで(バグ取りも含めて)直しては、再起動して確認してください。

この時点では起動時は元のままのはずです。

9)  起動時に適応。

もし、今のカーネルの起動時に出したいなら下記のコマンドを打ってください。

sudo update-initramfs -k `uname -r` -u

" ‘ ”はバッククオートです。一旦uname -rを打って、直接下記の様に書いてもいいです。

例: sudo update-initramfs -k 2.6.31-19-generic -u

これはやってることは、initramfsの作り直し、つまり今日現在なら/boot/initrd.img-2.6.31-19-genericを作り直すことになります。失敗するととんでもないことになりますので、立ち上がるカーネルを2つ以上用意しておくことをお勧めします。

これで、再起動してusplashのロゴが変わるはずです。

以上です。


nice!(0)  コメント(4) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 4

orca

初めてコメントさせていただきます。

makeでコンパイルしようとしても
pngtousplash throbber_back.png > throbber_back.png.c
/bin/sh: pngtousplash: not found
make: *** [throbber_back.png.c] Error 127
rm throbber_back.png.c
と出てコンパイルできません><

どうすればよいでしょうか?
by orca (2010-03-18 21:37) 

あんきょ

☆orcaさん☆
コメント遅くなって済みません。
恐らくusplash-theme-ubuntu ver. 0.27以前のバージョンのをコンパイルされているのだと思います。Ubuntu 9.10はuspashではthobberは使用しません。(この部分は9.10からxspashがやることに変わりました)
なので、ver. 0.27であれば、usplash-theme-ubuntu.c の809行目あたりに #if 0 と書いてあって、993行目あたりに #endif と書いてあり、実質この間のthrobber関係のソースコードをコメントアウトしてあります。 なので引き込むことがないので掲載されたエラーは出ないはずです。
ですので9.10の場合はバージョンを確認してソースコードを持ってきてください。
私は9.10からUbuntuを始めたので、それ以前のバージョンで使用される場合ですと、環境及び経験が無いので分からないです。
済みませんm(._.*)mペコッ
by あんきょ (2010-03-22 00:33) 

あんきょ

☆orcaさん☆
誤記がありました。
xspash →xsplash
uspash →usplash
です。
by あんきょ (2010-03-22 00:35) 

orca

すいません

調べてみたら
libusplash-devというパッケージが
必要だったらしいです
インストールしてみたら上手くコンパイルできました

ありがとうございました^^
by orca (2010-03-22 19:55) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。