Graficzne menu startowe
Paweł Tęcza i
inni
Wstęp
Użytkowników takich dystrybucji jak Mandrake, Red Hat czy Suse wita ładne,
graficzne menu startowe. Czy miłośnicy Debiana powinni się czuć pokrzywdzeni?
Oczywiście, że nie! Ten artykuł ma pokazać w jaki sposób można uzyskać
efektowny bootscreen zamiast nudnego, tekstowego menu. Oczywiście powinien on
zainteresować tylko tych użytkowników, którzy codziennie włączają i wyłączają
swoje komputerki :)
Inspiracją do napisania tego artykułu był opis autorstwa Phillipa Wolfera,
który znalazłem jakiś czas temu na stronach serwisu
DebianPlanet. Mogłem
go wykorzystać dopiero niedawno, gdy na swoim notebooku zainstalowałem wreszcie
``woodiego'' :)
Spis treści
1. Bootscreen w LILO
Na razie w tym artykule opisuję jedynie sposób uzyskiwania bootscreena w LILO,
gdyż tego własnie bootloadera używam na codzień. Jeśli wiesz, jak to zrobić w
GRUB-ie lub innym programie startowym, to napisz do
mnie.
1.1. Wymagania
Aby móc użyć graficznego bootmenu LILO potrzebna jest w miarę najnowsza wersja
tego pakietu (ja używam testowej wersji 22.2-3). Niestety paczka dostępna w
Debianie ``potato'' nie ma takich możliwości. Instalacja wersji testowej w
``Kartoflu'' może być dość kłopotliwa ze względu na zależności, ale jeśli
lubisz się męczyć, to możesz spróbować :)
1.2. Instalacja
Najpierw musimy ściągnąć z Internetu bootscreen, który najbardziej nam się
podoba. Poniżej znajdziesz kilka ich przykładów. Następnie rozpakowujemy
pobraną bitmapę, kopiujemy ją (z uprawnieniami roota) do
do katalogu /boot i edytujemy zawartość pliku konfiguracyjnego
/etc/lilo.conf.
Aby LILO obsługowało bootscreena musimy w jego pliku konfiguracyjnym zamienić
linię
install=/boot/boot-menu.b
na
install=/boot/boot-bmp.b
Informacje o tym, co wpisać dla danej bitmapy do pliku
/etc/lilo.conf powinny znajdować się w tarballu z obrazkiem.
Możemy jeszcze ustawić odpowiednio czas, po którym zostanie uruchomiony
domyślny system na naszym komputerze, czyli Debian ;)
timeout=80
W powyższym przypadku oznacza to, że uruchomi się on po 8 sekunach.
Wystarczy teraz uruchomić LILO
root@uluru:~# lilo -v
Password:
LILO version 22.2, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2001 John Coffman
Released 05-Feb-2002 and compiled at 20:57:26 on Apr 13 2002.
MAX_IMAGES = 27
Reading boot sector from /dev/hda
Merging with /boot/boot-bmp.b
Mapping bitmap file /boot/debian-bootscreen-woody.bmp
Boot image: /vmlinuz -> boot/vmlinuz-2.2.20-idepci
Added debian *
Boot other: /dev/hda1, on /dev/hda, loader /boot/chain.b
Added win98
/boot/boot.0300 exists - no backup copy made.
Writing boot sector.
root@uluru:~#
i po zrestartowaniu komputera możemy się cieszyć z ładnego bootescreena :)
UWAGA: rozmiar bitmapy możemy zredukować, i do dość sporo, używając
kodowania RLE, które jest obsługiwane przez LILO. Programem, który potrafi
zapisywać w ten sposób bitmapy jest dla przykładu GIMP.
Poniżej zamieściłem ciekawsze "tematy", które znalazłem w Sieci:
PROŚBA: Jeśli wiesz o istnieniu innych ładnych bootscreenów, to napisz
do mnie.
1.3. Dostosowywanie
Jeśli drzemią w Tobie zdolności plastyczne, to możesz stworzyć swój własny,
niepowtarzalny bootscreen. Powininna to byc bitmapa o rozmiarze 640x480 piksli,
16 kolorach, niskompresowana lub zakodowana przy pomocy algorytmu RLE.
W pliku /etc/lilo.conf powinny się znaleźć następujące wpisy:
install=/boot/boot-bmp.b
bitmap=/boot/test2.bmp
bmp-table = [x],[y],[ncol],[nrow],[xspc]
bmp-colors = [fg],[bg],[sh];[h-fg],[h-bg],[h-sh]
bmp-timer = [tx],[ty];[t-fg],[t-bg],[t-sh]
Informacje na temat powyższych parametrów znajdują się w dokumentacji do
programu lilo, która jest dostępna w postaci pakietu
lilo-doc.
2. Logo Linuxa we framebufferze
Jeśli jądro Linux, którego używamy obsługuje framebuffer, to pewnie już
zauważyliśmy małego pingwinka z kuflem piwa, który pokazuje się nam w czasie
bootowania systemu. Nic nie stoi na przeszkodzie, abyśmy stworzyli własne logo,
np. przedstawiające charakterystyczną dla Debiana "spiralkę". Do tego celu
możemy użyć pakietu fblogo. Jego instalacja jest trywialna
i sprowadza się do wydania dobrze znanego wszystkim Debianowcom polecenia:
# apt-get install fblogo
Aby wygenerować odpowiedni plik nagłówkowy wystarczy teraz wydać komendę:
$ fblogo plik.z.twoim.logo linux_logo.h
Następnie należy skopiować plik linux_logo.h do podkatalogu
include/linux, należącego do drzewa ze źródłami jądra i
skompilować je. Informacje o tym, w jaki sposób kompiluje się jądro Linux można
znaleźć w artykule Kompilacja jądra Linux.
Pamietajmy o tym, że im większy będzie nasz obrazek, to tym większe będzie
również jądro Linux. Dlatego nie jest najlepszym pomysłem używanie logo o
rozmiarze 1600x1200 piksli :)
Kilka przykładowych obrazków i wygenerowanych z nich plików nagłówkowych
(zarówno dla jądra 2.2.x jak i 2.4.x) możemy znaleźć w katalogu
/usr/doc/fblogo/examples z dokumentacją do pakietu
fblogo. Mi najbardziej do gustu przypadło małe i miłe dla
oka logo ze "spiralką", które znajduje się w podkatalogu
swirl_80x80. Oprócz rozpakowania i skopiowania pliku
linux_logo.h_22.gz konieczne było również sprawdzenie czy w pliku
drivers/video/fbcon.c znajdują się poniższe dyrektywy
preprocesora, które mówią o rozmiarze obrazka:
#define LOGO_H 80
#define LOGO_W 80
oraz zmiana w pliku include/asm/linux_logo.h dyrektywy
#define LINUX_LOGO_COLORS 214
na dyrektywę
#define LINUX_LOGO_COLORS 59
W przeciwnym przypadku kompilacja jądra nie powiedzie się. Osoby, które choć
trochę wiedzą na temat programowania w języku C na pewno się domyślą, dlaczego
tak właśnie się dzieje.
3. Podziękowania
Pragnę w tym miejscu bardzo podziękować wszystkim osobom, które przyczyniły się
do rozwoju tego artykułu. Należą do nich:
- Pioter, który poinformował mnie o istnieniu
strony domowej Gordona Frasera,
zawierającej odnośniki do wielu ciekawych paczek, którymi się on opiekuje, w
tym do pakietu fblogo, służącego do zmiany loga Linuxa we
framebufferze.
- Radosław Grzanka, który dostrzegł błądną wartość głębi koloru
bootscreena.
Copyleft
Pafcio. All rights
reversed.
Ostatnia modyfikacja: Pt 30.05.2003 17:07:23
|