夜更かし日記

夜更かし日記 第2夜
夜更かし日記第3夜

2006-03-21 [長年日記]

_ [gentoo]2006.0入りノート その11~ブートスプラッシュの設定(genkernel向け)~

前置き

このセットアップ中のノートPCは、以下のような非力さんスペックなので、あまり重たい処理はさせれません。

  • cpu:crusoe 600MHz
  • MEM:128M(crusoeが16Mぐらい引いています)
  • 800x600(svga)

ですので、gdmも重いので起動したく無いのが本音*1。ですから、entranceとかログインマネージャを眺めているのですが、良さそうなのがないのでgdmで我慢していましたが、IRCでシンドウさんから、qingyがいいよってコメントをもらいました。

知らなかったので、早速検索。お膝元のGentooJP-wikiのフレームバッファに書いてありました^^;

おお。ブートスプラッシュの設定方法じゃないですか! yoshinoさん、ありがとう!

OSC2006にGentooノートを持って来られた方がいて、インストールCDと同様に綺麗なブートスプラッシュが表示されていたので、一回してみたかったんですよね*2

ブートスプラッシュの設定

GentooJP-wikiのフレームバッファの記述通りに必要なソフトをインストール。

emerge splashutils
emerge splash-themes-gentoo
emerge splash-themes-livecd

その後もブートアップ中にGentooロゴを表示するの記述通りに作業を進めていきます。

起動したらkernel panic。 あらら。日が変わった夜遅くの作業なので、だいぶ悩みましたが、ブートアップ中にGentooロゴを表示するは、自前でkernelをビルドした人向けなんですね。私は今回珍しくgenkernelを使用しているので、ちょっと手順を変更した方がいいみたいです。

一応確認として、initrdのサイズを比較してみました。作成したinitrdのサイズがあからさまに違いますよね。

# splash_geninitramfs -g /boot/splash.initrd -r 800x600 --all
# ls -al /boot/
total 8310
drwxr-xr-x   4 root root    1024 Mar 21 15:57 .
drwxr-xr-x  19 root root     488 Mar 21  2006 ..
-rw-r--r--   1 root root       0 Feb 14 09:03 .keep
-rw-r--r--   1 root root  789970 Mar 21 02:46 System.map-genkernel-x86-2.6.15-gentoo-r1
lrwxrwxrwx   1 root root       1 Mar 16 07:31 boot -> .
drwxr-xr-x   2 root root    1024 Mar 21 10:42 grub
-rw-r--r--   1 root root 4914489 Mar 21 11:47 initramfs-genkernel-x86-2.6.15-gentoo-r1
-rw-r--r--   1 root root 1472207 Mar 21 02:46 kernel-genkernel-x86-2.6.15-gentoo-r1
drwx------   2 root root   12288 Mar 15 11:05 lost+found
-rw-r--r--   1 root root 1277444 Mar 21 15:57 splash.initrd

IRCでその事を愚痴っていると、hiyuhさんがgenkernlにもオプションがあることを教えてくれました。

02:11 <hiyuh> genkernel --gensplash=HOGEHOGE --gensplash-res=XXXxYYY --menuconfig allとか

genkernelでブートスプラッシュを有効にする(成功編)

まずは、Gentoo Linux genkernelガイドを見てみましたが、gensplashの記述が無いですね。 そこでgenkernelのヘルプを見てみると

# genkernel --help
Gentoo Linux Genkernel 3.3.11
Usage:
  genkernel [options] action

Available Actions:
  all                           Build all steps
  bzImage                       Build only the kernel
  kernel                        Build only the kernel and modules
  initrd                        Build only the initrd
Available Options:

~省略~
        --bootsplash            Install bootsplash support to the initrd
       --no-bootsplash         Do not use bootsplash
       --gensplash             Install gensplash support into bzImage
       --no-gensplash          Do not use gensplash

ブートスプラッシュ関係の記述がありますね。とりあえず、デフォルトいいので、以下のように実行しました。注意点ですが、事前に/bootをマウントしておきましょう。

# mount /boot
# genkernel --bootsplash --gensplash initrd
* Gentoo Linux Genkernel; Version 3.3.11
* Running with options: --bootsplash --gensplash initrd

* Linux Kernel 2.6.15-gentoo-r1 for x86...
* initramfs: >> Initializing...
*         >> Creating base_layout cpio archive...
*         >> Creating auxilary cpio archive...
*         >> Creating busybox cpio archive...
*         >> Creating udev cpio archive...
*         >> Creating insmod cpio archive...
*         >> Creating modules cpio archive...
*   >> Installing gensplash [ using the default theme ]...

* Merging
*     initramfs-base-layout.cpio.gz
*     initramfs-aux.cpio.gz
*     initramfs-busybox-1.00-rt-mdstart.plasmaroo.cpio.gz
*     initramfs-insmod-0.9.15-pre4.cpio.gz
*     initramfs-udev-077.cpio.gz
*     initramfs-modules-2.6.15-gentoo-r1.cpio.gz
*     initramfs-splash-2.6.15-gentoo-r1.cpio.gz

* WARNING... WARNING... WARNING...
* Additional kernel cmdline arguments that *may* be required to boot properly...
* add "vga=791 splash=silent,theme:default CONSOLE=/dev/tty1 quiet" if you use a  gensplash framebuffer ]

* Do NOT report kernel bugs as genkernel bugs unless your bug
* is about the default genkernel configuration...
*
* Make sure you have the latest genkernel before reporting bugs.

さて、次に、WARNINGがあるようにブートローダに設定が必要ですね。

genkernelでブートスプラッシュを有効にする(カスタマイズ~紆余曲折編)

ブートローダの設定を説明する前に、上記のようにうまくいかなかったので、その説明を書いておきましょう。

themeは、genkernelのオプションでデフォルトの場合は、以下のフォルダのdefaultを使用するようです。

# ls -al /etc/splash/
total 72
drwxr-xr-x   5 root root   192 Mar 21 11:46 .
drwxr-xr-x  57 root root  3712 Mar 21 15:56 ..
lrwxrwxrwx   1 root root    26 Mar 21 11:46 default -> /etc/splash/livecd-2006.0/
drwxr-xr-x   3 root root   264 Mar 20 23:44 emergence
drwxr-xr-x   3 root root   296 Mar 20 23:44 gentoo
drwxr-xr-x   6 root root   576 Mar 20 23:46 livecd-2006.0
-rw-r--r--   1 root root 66372 Mar 20 23:39 luxisri.ttf

上記のようにgenkernelでブートスプラッシュ入りinitrdを作成する場合には、使用したいdefaultのシンボリックリンクを変更した方が楽だと思います。または、genkernelのオプションでテーマ指定をしてもいいと思います。

 Initialization
       --bootsplash=<theme>    Force bootsplash using <theme>
       --gensplash=<theme>     Force gensplash using <theme>
       --gensplash-res=<res>   Select gensplash resolutions

今、試してみましたが、/etc/splashにあるものは、指定出来るみたいです。

# genkernel --bootsplash=gentoo --gensplash=gentoo  initrd

それで、以下のような間違った指定をすると、

# genkernel --bootsplash=gentoo --gensplash=gentoo --gensplash-res=/etc/splash initrd
* Gentoo Linux Genkernel; Version 3.3.11
* Running with options: --bootsplash=gentoo --gensplash=gentoo --gensplash-res=/etc/splash initrd

* Linux Kernel 2.6.15-gentoo-r1 for x86...
* initramfs: >> Initializing...
*         >> Creating base_layout cpio archive...
*         >> Creating auxilary cpio archive...
*         >> Creating busybox cpio archive...
*         >> Creating udev cpio archive...
*         >> Creating insmod cpio archive...
*         >> Creating modules cpio archive...
*   >> Installing gensplash [ using the gentoo theme ]...
Warning: config file for theme 'gentoo', resolution /etc/splash does not exist!

というエラーが出てました。

ここでは成功例を初めに書いていますが、 初めて作成した時は、以下のようにgentooのテーマを指定したので、

genkernel --bootsplash=gentoo --gensplash=gentoo --gensplash-res=/etc/splash/gentoo/800x600.cfg initrd

テーマが開けなくて、普通の画面でがっかりでした(笑)

ブートローダの設定(grub)

私はgrub好きなので、grubです。liloは自分で調べて見てください。

さて、先の記述で

vga=791 splash=silent,theme:default CONSOLE=/dev/tty1 quiet

を追加するように言っていますので、そのまま追加して、以下のような感じです。長いです。

kernel /boot/kernel-genkernel-x86-2.6.15-gentoo-r1 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev vga=0x315 splash=silent,theme:default CONSOLE=/dev/tty1 quiet

vga=0x315の値は、ハンドブックのフレームバッファを参考にしました。800x600なので、この値です。

これで以下のようなインストールCDのような綺麗なブート画面が表示されました。ここまで書いてきてブートスプラッシュ?と疑問に思ってしまった(笑)

boot時の画面

boot時の画面 その2

あと、800x600なので、ログが流れる表示が少し変ですが。いいですね。

画面サイズが小さいのか回り込み

ログイン画面も綺麗に

yoshinoさんが書かれたようにログイン画面も綺麗にしましょう。ともったら、agettyの設定はすでに設定済みでした。

# equery belongs /etc/issue
[ Searching for file(s) /etc/issue in *... ]
sys-apps/baselayout-1.11.14-r6 (/etc/issue)

デフォルトで入るようですね。

*1 でも、startxもしたくないのです(笑)

*2 重い処理は避けたいってさっき書いたのに(笑)

_ [gentoo]2006.0入りノート その12~ログイン画面をqingyに~

だいぶ寄り道をしましたが、qingyを導入しましょう。

# emerge -Dpv qingy

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] media-libs/libogg-1.1.2  410 kB
[ebuild  N    ] media-libs/libvorbis-1.1.0  -aotuv 1,281 kB
[ebuild  N    ] kde-base/kde-env-3-r4  0 kB
[ebuild  N    ] media-libs/libmad-0.15.1b  -debug 490 kB
[ebuild  N    ] x11-libs/qt-3.3.4-r8  +cups -debug -doc -examples -firebird +gif  -immqt -immqt-bc -ipv6 -mysql -nas -odbc -opengl -postgres -sqlite -xinerama 14,101 kB
[ebuild  N    ] kde-base/arts-3.4.3  +alsa +arts -artswrappersuid -debug +esd  -hardened -jack -kdeenablefinal +mp3 -nas +vorbis -xinerama 922 kB
[ebuild  N    ] dev-lang/nasm-0.98.39-r1  -build -doc 531 kB
[ebuild  N    ] media-libs/libsdl-1.2.8-r1  +X -aalib +alsa +arts -dga -directfb +esd  -fbcon -ggi -libcaca -nas -noaudio -noflagstrip -nojoystick -novideo -opengl +oss -pic  -svga -xinerama +xv 2,541 kB
[ebuild  N    ] media-libs/a52dec-0.7.4-r5  -djbfft +oss 235 kB
[ebuild  N    ] media-libs/libmpeg3-1.5.2  615 kB
[ebuild  N    ] dev-libs/DirectFB-0.9.22  -debug -fbcon -fusion +gif +jpeg -mmx +mpeg  +png +sdl -sse -static -sysfs +truetype +zlib 1,912 kB
[ebuild  N    ] sys-apps/qingy-0.6.0  +crypt -emacs +gpm +pam -static 544 kB

Total size of downloads: 23,587 kB

多いなぁ。。。DirectFB関係がいろいろと引き連れているみたいですね。この非力パソコンでゲームや動画を見ることが来ないので、mpegとsdlを抜いちゃいましょう。

# USE="-mpeg -sdl" emerge -Dpv DirectFB

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] dev-libs/DirectFB-0.9.22  -debug -fbcon -fusion +gif +jpeg -mmx -mpeg +png -sdl -sse -static -sysfs +truetype +zlib 1,912 kB

Total size of downloads: 1,912 kB

お。無くなった(笑)

それじゃ、この設定をデフォルトにしましょう。

echo dev-libs/DirectFB -mpeg -sdl >> /etc/portage/package.use

これでどうかな?

# emerge -Dpv qingy

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] dev-libs/DirectFB-0.9.22  -debug -fbcon -fusion +gif +jpeg -mmx -mpeg +png -sdl -sse -static -sysfs +truetype +zlib 1,912 kB
[ebuild  N    ] sys-apps/qingy-0.6.0  +crypt -emacs +gpm +pam -static 544 kB

Total size of downloads: 2,456 kB

いい感じですね。

DirectFBを使うなら、xorg-x11から移行するのもいいかもしれないですが、現在(2006/03/21)の時点だとDirectFBだと刺さるものもあるようです(by hiyuhさん)。スキルがある方、仕事で使わない方なら、いいと思いますが、私はスキルがないので移行はまた今度にしましょう。

次にテーマをマージ

emerge qingy-themes

さて、準備ができました。GentooJP-wiki qingyを参考にして、inittabを以下のように書き換えました。

#c1:2345:respawn:/sbin/agetty 38400 tty1 linux
c1:2345:respawn:/sbin/qingy tty1 --verbose

そして、xdmをrunlevelから削除

rc-update del xdm default

再起動。

reboot

そしたら、以下のようにエラー。

      ---------------------- DirectFB v0.9.22 ---------------------
            (c) 2000-2002  convergence integrated media GmbH
            (c) 2002-2004  convergence GmbH
       -----------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2006-03-21 08:29)
(!) Direct/Modules: Could not open module directory `/usr/lib/directfb-0.9.22/systems'!
   --> No such file or directory
(!) DirectFB/core/system: No system found!
(#) DirectFBError [DirectFBCreate() failed]: No (suitable) implementation found!

うーん。困ったねぇ。

といろいろとゴソゴソしていたら、。GentooJP-wiki qingyの書いてありました。DirectFBのUSEフラグにfbconを加えてなかったですね。これは、コンソールをフレームバッファ|対応にするということですので、/etc/make.confに追加しました。

これで再マージして、再起動したら綺麗に表示されました!

GentooのGマークの下に涙がありますが、あれは、マウスポインタです(笑) これで下側のアイコンがクリック出来ます。 qingy画面

また、ログイン時のセッションは以下の4つが選べるようです。

  • コンソール
  • emacs
  • デフォルトセッション?(Xfce-4)
  • .xsession

セッション変更01

セッション変更02

セッション変更03

_ [gentoo]2006.0入りノート その13~qingyの問題回避~

さて、実際のログインをしてみたら、途中で止まってしまいました。

どうも、keychainを呼びだして、パスワード入力があると止まっちゃうようです*1

そもそもSSHで頻繁に使うことを前提に以下のようなのを.bash_profileへ入れていますが、これを止める必要がありました。

if [ "$TERM" = "xterm" ]; then
       keychain --clear <SSH private key>
       . ~/.keychain/$HOSTNAME-sh

       screen -w
       screen -xR -U
else
       keychain <SSH private key>
        . ~/.keychain/$HOSTNAME-sh
       clear
fi

*1 それはそうですね

_ [gentoo]2006.0入りノート その14~補足 FBの設定~

先のFBのエラーで詰まっていたときに調べましたが、以下のようなフレームバッファの設定ができるそうです。私のノートの場合は、SVGAでしたので、画面サイズの選択の幅は少なかったのですが、大きな解像度を表示出来るノートの方は、以下の設定をする必要があるかもしれません(無いかもしれません)。

ごそごそ、DirectFBやqingyで検索をしてみ、Howto Qingyを発見。

fbset/etc/fb.modesを作りなさいって書いてありますね。しかし、fbsetが見つかりません。別パッケージかもしれませんね。

Gentooオンラインパッケージ検索をしてみたら、見つかりました。独立して存在していますね。

#fbset > /etc/fb.modes
#cat /etc/fb.modes
mode "800x600-75"
   # D: 48.001 MHz, H: 46.876 kHz, V: 75.121 Hz
   geometry 800 600 800 600 24
   timings 20833 96 32 16 4 96 4
   rgba 8/16,8/8,8/0,0/0
endmode

としてfm.modesを作成。次に、/etc/directfbrcを作成。私のはこんな感じ。

# cat /etc/directfbrc
mode=800x600-75
depth=24

_ [gentoo]あぁ、世界デビュー

Gentoo GWN2006年3月20日号にOSC2006に出展するGentooJPの様子が掲載されました。

あー。駄菓子屋のおばちゃんみたいな写真が世界に公開されちゃったなぁ。


2005|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2016|10|

  • 本日:回
  • 昨日:回
  • トータル回
Since 2002/10/26(Sat) Restart 2005/04/05(Tue)

カテゴリ一覧


コメント


Trackback

??