漂亮的開機畫面

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

漂亮的開機畫面

文章louie » 週日 1月 04, 2004 10:40 pm

喜愛用 console mode 的朋友有福了, 最近在朋友那裡看到他將 linux 的 console 畫面弄得漂漂亮亮的, 可放背景圖, 不禁手癢起來, 因此產生了本篇。

首先得知道要那些準備動作。如果是 SuSE Linux 7.2 以上的話, 本身就已經有加進去了, 其他的 Linux 好像都還沒有, 所以要自己 patch kernel 是免不了的。另外要將 initrd 和 frame buffer 的支援編入核心中, 在 debian 中當然還要將 cramfs 編入核心(為了使用 initrd), 注意 bootsplash 目前只支援 16 bit frame buffer 的模式。而且小弟試過, 好像只能用 vesa 模式的 frame buffer, 如果用小弟的 Matrox G200 的 matroxfb 則無法正常顯示。

http://www.bootsplash.org 下載需要的核心 patch 連結:
或直接到 SuSE 的 ftp 抓
ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/

patch 核心:
cd /usr/src/your_kernel_tree

for 2.4.23
bzip2 -dc /path/to/bootsplash-3.0.7-2.4.23.diff.bz2 | patch -p1

for 2.6.0-test9 以上
patch -p0 < /path/to/bootsplash-3.1.3-2.6.0-test9.diff

在編譯核心選項時, 2.4 的核心要打開以下選項: (要編入核心, 不能用 module 的方式)
Block devices --->
<*> RAM disk support # initrd 選項
(4096) Default RAM disk size
[*] Initial RAM disk (initrd) support

File systems --->
<*> Compressed ROM file system support # debian 的 initrd 要用到

Console drivers ---> Frame-buffer support --->
[*] VGA text console
[*] Video mode selection support
[*] Support for frame buffer devices (EXPERIMENTAL) # frame buffer 選項
<*> VESA VGA graphics console
[*] Use splash screen instead of boot logo # bootsplash 選項


在編譯核心選項時, 2.6 的核心要打開以下選項: (要編入核心, 不能用 module 的方式)
Device Drivers ---> Block devices --->
<*> RAM disk support # initrd 選項
(4096) Default RAM disk size
[*] Initial RAM disk (initrd) support

Device Drivers ---> Graphics support --->
[*] Support for frame buffer devices
[*] VESA VGA graphics support
Bootsplash configuration --->
[*] Bootup splash screen # bootsplash 選項

File systems ---> Miscellaneous filesystems --->
<*> Compressed ROM file system support # debian 的 initrd 要用到

在編譯核心的同時, 可一邊製作所需要的 initrd, 請下載:
ftp://ftp.suse.com/pub/people/stepan/bo ... .7.tar.bz2

解開編譯好後安裝可得到以下工具, 複製到 /usr/local/bin 下即可:

spalsh: 可用來將圖檔加入 initrd 中, 或在系統已啟動時, 修改背景圖。還可以在到達指定的runlevel 時, 觸發某個指令的執行(用來秀出開機時的動畫)

fbresolution: 顯示目前的解析度。

fbmngplay: 用 libmng 在 framebuffer console 下秀出 mng 動畫檔的工具。

fbtruetype: 在 framebuffer console 下採用 truetype 字型來顯示文字的工具。

使用 ATI rage128 的朋友如果發現顏色不對, 需要再做另一個 patch
ftp://ftp.suse.com/pub/people/stepan/bo ... plash.diff

下載預先製做好的 theme:
http://www.bootsplash.org/themes.html

以 Linux theme 為範例:
wget -c ftp://ftp.suse.com/pub/people/stepan/bo ... ux.tar.bz2
tar jxvf /path/to/Theme-Linux.tar.bz2
splash -s -f Linux/config/bootsplash-1024x768.cfg > initrd.img-bootsplash
即產生一個 initrd.img-bootsplash
mv initrd.img-bootsplash /boot

以下表為 lilo or grub 中加入 vga=xxx 的參數值(其值為 vesa 模式 + 0x200)

| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307 -> 8 bit
32k | 0x310 0x313 0x316 0x319 -> 15 bit
64k | 0x311 0x314 0x317 0x31A -> 16 bit
16M | 0x312 0x315 0x318 0x31B -> 24 bit


編譯好核心後, 在開機管理員中加入開機參數:
lilo: (注意, 較舊版的 lilo 沒有支援 16 進制的 0x317 的數值, 請改用 10 進制 791)
vga=0x317(or vga=791) -> 1024x768 16bit
append="ramdisk_size=8192 splash=silent"
image=/vmlinuz
initrd=/boot/initrd.img-bootsplash
label = Linux

grub:
kernel /vmlinuz root=/dev/hda2 ro ramdisk_size=8192 vga=0x317 splash=silent
initrd /boot/initrd.img-bootsplash

由於 Linux theme 的圖檔為 1024x768 所以 vga= 選 0x317, 請依照圖檔大小來選擇。


bootsplash 有二種模式, 一是和原來模式一樣, 開機時會跑出許多的開機文字訊息, 背後有半
透明的底圖, 為 verbose 模式(預設值)。
二為 silent 模式, 開機時有一張全螢幕的圖(或動畫), 看不到開機的文字訊息。
可在 lilo 或 grub 中設定 splash=silent 即可

還可以在進入系統後, 手動修改背景的圖片。
splash -s -u 0 Linux/config/bootsplash-1024x768.cfg
-u 0 為第一個虛擬終端機(tty1), 其他的終端機自行修改。

另外有一點要注要的是, 如果原來就有使用 debian 的 initrd, 那麼 bootsplash 就不會動作了, 因為 debian 的 initrd 有做 cramfs 的 patch, 而 bootsplash 好像不支援, 無法從 initrd.img 中取得圖檔。

如果以上的 theme 都不合你意, 當然也可自己 DIY 了, 請參考:
http://www.bootsplash.org/themeinfo.html

如果 bootsplash 有成功的動起來, 會在 /proc 產生一個檔案, 直接 cat 即可得到目前的狀況。

各位可能會覺得, 為什麼那個使用 silent 模式時, 底下的那個開機進度都沒有增加, 那是因為需要動到起動的 script 去顯示目前開機進度, 而 bootsplash-3.0.7.tar.bz2 中只有附 SuSE 專用的 script, 搞了半天, 實在搞不出來, 所以只好放棄, 不過這樣子的畫面小弟就很滿意了。
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:漂亮的開機畫面

文章d2207197 » 週日 1月 04, 2004 10:56 pm

唔....有 2.6 的 patch 了

之前看到的時候,想要弄,但是沒有 2.6 的 patch
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:漂亮的開機畫面

文章louie » 週日 1月 04, 2004 11:06 pm

剛才找到了 debian 的 package 了
deb http://mentors.debian.net/debian unstable main contrib non-free
deb-src http://mentors.debian.net/debian unstable main contrib non-free
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:漂亮的開機畫面

文章syn7h » 週六 1月 22, 2005 2:19 am

發現一個比較新的連結

http://www.desktop-linux.net/bootsplash.htm

:-)
syn7h
 

Re: re:漂亮的開機畫面

文章wiz » 週六 1月 22, 2005 1:06 pm

http://www.bootsplash.de/

這個網站有提供不少的themes,當然也有debian package
wiz
可愛的小學生
可愛的小學生
 
文章: 62
註冊時間: 週日 11月 24, 2002 7:57 pm

re:漂亮的開機畫面

文章TRong » 週一 1月 24, 2005 8:51 pm

不好意思請問一下
我是按照http://www.desktop-linux.net/bootsplash.htm
的安裝方式下去做安裝的從新開機之後都是出現同樣的訊題

代碼: 選擇全部
RAMDISK: Couldn`t find calid RAM disk image stuoting at 0.
VFS: Connot open root device "hda1" or unknown-block(0,0)
please append a correct "root=" boot option
Kernel pahic: VFS: Unable to mount root fs on unknown-block(0,0)


我所使用的是
kernel-source-2.6.8
bootsplash-3.1.4-sp3-2.6.8.1.diff(這個也用過bootsplash-3.1.6-2.6.8.diff)

使用的開機管理程式為grub
設定值為
代碼: 選擇全部
title           Debian GNU/Linux, kernel 2.6.8
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8 root=/dev/hda1 ro vga=791 splash=verbose
initrd          /boot/initrd.img-2.6.8
savedefault
boot



使用的步驟都跟上面所教的英文網站一樣,也都沒有出現任何錯誤訊息,使用的Kernel-source為Debian的,不知道哪裡出了錯誤,我已經試了好幾次了,還是不知道那邊有錯,希望有使用過的學長姐可以決一下解,或是分享個人的使用方式,雖然釋出現了錯誤就卡在那邊了,可是BootSplash畫面是有顯示出來的
TRong
可愛的小學生
可愛的小學生
 
文章: 9
註冊時間: 週日 6月 06, 2004 10:40 pm

re:漂亮的開機畫面

文章kclin » 週一 1月 24, 2005 10:50 pm

Block devices --->
<V> RAM disk support # initrd 選項
(4096) Default RAM disk size
[V] Initial RAM disk (initrd) support

有編入核心嗎 ?
是核心哦 不是 module
kclin
可愛的小學生
可愛的小學生
 
文章: 42
註冊時間: 週六 5月 22, 2004 10:16 am
來自: 新竹風城

Re: re:漂亮的開機畫面

文章訪客 » 週一 1月 24, 2005 10:57 pm

kclin 寫:Block devices --->
<V> RAM disk support # initrd 選項
(4096) Default RAM disk size
[V] Initial RAM disk (initrd) support

有編入核心嗎 ?
是核心哦 不是 module


我有將他打勾了,而且試了相當多次了
我也不知道是哪邊出了問題
訪客
 

re:漂亮的開機畫面

文章syn7h » 週二 1月 25, 2005 3:23 pm

你應該在 mak-kpkg 時加入 --initrd 選項
然後產生的 initrd.img ,安裝 deb

再 splash -s -f /etc/bootsplash/.... >>/boot/initrd.img-2.6.x
( 請安裝 bootsplash)

*note*
記得是 '>> ' append 到 /boot/initrd.img-2.6.x 中喔!
不是直接使用 splash 產生的 initrd.img 喔~

good luck
8-)
syn7h
 


回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron