Debian: bootsplash
Start systému Debian vypadá už mnoho let stále stějně – prostý výpis toho, co se děje. Žádné filtrování, minimum barev. A žádný bootsplash :-)
Nemyslím si, že je bootsplash nějakým způsobem nezbytný, je to jen eye-candy jako každé jiné. Může se to samozřejmě hodit, chceme-li oslnit okolí nebo si jen vychutnat ten úžasný mnohobarevný framebuffer. Ale je jen dobře, že tahle vychytávka v defaultním jádře není, třeba na server je jádro bez bootsplashe určitě vhodnější.
Budeme tedy muset jádro vlastnoručně opatchovat. Není to nijak složité, vše potřebné je připraveno v balíčcích.
Balíky
sudo aptitude install bootsplash sysv-rc-bootsplash linux-patch-bootsplash
Navíc budeme potřebovat zdrojový kód jádra, dále předpokládám verzi 2.6.20.
Aktualní verzi lze snadno zjistit, například příkazem aptitude search linux-source.
sudo aptitude install linux-source-2.6.20 kernel-package
Bude se nám hodit i .config z distribučního jádra, ten lze získat z linux-headers odpovídající verze.
Zdrojové kódy někam rozbalíme. Já používám adresář ~/src.
tar jxfv /usr/src/linux-source-2.6.20.tar.bz2 cd linux-source-2.6.20
Sem zkopírujeme také ten .config:
cp /usr/src/linux-headers-2.6.20-1-amd64/.config .
Patch jádra
Nyní aplikujeme bootsplash patch.
sh /usr/src/kernel-patches/all/apply/bootsplash
Jinou možností je dále při překladu přidat --added-patches=bootsplash a měla by se objevit
i otázka na konfiguraci nové volby.
Překlad jádra
Před spuštěním překladu se ještě můžete podívat na konfigurační volby jádra a zrušit nejzjevnější zbytečnosti jako watchdogy, různé obskurní síťové drivery apod. Nezapomeňte také zaškrtnout ten bootsplash v Device drivers / Graphics support / Bootsplash configuration.
make xconfig
Vlastní překlad a vytvoření balíčku zařídí nástroj make-kpkg.
make-kpkg clean make-kpkg --rootcmd fakeroot --initrd \ --append-to-version=-custom --revision=1 \ kernel_image kernel_headers
Balíček vznikne o adresář výš. Nainstalujeme jej.
sudo dpkg -i linux-image-2.6.20-custom_1_amd64.deb
Navíc jsme vytvořili druhý balíček, linux-headers, který je potřeba pro překládání dodatečných modulů.
Grub
Nové jádro se do Grubu přidalo automaticky, ale musíme ještě upravit parametry.
Je potřeba aktivovat framebuffer, pokud ještě není, a přidat parametr splash=silent
nebo verbose. První možnost skrývá výpisy a zobrazuje jen progressbar. Druhá zobrazuje
výpisy v rámečku s obrázkem na pozadí. Parametry umístíme na vhodné místo v /boot/grub/menu.lst,
například:
# defoptions=vga=791 splash=verbose
Nakonec necháme soubor regenerovat:
sudo update-grub
Pryč s otravným glóbem!
Ještě estetická drobnost. Ten podivný rotující glóbus je možné vypnout
zakomentováním všech řádků v souboru /etc/bootsplash/themes/debian/config/animations.cfg:
#checkroot.sh start:bootanim start network.mng #kdm start: bootanim stop #xdm start: bootanim stop #gdm start: bootanim stop #shutdown:bootanim start network.mng
Poznámka: V dokumentaci Debianu se většinou rozlišují příkazy vykonávané jako root a jako uživatel připsáním znaku $ a # na začátek příkazu. To se ale může plést s shellovými komentáři
a už mi to ani nepřipadá tak cool :-)
Takže jsem zde použil a budu používat i dále příkaz sudo, s kterým to vypadá lépe a je to snad i jasnější. Aby to takto fungovalo, je nutné mít sudo správně nakonfigurované nebo získat rootovská práva jinak (např. su -c '...').
Komentáře
A kde vzít
.config? Mám tam napsáno, že z linux-headers – tím byl myšlen balíček :-) Další (a asi lepší) místo je /boot/config-`uname -r`. Dá se to pak sfouknout jedním příkazem. Možná to poupravím...
Kde např. vzít ".config z distribučního jádra" ?