ZNALEZIONO NA STRONIE (saved from url) http://www.debianusers.pl/article.php?aid=31 (15.07.2006)

 
Banner
Menu
Top 10
1.
Dystrybucje Debiana
2.
Podręcznik do Debiana...
3.
Serwery lustrzane z pakietami...
4.
TCP/IP
5.
Kompilacja jądra Linux
6.
HTB w Debianie z Neostradą+...
7.
Administracja czasem w Debianie
8.
Debian i jądro Linux
9.
Debian na nForce2 i SATA...
10.
Polonizacja Debiana "Woody"

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:


debian-bootscreen-0.2.tar.bz2

lilo-debian-splash-b0.2.tar.gz
lilo-debian-splash-w0.2.tar.gz

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 Odwrotne (C) Pafcio. All rights reversed.
Ostatnia modyfikacja: Pt 30.05.2003 17:07:23