2012年12月16日日曜日

Bootロゴをどうしても増やしてみた

BootLogoを増やす

【注意】
  実際のカーネルをビルド、インストールしますので、自己責任の上でお試しください
  VMでやった方がいいかもしれません

インストール環境

OS:    Gentoo Linux x86_64 AMG仕様
カーネル: Linux karky7 3.3.4-gentoo #3 SMP

Gentoo Linux以外のやり方はそれぞれのディストリビューションの方法でやって

カーネルのインストールと設定

カーネルをインストールする
karky7 ~ # emerge gentoo-sources

カーネルを設定する、主にFrame Bufferとロゴの出力するオプション(CONFIG_LOGO)をセット、ロゴが出るよぉ
karky7 ~ # cd /usr/src/linux
karky7 ~ # make menuconfig
...
...

Device Drivers  --->
    Graphics support  --->
        Console display driver support  --->
            [*] VGA text console
            [ ]   Enable Scrollback Buffer in System RAM
            <*> Framebuffer Console support
            [*] Select compiled-in fonts
            [*]   VGA 8x8 font
            -*-   VGA 8x16 font
...
...
        --- Bootup logo
        [ ]   Standard black and white Linux logo
        [ ]   Standard 16-color Linux logo
        [*]   Standard 224-color Linux logo


ソースコードを修正する

num_online_cpus()と言う関数がコア数を返してくるので、そこを表示したいペンギンの数へ修正する、ちなみに12個に設定
画面の横幅以上のペンギンを表示できないので、大きい数値を指定しても無駄です 笑
 ※ 実際はnum_online_cpus()はハミングウエイトを返すらしいのですがとりあえずコア数ということで...

diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 7ce6640..cdc992d 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -659,8 +659,8 @@ int fb_show_logo(struct fb_info *info, int rotate)
 {
        int y;

-       y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,
-                             num_online_cpus());
+       y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,
+                             12);
        y = fb_show_extra_logos(info, y, rotate);

        return y;


ビルドする

うまい具合に通ればOK #A君おめでとう...

karky7 linux # make
...
karky7 linux # make modules_install
  DEPMOD  3.3.4-gentoo+
karky7 linux # make install
sh /usr/src/linux-3.3.4-gentoo/arch/x86/boot/install.sh 3.3.4-gentoo+ arch/x86/boot/bzImage \
        System.map "/boot"
karky7 linux #

grubを設定する

grun.confを修正して、今できたへたれカーネルで起動できるようにする、もしペンギンが出ない場合、
bootオプションにvga=0x???のモードをしてすると出る場合があります、適当ですいません
default 3
timeout 30
splashimage=(hd0,4)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.38-gentoo-r6
root (hd0,4)
kernel /boot/kernel-genkernel-x86_64-2.6.38-gentoo-r6 root=/dev/ram0 real_root=/dev/sda5 rootfstype=ext4
initrd /boot/initramfs-genkernel-x86_64-2.6.38-gentoo-r6

...
...
...

title Gentoo Linux-3.3.4-gentoo
root (hd0,4)
kernel /boot/vmlinuz-3.3.4-gentoo root=/dev/sda5

#
# これ追加
#
title Gentoo Linux-3.3.4-gentoo+
root (hd0,4)
kernel /boot/vmlinuz-3.3.4-gentoo+ root=/dev/sda5

...
...
...

# vim:ft=conf:

新しいカーネルでリブートする

karky7 ~ # reboot

先ほど作った、へたれカーネルで起動する




すると......おおおーーーーー!ペ、ペ、ペ、ペンギンが!12こもぉー...!




あまり役に立たないがチョット誰かを驚かせるにはいいかも


0 件のコメント:

コメントを投稿