VPS rendszerek IV - bootsplash (tutorial)

Címkék

Elérkeztünk a VPS (Vakulj Paraszt Systems) sorozatunk negyedik részéhez (előző részek: Linuxos laptopok, VPS ;-) rendszerek, VPS rendszerek II - animált lilo (tutorial), VPS rendszerek III - Grub splash).

A mai téma - amivel a szomszéd gyereknek is demozhatjuk, hogy milyen ``3l33t operációs rendszer guruk is vagyunk" - a bootsplash képernyő készítése tetszőleges Linux disztribúció alá.

Sokan azt hiszik, hogy a bootsplash képernyő csak a SuSE meg a hasonló júzerbarát operációs rendszerek felhasználóinak kiváltsága. De mennyire nem így van!

Most megnézzük, hogy hogyan lehet mondjuk egy ``öreg, elavult, maradi'' Debian GNU/Linux operációs rendszer alá ilyen grafikusan felturbózott stuffot tenni.1.) Mi az a bootsplash?

A bootsplash egy olyan háttér kép vagy előtér kép, amely a kernel elindulása után szinte azonnal megjelenik, és a kernel üzenetek már ezen jelennek meg. Vagy éppen ellenkezőleg, arra hivatott, hogy eltakarja a tapasztalatlan felhasználó elől a (számára zavaró) kernel üzeneteket. Természetesen a "hardcore unix guru" rendszergazdák, és az 3l33t hax0r-ok nem szeretik az ilyen üveggyöngyöket, de van akiknek ez tetszik. Ha valakinek tetszik, akkor miért ne készítse el?

"Jó jó, sok a szöveg. Azt mondd, hogy hogyan néz ki."

Valahogy így:

Bootsplash kernel üzenet kiírással:

http://www.bootsplash.org/verbose-mode.jpg

Bootsplash "csendes" üzemmódban:

http://www.bootsplash.org/silent-mode.jpg

(de hogy stílusosak legyünk, és mert Debian a rendszer nézzük meg ezt:



http://www.kde-look.org/content/pre2/11470-2.jpg)



2.) Nehéz elkészíteni?

Egyáltalán nem, ha elolvasod ezt a kis leírást, akkor szinte gyerekjáték. Persze azért tudni kell kernelt fordítani hozzá. Ismerni kell a Linux kernel boot koncepcióját, stb.

3.) Mi kell a bootsplash elkészítéséhez?

- kernelpatch

- némi kernel beállítás

- megfelelő téma

- és userspace utility-k

Na lássunk hozzá:

a.) kernel patchelés és fordítás

Először is ellenőrizd, hogy a megfelelő kernel forrása ki van-e bontva a /usr/src/linux könyvtárba (ez a tutorial a legfrissebb stabil 2.6-os kernellel készült, amely jelen esetben a 2.6.5-ös). Ha a forrás megvan, akkor szükség lesz egy bootsplash patch-re. A 2.6.5-ös kernelhez még nem jelent meg (tudomásom szerint) ilyen patch. Sebaj, én elkészítettem hozzá egy korábbi patch portját. Ezt letöltheted innen:

www.hup.hu/old/stuff/kernel/bootsplash/v2.6.5/bootsplash.patch

Egyéb esetekben letöltheted a SuSE által karbantartott bootsplash patcheket innen:

ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/

A kernel patchelés menete:

tegéped:~ # cd /usr/src/linux

tegéped:/usr/src/linux # cat bootsplash.patch |
patch -p1

patching file drivers/char/console.c

patching file drivers/char/keyboard.c

patching file drivers/char/n_tty.c

patching file drivers/video/Config.in

patching file drivers/video/Makefile

patching file drivers/video/fbcon-jpegdec.c

patching file drivers/video/fbcon-jpegdec.h

patching file drivers/video/fbcon-splash.c

patching file drivers/video/fbcon-splash.h

patching file drivers/video/fbcon-splash16.c

patching file drivers/video/fbcon.c

patching file include/video/fbcon.h

patching file kernel/panic.c

tegéped:/usr/src/linux #



Ha valami nem tiszta a kernel patchelés menetében, akkor olvasd el a
HupWikiben a Linux kernel patchelés szócikket.

Ha a patchelés kész, akkor konfiguráljuk a kernelt. Először is szükség van a kernelben VESA framebuffer támogatásra.

Menj a "Device Drivers" -> "Graphics support" -> menüponthoz, és válaszd a "Support for frame buffer devices", a "VESA VGA graphics support" opciókat, majd kapcsold be a "Bootsplash configuration" alatt levő "Bootup splash screen" opciót. Kellenek még a "Console display driver support" alatti "Video mode selection support" és a "Framebuffer Console support" opciók is.

Szintén engedélyezni kell a kernelben a "RAM disk support" és az "Initial RAM disk (initrd) support" opciókat is a "Device Drivers" -> "Block devices" menüpont alatt.

Ha ezek megvannak, akkor mentsd el a konfigot, fordítsd le a kernelt, majd telepítsd a /boot könyvtárba. Konfiguráld a lilo-t vagy a grubot az új kernelhez.

b.) a kép elkészítése

Mivel a bootolás folyamán amikor a képet be akarjuk tölteni még nincs filerendszer, a képet initial ramdisk-be (initrd) kell tennünk.

Készítsük el! Ehhez szükségünk van a "splash" névre hallgató utility-re. Ennek a forrását megtaláljuk az alábbi helyen:

ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2

Utána:

# cd ~/splash

# tar xvjf splashutils.tar.bz2

splashutils/

splashutils/Makefile

splashutils/splash.c

[..]

splashutils/ChangeLog

splashutils/COPYING

# cd splashutils

# make splash

gcc -Os -Wall -c -o splash.o splash.c

gcc -Os -Wall -o splash splash.o

strip splash

# cp splash /sbin/

# cd ..

Ha megvan a "splash" utility, akkor készítsük el a ramdisk-et:

#/sbin/splash -s -f

/etc/bootsplash/themes/te_témád/config/bootsplash-1024x768.cfg >>

/boot/initrd.splash

Témákat le lehet tölteni innen:

http://www.bootsplash.org/themes.html

Ha több felbontást akarsz, akkor ezt a lépést annyiszor kell megismételni, ahány különböző felbontást szeretnél. Természetesen ebben az esetben szerkeszteni kell a konfig filet is.

c.) befejezés

Állítsd be a lilo-t vagy a grubot, hogy az újonnan elkészült initrd-t betöltse a boot folyamán. Futtasd a lilo-t, rebootolj!

Ha minden jól ment, akkor valami ilyesmit kell látnod:

[...]

vesafb: framebuffer at 0xf0000000, mapped to 0xe0809000, size 16384k

vesafb: mode is 1024x768x16, linelength=2048, pages=41

vesafb: protected mode interface info at c000:565f

vesafb: scrolling: redraw

vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0

fb0: VESA VGA frame buffer device

[...]

bootsplash 3.1.4-2004/02/19: looking for picture.... silentjpeg size 19730 bytes, found (1024x768, 19600 bytes, v3).

Console: switching to colour frame buffer device 128x48

[...]

Ennyi az egész!

Bővebb infó, letöltések, angol leírás, stb.:

http://www.bootsplash.org/

Sok szerencsét!

Hozzászólások

Az a baj az egesszel hogy letezik kesz deb csomag es sokkal jobb debian temak... (amiknel mukodik is a progress bar illetve 1280x1024-et is tamogatnak) en ket hete "kuzdottem" meg ugyanezzel 2.4 alatt. Ajanlom emellett Con Kolivas Patcheit amik azert tobbet is tartalmaznak mint csak es kizarolag a bootsplash-t.

Bootsplash&Progress fbmngplay nelkul:

http://bulma.net/body.phtml?nIdNoticia=1812

Bootsplash&Progress bar fbmngplay-jel:

http://mentors.debian.net/

>Az a baj az egesszel hogy letezik kesz deb csomag es sokkal jobb debian temak

es ez miert baj?

>Ajanlom emellett Con Kolivas Patcheit amik azert tobbet is tartalmaznak mint csak es kizarolag a bootsplash-t.

nincs a 2.6.5-hoz, es nekem pl nem kell egy rakas teszt jellegu scheduler, meg stb. tuning

"Jó jó, sok a szöveg. Azt mondd, hogy hogyan néz ki."

lol

Itt [forums.gentoo.org] is van egy regi Bootsplash howto. Jo ideje probaltam. Mukodott is, de nem szivesen hasznalom. Tul csicsa. :)

És tényleg csak vesafb-vel mûködik. Mi van, ha én a sisfb-t akarom használni?

A splashutils elérhetõsége hibás, a jó szerintem a ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2

nekem ha fb-t használok 2.6.*-on egy "big black clean screen" jön ki :) Szóval, mintha ki lenne kapcsolva a gép, olyan a monitor, de alatta megy a boot, mert látom amikor az egér bekapcsol.

Trey! Ajánlom figyelmedbe a vps4-hez:

http://desk3d.sourceforge.net/

:)

A leírásból kimaradt egy nagyon fontos rész ami bizony hazavágja az egészet és az ember néz bután, hogy miért is nem működik....

"Use splash screen instead of boot logo"

Tehát a boot logot tessék Kikapcsolni. Én nem tettem és 3 napig kergettem a hibát :D, pedig csak olvasni kellett volna.
De ez van ha az ember lusta fordítani.

Olyat lehet, hogy a meglévő bootsplash képernyőképet szerkesztem át? Persze kernelforgatás nélkül megúszható-e?

Sziasztok!

Elakadtam. Kernelforgatason tul vagyok, a /boot/grub/menu.lst-be a boot sorba beirtam a vga=788-at. Kovetkezo bootolas kozben mar megjelent a tux a bal felso sarokban.
A leirasok azt mondjak, hogy fel kell tenni a bootsplash csomagot, de ezt sehol nem talalom.
deb http://www.bootsplash.de/files/debian unstable main
enelkul nem akarodzik sikerulni modositani a hatterkepet :(
Akinek sikerult egy jol bevalt modszert irhatna ;)

udv fozsola