Bootspalsh w wykonaniu fbsplash i fbcondecor
Posted 2 years, 7 months ago at 4:18. 15 comments
Przy okazji kompilowania jajka 2.6.24 naszło mnie że miło by było oglądać jakąś fajna grafikę, podczas uruchamiania lapka oraz mieć ładnie pokolorowaną konsole jak już się załaduje.
Natknąłem się ostatnio na projekt wywodzący się z gensplash – fbsplash. Zaszło w nim parę istotnych zmian.
- fbsplash działa w userspace, odpowiedzialny jest za wyświetlanie splasha podczas ładowania systemu w trybie silent (pasek postępu, logo) bez potrzeby patchowania kernela. To co spodobało mi się w fbsplash to to, że załącza się od razu po zatwierdzeniu pozycji w GRUBie a nie tak jak w przypadku splashy, zanim zobaczymy plansze, widzimy przez jakiś czas tekstowy postęp ładowania systemu.
- fbcondecor dawniej nazywany fbslash, odpowiedzialny jest za wyświetlanie grafiki jako tło konsoli. Pokazuje również ładowanie systemu w trybie verbose. Żeby korzystać z tego wymagane jest jednak patchowanie jadra.
Stąd też mój poprzedni wpis o temacie do bootsplasha :) Teraz krótkie how2 jak się do tego zabrać.
Instalacja fbcondecor
Jeśli chcemy mieć tylko splash na starcie komputera, bez męczenia się z kompilacją jądra w celu uzyskania tła w terminalu, przechodzimy do punku o instalacji fbsplash.
Patchowanie jądra.
Zaczynamy od pobrania latki i spatchowania jadra.
# cd /usr/src/linux # cat /sciezka/do/pliku.patch | patch -p1
Konfiguracja jądra.
Device Drivers —<
Graphics support ---<
<*> Support for frame buffer devices
[*] Enable Video Mode Handling Helpers
[ ] Enable Tile Blitting Support
[*] VESA VGA graphics support
Console display driver support —<
<*> Framebuffer Console support
[*] Support for the Framebuffer Console Decorations
Block devices —<
<*> RAM disk support
(16) Default number of RAM disks
(4096) Default RAM disk size (kbytes)
(1024) Default RAM disk block size (bytes)
Input Device Support —<
<*> Event interface
General setup —<
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Musimy pamiętać o w kompilowaniu na stałe system plików, który mamy na / oraz stery do kontrolera dysku. Ważne żeby opcja Enable Tile Blitting Support była wyłączona.
Kompilacja i instalacja jadra.
# make-kpkg kernel_image kernel_headers --revision=MojeJajco.1 # dpkg -i /usr/src/linux-image-2.x.x_MojeJajco.1_i386.deb
Instalacja fbsplash
Instalacja skryptów startowych oraz tematu do fbsplash
Dopisujemy repo do /etc/apt/sources.list.
deb ftp://ftp.berlios.de/pub/fbsplash/debian/splashutils sid contrib
Instalujemy odpowiednią paczkę
# aptitude update # aptitude install splashutils
Pora na ściągnięcie tematu
# cd /etc/splash # wget http://banasiak.me/stuff/debian_paint.tar.bz2 # tar -jxvf debian_paint.tar.bz2
Jak że by inaczej jest to mój theme do fbsplasha :P Dodatkowo możemy ściągać tematy do poczciwego bootsplash i przerobiać poleceniem bootsplash2fbsplash albo poszukać jakiś na kde-look.org.
Tworzenie initrd.
Initramdisk tworzymy tylko w przypadku jądra, które nie potrzebuje do rozruchu initrd. Najczęściej jądra dystrybucyjne, ze względu na uniwersalność, dostarczane są z initrd. Jeśli chcemy mieć tylko splash na starcie bez kolorowego tła w terminalu pomijamy ten krok w innym przypadku, odsyłam do punktu wyżej, o instalacji fbcondecor
# splash_geninitramfs debian_paint -r 1024x768 -g /boot/fbsplash-1024x768 -v
Konfiguracja GRUBa.
Musimy dopisać parę parametrów do jądra. Jeśli chcemy korzystać z fbcondecor pora na dopisanie, wcześniej zrobionego initramfs:
vga=792 splash=silent,fadein,theme:debian_paint CONSOLE=/dev/tty1
- vga=792 – ustawienie rozdzielczości (1024×768)
- splash=silent – opcja silent wyświetla splasha, verbose – tekstowy rozruch z tłem (musimy patchowac jajko żeby to uzyskać)
- theme:debian_paint – nasz theme
Przyĸładowa konfiguracja:
kernel /boot/vmlinuz-2.6.24 root=/dev/sda2 ro vga=792 splash=silent,fadein,theme:debian_paint quiet CONSOLE=/dev/tty1 initrd /boot/fbsplash-1024x768[/code]
Thats all, reboot i cieszymy się ładnym splashem oraz tłem w konsoli.
Update 2007.02.06
Drobne poprawki rozwiązujące wątpliwości ;)
Podobne wpisy
- Debian Paint – bootsplash themeW ramach szkolenia się w posługiwaniu GIMPem spłodziłem temat do fbspalsh/fbcondecor. Jak wam się podoba? :]...
- Instalacja brakujących pakietów po przeinstalowaniu systemuKrótkie howto jak wzbogacić system po przeinstalowaniu o brakujące pakiety z poprzedniego systemu. Natchnieniem do wpisu...

Hymm poprawki po moim HowTo z debian.linux.pl, czy tylko przypadek? ;-)
Przypadek ;) Reakcja na post z forum.dug.net.pl
Twoje uwagi postaram się zaaplikować później.
U mnie po wykonaniu: splash_geninitramfs debian_paint -r 1024×768 \
-g /boot/fbsplash-1024×768 -v mam następującyc komunikat:
/boot/fbsplash-1024*768 -v
o Creating directory structure..
o Copying /sbin/fbcondecor_helper..
o Copying themes..
– debian_paint
Warning: config file for theme ‘debian_paint’, resolution 1024*768 does not exist!
o Creating initramfs image..
Dlaczego program wywala błąd? Plik konfiguracyjny dla rozdzielczosci oczywiscie istnieje!
Wpisujesz przy rozdzielczości `*` a nie `x` dlatego wypluwa tobie:
Na pewno tak wpisujesz jak zacytowałeś, bo błąd podaje co innego :)
Moj blad. Jednak teraz uzywajac podanej przykladowej konfiguracji z initrd system wywala kernel panic, a bez initrd zmienia sie rozdzielczosc, ale nie pokazuje sie zadna grafika. Mam etch’a z jadrem z repo. Oto moje menu.lst:
title Debian GNU/Linux, kernel 2.6.22-4-686
root (hd0,4)
kernel /boot/vmlinuz-2.6.22-4-686 root=/dev/sda5 ro vga=792 splash=silent,fadein,theme:debian_paint CONSOLE=/dev/tty1
initrd /boot/initrd.img-2.6.22-4-686
savedefault
Zmiana initrd na nastepujace: initrd /boot/fbsplash-1024×768 powoduje wspomniany crash. Dlaczego?
Masz jądro dystrybucyjne, które potrzebuje initrd np do podmontowania systemu plików z / (jest to uniwersalne rozwiązanie) więc stworzenie swojego fbsplash min. tego nie zawiera. Podmieniasz za standardowe i dostajesz kernel panic (Pisałem to w punkcie o initrd).
Spróbuj nałożyć splash na dystrybucyjny initrd. Tak samo jak byś tworzył ale po parametrze -g wskaż ścieżkę do /boot/initrd.img-2.6.22-4-686
Ale nie wiem co to da :) Powinien wystarczyć parametr do GRUBa i skrypt startowy w /etc/init.d.
U mnie na dystrybucyjnym pierwsze linie, podczas bootowania, mam normalnie, potem wskakuje splash zaś na własnym, kompilowanym, od razu.
Żeby uzyskać tło w konsoli trzeba samemu kompilować jądro i wcześniej nałożyć na nie odpowiednia łatkę (fbcondecor)
hej hej :)
dzięki za świetny opis (w sumie z DUGa tutaj trafiłem)
tyle ze mam problem przy startcie systemu właśnie z tym że dysk jest “ro” czy dać na chama “rw”??
czy jakoś to można “łagodnie” rozwiązać??
pytam bo nie chcę mieć kłopotów…
a chciałbym mieć działającą tą “zabawkę” na full :D
Witam :)
Ja usunąłem `ro` a wcześniej dawałem `rw` i tez działo. Nie wiem jakie są minusy tego rozwiązania.
Opis prawie działa u mnie. Prawie, ponieważ wyświetla mi się splash, jednak gdy wcisnę F2 dla verbose (lub w menu.lst ustawie verbose zamiast silent) to pojawia się standardowy ekran uruchamiania systemu (czarne tło + białe literki). Gdzie może być przyczyna takiego uruchamiania? Patch do kernela dodałem.
@pinklerose
Zrobiłeś initrd z themem?
Tak, zrobiłem. Teraz już namieszałem na tyle, że tylko przy wyłączaniu komputera pojawia mi się splash.
Spróbuję od początku. :/
Dodam, że swojego kernela nie robiłem do pliku .deb
Już wszystko działa.
Najpierw robiłem całą operację na 2.4.24.2 i nie było trybu verbose.
Pobrałem 2.6.24.3 i zaczęło wszystko działać. Przede wszystkim w menuconfig pojawiła mi się opcja:
[*] Support for the Framebuffer Console Decorations
Opcja w configu pojawia się po nałożeniu fbcondecor na jądro dlatego nie miałeś tła w konsoli. Może coś z jajkiem może źle nałożyłeś :)
a ja nie wiem dlaczego mimo że zpatchowałem jądro i zrobiłem plik initrd nie mam tła w konsolach :/
@adamos
Na pewno dobrze wykonał Ci się initrd i zadeklarowałeś go w grubie? Tam ląduje temat. Dobre ustawienia wybrałeś w konfigu jajca?