Kategória: Debian Linux

Zmenené: 20. december 2010

Krajší štart systému

Tí, ktorí majú skúsenosti (alebo videli) viacero Linuxových distribúcií si iste všimlil, že štart Debianu nie je veľmi pekný. Siahodlhý výpis hlásení jadra sa dá skrátiť, ale i tak štart nevyzerá veľmi pekne. Dá sa to však zmeniť. Ak teda chcete mať grafický štart systému, čítajte.

Samotný štart systému pozostáva z viacerých, na seba nadväzujúcich, častí. Najprv, po zapnutí, nabieha BIOS a jeho testy (POST). Ich nastavenie nie je vecou Debianu a nebudem sa mu tu venovať. Potom BIOS prehľadá zavádzací sektor disku a hľadá tzv. bootloader (vo svete Linuxu je to zväčša GRUB alebo LILO). Bootloader zobrazí (alebo aj nezobrazí) štartovaciu ponuku, v ktorej môže poskytnúť na výber viacero spôsobov štartu a potom odovzdá riadenie zvolenému systému.

Grafický štart systému

Je niekoľko spôsobov ako zameniť textové výpisy pri štarte systému za grafický ukazovateľ priebehu, prípadne ich kombináciu:

  • bootsplash
  • usplash
  • splashy
  • plymouth

BootSplash

Bootsplash je spôsob, kedy sa o zobrazenie grafického štartu systému stará samotné jadro. Lenže v Debiane nie je táto voľba do jadra zabudovaná a ak ju chcete sprevádzkovať, budete si musieť upraviť zdrojové kódy jadra (patche nájde na nete) a vybudovať vlastné jadro. To nie je úloha pre každého a v žiadnom prípade ju neodporúčam prostým používateľom a začiatočníkom. Ja som to skúšal naposledy s jadrom 2.6.21, aký je aktuálny stav neviem…

Usplash

V úložisku je k dispozícii balíček usplash. Ak sa nemýlim, bol pôvodne vyvinutý pre Ubuntu. Pracuje vcelku spôsobilo, ale (nie len) v mojom prípade má akési problémy s vyššími rozlíšeniami framebuffera a ak si nastavíte vyššie rozlíšenie konzoly, dostanete sa do problémov. Napríklad sa Vám usplash obrazovka nezobrazí, alebo naopak, systém síce štartuje graficky, ale textová konzola je nepoužiteľná.

Ale je to relatívne funkčné a jednoduché riešenie a ak ho chcete vyskúšať, nainštalujte si prosto balíčky usplash a niektorú z tém usplash-theme-debian, debian-edu-artwork-usplash alebo brdesktop-artwork-usplash:

aptitude install usplash usplash-theme-debian

Tém si môžete samozrejme nainštalovať aj viac, výber témy potom dosiahnete pomocou nastavenia alternatív:

update-alternatives --config usplash-artwork.so

a potom je potrebné aktualizovať obraz initrd:

update-initramfs -u

Ak nedáte aktualizovať initrd obraz, budete mať po zemne témy inú pri štarte a inú pri vypínaní…

Splashy

Splashy je v podstate veľmi podobný riešeniu usplash, len funguje relatívne bez problémov. To relatívne znamená, že existuje nahlásená (a už vyriešená) chyba o problémoch s prebudením z uspania, ak používate splashy, ale čo už je dokonalé? Jeho inštalácia si vyžaduje niekoľko dodatočných krokov, ale o tom ďalej v článku.

Plymouth

Plymouth je obdoba predchádzajúcich dvoch riešení a funguje dobre. Hoci som niekde čítal, že vyžaduje KMS (Kernel Module Settings), nie je to pravda a funguje mi krásne aj s neslobodným ovládačom nVidie. Podrobnosti o základnom použití nasledujú ďalej v článku.

Splashy

Keďže nemám rád, ak mi nejaký balíček (usplash) určuje aké musím mať nastavenie grafiky, neuspokojil som sa a hľadal som ďalej. Aj balíky splashy sú v úložisku, takže ich je možné nainštalovať jednoducho pomocou balíkovacieho systému, ale pozor! Je tu jeden problém. Tým je mierny konflikt s obsahom balíka desktop-base. Konflikt spočíva v tom, že balík desktop-base inštaluje jednu tému pre splashy, čo by nebolo až také zlé, ale inštaluje ju do adresára /etc/splashy/themes. Aj balík splashy hľadá témy v tomto adresári, lenže neinštaluje ich do tohoto adresára ale do /usr/share/splashy/themes/; a :file:/etc/splashy/themes` je len odkaz na tento adresár. Ak však súbor /etc/splashy/themes už existuje, splashy tento odkaz nevytvorí a témy nainštalované v /usr/... sú pre neho nedostupné. Tak si pred inštaláciou overte, či tento adresár už nemáte:

ll /etc/splashy/
celkom 4,0K
drwxr-xr-x 3 root root 4,0K 7.okt 10.23 themes/

A ak ho máte, tak je treba presunúť ho do adresára /usr/share a adresár /etc/splashy nahradiť symbolickým odkazom:

mkdir /usr/share/splashy
mv /etc/splashy/themes /usr/share/splashy/
cd /etc/splashy
ln -s /usr/share/splashy/themes themes

Nazbudnite pritom na to, že budete potrebovať práva roota. Ak tento problém nevyriešite, systém naštartuje, ale aktualizácia obrazu jadra bude hlásiť chyby o neexistujúcom súbore témy. No a potom už možno nainštalovať samotné splashy a prípadne aj dodatočné témy:

aptitude install splashy splashy-themes

Tým sa všetko potrebné nastaví a pri nasledujúcom reštarte už bude zobrazený grafický ukazovateľ priebehu.

Tip

Splashy sa akosi nemá rado s console-setup (na ktorom teraz závisí XOrg), je to oznámená chyba a dá sa variešiť úpravou /etc/default/console-setup, kde je treba premenné FONTFACE a FONTSIZE nastaviť na prázdne reťazce takto:

FONTFACE=""
FONTSIZE=""

Výber témy

Po nainštalovaní je splashy nastavený tak, aby používal predvolenú tému, aby ste mohli tému zmeniť, potrebujete vedieť jej názov, čo sa dá zistiť pomocou:

splashy_config --info
>Momentálne používaná téma:
                    moreblue-orbit
                    version 1.0
                        MoreBlue Orbit theme
                    URL http://splashy.alioth.debian.org/themes
                    vytvoril Fathi Boudra
>Nainštalované témy:
                    crux
                    kubuntusplashy
                    debian3
                    debian4
                    default
                    moreblue-orbit
                    debian-moreblue
                    debian-cubism
                    debiansplashy
                    ubuntusplashy

Ako sami môžete vidieť, príkaz najprv zobrazí informácie o práve nastavenej téme, naledovaný zoznamom dostupných tém. Pre nastavenie zvolenej témy treba použiť znova tento príkaz, ale tentokrát s parametrom -s nasledovaným menom témy, napríklad:

splashy_config -s debian4

Po zmene témy je aj v tomto prípade treba znova vygenerovať obraz jadra:

update-initramfs -u

Ak to neorobíte, aj tu budete mať inú tému pri štarte a inú pri vypínaní. A aké témy máte na výber? V štandardnom úložisku sú témy, ktoré sú vypísané vyššie a vyzerajú takto:

Téma crux

Téma crux

Téma orbit

Téma orbit

Téma moreblue

Téma moreblue

Téma debian3

Téma debian3

Téma cubism

Téma cubism

Téma debian4

Téma debian4

Téma debiansplashy

Téma debiansplashy

Téma default

Téma default

Plymouth

Balíky plymouth, rovnako ako pri usplash i splashi, sú v oficiálnom úložisku (od Squeeze), takže ich inštalácia nevyžaduje žiadnu mágiu:

aptitude install plymouth

Spolu s balíkom plymouth by sa mali nainštalovať aj odporúčané balíky s témami, ak nie, pridajte k inštalácii aj balík plymouth-themes-all.

Tip

Pokiaľ túžite po zmene témy pomocou GUI, skúste SplashScreenManager skript napísaný v Pythone…

Výber a testovanie témy

Celkom je k dispozícii sedem tém, ich zoznam poskytne príkaz plymouth-set-default-theme s voľnou –list:

plymouth-set-default-theme --list

Veľmi hrubú predstavu o témach môžu poskytnúť nasledujúce snímky, ale nevystihujú podstatu, pretože všetky témy sú viac alebo menej animované:

plym_fade-in.jpg

Téma fade-in

plym_glow.jpg

Téma glow

plym_script.jpg

Téma script

plym_solar.jpg

Téma solar

plym_spinfinity.jpg

Téma spinfinity

plym_text.jpg

Téma text

Tip

Pozornejší si iste všimli, že je tu len šesť obrázkov, je to preto, že som nesnímal tému details

Tému nastavíte pomocou rovnakého príkazu, nasledovaného menom témy, mne sa najviac páči spinfinity:

plymouth-set-default-theme spinfinity

Pri výbere témy iste pomôže možnosť nechať si ju zobraziť, aj s tým pomôže nástroj plymouth a k nemu démon plymouthd. Najprv treba spustiť démona a potom kombináciu príkazov na zobrazenie nastavenej témy, ale aj jej ukončenie. Démona stačí spustiť len raz, ale ak by to robilo problémy (napríklad vo VirtualBoxe), treba ho zabiť a spustiť znova:

plymouthd
plymouth --show-splash && sleep 10 && plymouth --hide-splash

Po tejto kombinácii príkazov bude zvolená téma zobrazená 10 s, ak chcete iný čas, jednoducho zmeňte parameter príkazu sleep.

Nastavenie témy

Po výbere tej správnej témy ju stačí nastaviť. Ak ste zabudli, ktorú tému ste si to nastavili, spustenie plymouth-set-default-theme bez parametrov vypíše aktuálne nastavenú. Lenže nastavenie témy nestačí. I v prípade plymouth je potrebné znova vygenerovať initrd, tentokrát je to však možné priamo pri nastavení témy:

plymouth-set-default-themespinfinity--rebuild-initrd

za zmienku stojí aj voľba –reset, ktorá nastaví predvolenú tému. Na záver ešte pripomeniem, že bez KMS bude plymouth vyžadovať nastavenie rozlíšenia grubu, tak len v krátkosti pridajte/upravte si v /etc/default/grub premenné:

  • GRUB_GFXMODE=1024x768
  • GRUB_GFXPAYLOAD_LINUX=1024x768

…alebo teda, hodnoty podľa vlastnej potreby a ani zďaleka nemusia byť v oboch premenných rovnaké.

Grafický grub

Varovanie

Táto časť už nie je aktuálna, pretože sa týka starej verzie grub, označovanej ako Grub Legacy, ale ponechám ju tu na pamiatku…

Aj bootloader Grub môže vyzerať krajšie, ale jeho skrášlenie už nieje celkom triviálnym postupom. Nie, nebojte sa, netreba nič kompilovať zo zdrojových kódov, ale je treba ručne doinštalovať balíčky, následne preinštalovať grub no a nakoniec ešte zmeniť jeho nastavenie.

S grafickým bootloaderom prišiel ako prvý pravdepodobne Novell, vo svojej distribúcii Suse, ale postupne sa rozšíril. Priamo v Debiane som potrebné balíčky nenašiel a keďže som bol lenivý pátrať po zdrojovom kóde, pátral som po inom riešení a našiel som Sidux. Je to distribúcia založená na Debiane, ale to nie je dôležité. Čo dôležité je, že obsahuje balíček s grafickou úpravou grubu, ktorý je možné bez problémov v Debiane (testing) nainštalovať.

Príprava

Takže začnime stiahnutím potrebných balíčkov z úložiska Siduxu v uvedenom úložisku sú k dispozícii balíčky grub-gfxboot pre architektúry i386 (32 b) aj pre amd64 (64 b), takže si vyberte ten správny a uložte niekde do počítača. Potom sa v konzole prepnite do adresára, kde ste si uložili balíček. Pred tým, ako ho nainštalujeme, musíme odinštalovať pôvodný grub:

aptitude purge grub

až po tomto kroku môžme grafický grub nainštalovať:

dpkg -i grub-gfxboot_0.97-33_amd64.deb

je dosť pravdepodobné, že sa objavia chyby, napríklad pre nesplnené závislosti apodobne, preto hneď po tomto príkaze spusťte aptitude a skontrolujte stav novonainštalovaného balíčka. Závislosti balíčka nie sú náročné, závisí na grub-common, ale je veľmi pravdepodobné, že bol automaticky odinštalovaný pri odinštalovaní grub.

Inštalácia

Teraz trochu náročnejšia časť. Grub treba znova nainštalovať a k tomu je potrebné vedie ako sa volá Váš systémový disk. Takže v konzole najprv spusťte príkaz mount, ktorý vypíše zoznam pripojených partícií:

mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
...

Vo výpise je zaujímavá tučne zvýraznená časť. Z uvedeného je možné predpokladať, že môj systémový disk je označený ako zariadenie /dev/sda (teda bez čísla označujúceho partíciu). Bootloader grub mám nainštalovaný v zavádzacom zázname disku (MBR). Cielene predpokladám, že tí, ktorí ho majú nainštalovaný inde, vedia ako ho preinštalovať. Takže spustím:

grub-install --recheck /dev/sda

Je možné použiť aj konzolu grub:

grub
grub> find /boot/grub/stage1
(hdx,y) # takýto dostanete výstup
grub> root (hdx,y)
grub> setup (hdx)

Teda tento druhý postup je odporúčaný všade, ale mne nepomohol a fungovať to začalo až po použití grub-install. Ale možno som niečo robil zle.

Nastavenie

../../_images/debian_gfx.jpg

Po úspešnej inštalácii (a reštarte na vyskúšanie) nastal čas na nastavenie grafického štartu. Prvé čo je potrebné, je nejaká grafická téma. Kopu ich nájdete na KDE-Apps.org a GTK-Apps.org, lenže väčšina z nich nefunguje, pretože došlo k zmene formátu témy. Iný spôsob je stiahnuť si nejakú tému zo Siduxu, alebo môžete použiť moju, ktorá je založená zo siduxovej, ale je trochu upravená.

Téma samotná je jeden súbor, ktorý treba uložiť v počítači tak aby k nemu mal bootloader prístup, takže napríklad do adresára /boot:

ls -l /boot/mess*
lrwxrwxrwx 1 root root 14 6.okt 17.27 /boot/message -> message.debian
-rw-r--r-- 1 slavko slavko 379K 6.okt 17.34 /boot/message.debian
-rw-r--r-- 1 root src 380K 22.jún 19.44 /boot/message.snaiya

Ako vidíte, ja mám pripravené témy dve. Na zvolenú tému potom robím symbolický odkaz a na tento symbolický odkaz je potrebné nastaviť grub, takže si otvorte súbor /boot/grub/menu.lst a nájdite v ňom riadok:

# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

Je to relatívne nevýznamný komentár, ale pred neho vložíme odkaz na náš súbor s témou:

# gfxboot
gfxmenu /boot/message

Nezabudnite uložiť zmeny a môžete reštartovať do svojho grafického grubu. Pripomínam, že tento upravený grub môže používať všetky konfiguračné príkazy bežného grubu, ale niektoré sú z grafickým menu nezlučiteľné. Napríklad hiddenmenu, pre skrytie menu, skryje aj grafický obrázok…