fbsplash i fbcondecor, czyli

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
soki
Beginner
Posty: 249
Rejestracja: 27 października 2007, 21:18
Lokalizacja: Matrix

fbsplash i fbcondecor, czyli ładny Debian

Post autor: soki »

Zawsze denerwował mnie fakt braku graficznego ekranu powitalnego w moim Debianie, a jedynym rozwiązaniem była kompilacja jądra i włączenie splasha (który jest brzydki) w jego opcjach lub instalacja "splashy". Jedno i drugie rozwiązanie miało wady: kompilacja jądra nie była warta zachodu, a splashy działa jak mu się podoba. Pozostało jedynie gapienie się w tekst śmigający podczas rozruchu systemu, który mnie denerwował i nie dawał spać po nocach. Grzebiąc w internecie natrafiłem na fbsplash i fbcondecor - i stała się jasność.
Początkowo korzystałem z HowTo autorstwa bns ale napotkałem na problemy i nic nie wychodziło, gdy z pomocą pojawił się kolega spock (podziękowania), który z anielską cierpliwością wytkną moje błędy i naprowadził na dobrą drogę.

fbsplash - projekt rozpoczęty w Gentoo, bootsplash działający po stronie użytkownika (tak jak splashy) więc do jego działania nie potrzeba łatać ani kompilować jajka. Mimo iż wywodzi się od Gentoo, Debian jest oficjalnie wspierany (przynajmniej tak wynika ze strony projektu), prawdopodobnie inne dystrybucje też ale nie jestem pewien.

fbcondecor - projekt wchodzący w skład fbsplash, odpowiada za graficzne tło naszego terminala. Niestety trzeba łatać i budować jądro.

Jak to wygląda? Zerknij na stronę projektu: TU

Zatem aby skorzystać z tych dobrodziejstw musisz zdecydować się na budowę jajka ze źródeł, jednak jeśli nie masz ochoty przejdź od razu do końca gdzie opisuję sposób bez kompilacji.

Operację przeprowadziłem na Debianie Sid z jądrem 2.6.24 - nie wiem jak na innych wersjach.

Instalacja

Zaczynamy od pobrania źródeł naszego jajka ze stronki:
kernel.org:

Kod: Zaznacz cały

wget [url]http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2[/url]
następnie ściągamy najnowszą wersję łatki Device Drivers FBCONDECOR
Mamy już wszystko co potrzebne do budowy jądra, teraz instalujemy potrzebne aplikacje.
W pliku /etc/apt/sources.list dodajemy repozytorium fbsplasha:

Kod: Zaznacz cały

deb [url]ftp://ftp.berlios.de/pub/fbsplash/debian/splashutils[/url] sid contrib
następnie w konsoli jako root:

Kod: Zaznacz cały

aptitude update
aptitude install splashutils
lub:

Kod: Zaznacz cały

apt-get update
apt-get install splashutils
Czas wybrać motyw. Możemy skorzystać z motywów pobranych ze strony projektu Ttematy fbsplash (niestety motywy z logiem gentoo) lub poszukać np. na KDE-Look i znaleźć coś ciekawego jak tu:
Debian_paint
(autor: bns). Temat wypakowujemy do katalogu /etc/splash.

Gdy już mamy wszystko, zabieramy się za łatanie i budowę jądra (wszystko robiłem jako root):

Kod: Zaznacz cały

tar -jxvf linux-2.6.24.tar.bz2
cd linux-2.6.24
patch -p1 < <ścieżka do pliku patch>
konfiguracja:

Kod: Zaznacz cały

make menuconfig
i zaznaczamy/odznaczamy następujące opcje:
General Setup
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Device Drivers --> Block devices
<*> RAM disk support
(16) Default number of RAM disks
(4096) Default RAM disk size (kbytes)
(1024) Default RAM disk block size (bytes)

Device Drivers --> Input device support
<*> Event interface

Device Drivers --> Graphics support
[ ] Bootup logo

Device Drivers --> Graphics support --> Support for frame buffer devices
[*] Enable firmware EDID
[*] Enable Video Mode Handling Helpers
[ ] Enable Tile Blitting Support
[*] VESA VGA graphics support

:!: ¯eby dało się wyłączyć opcję Enable Tile Blitting Support należy odznaczyć wszystkie opcje poniżej "*** Frame buffer hardware drivers ***" poza opcją: VESA VGA graphics support :!:

Device Drivers --> Graphics support --> Console display driver support
[*] Support for the Framebuffer Console Decorations
Reszta opcji do ustawienia wedle uznania,zapisujemy nasze zmiany i...
...budujemy:

Kod: Zaznacz cały

make all
...możemy zaparzyć herbatę lub kawę ew. przejść się do sklepu - kompilacja "chwilę" trwa.
Zakładam, że kompilacja ukończyła się pomyślnie (bez błędów) więc czas zainstalować moduły i nasze nowo utworzone jajko:

Kod: Zaznacz cały

make modules_install
make install
tworzymy ram dysk naszego jajka:

Kod: Zaznacz cały

mkinitramfs -o <ścieżka_do_pliku_i_nazwa_ramdysku> <wersja_jajka_do_którego_tworzymy_ramdysk>
np. mam swoje nowe jajko 2.6.24-moje które jest w katalogu /boot:

Kod: Zaznacz cały

mkinitramfs -o /boot/moj-nowy-ramdysk 2.6.24-moje
teraz na nasz nowy ramdysk nakładamy nasz motyw splasha:

1. wersja gdy używamy już ramdysku:

Kod: Zaznacz cały

splash_geninitramfs <nazwa_tematu> -r <rozdziałka_tematu> -a <scieżka_do_ramdysku_nowego_kernela> -v
2. wersja gdy nie używaliśmy ramdysku:

Kod: Zaznacz cały

splash_geninitramfs <nazwa_tematu> -r <rozdziałka_tematu> -g <sciezka_i_nazawa_tworzonego_ramdysku> -v
Na koniec zostaje nam umieścić odpowiednie wpisy w pliku gruba menu.lst np.:

Kod: Zaznacz cały

title           Moje jajco ;D
root            (hd0,0)
kernel          /vmlinuz-2.6.24-moje root=/dev/sda5 ro vga=792 splash=silent,fadein,theme:debian_paint  quiet CONSOLE=/dev/tty1
initrd          /owyramdysk-2.6.24
savedefault
Znaczenie opcji:
vga=792 - rozdzielczość naszego motywu, w tym wypadku 1024x768
splash=silent - tryb bez wyświetlania komunikatów podczas ładowania systemu
fadein - ładny efekt "wyłaniania splasha"
theme:debian_paint - nazwa używanego motywu
quiet - nie wyświetla początkowych komunikatów ładowania kernela
CONSOLE=/dev/tty1 - której konsoli się tyczy(do końca nie wiem ale wpis wymagany).

Po wszystkich zabiegach mamy ładny ekran powitalny (pojawiający się od razu po wybraniu opcji z gruba) oraz graficzny terminal. Moim zdaniem efekty jest wart zachodu.
Sam ,,splash'' można mieć bez kompilacji kernela i nawet bez grzebania w ramdysku, wystarczy zainstalować

Kod: Zaznacz cały

splashutils
pobrać i zainstalować motyw i dodać odpowiednie wpisy w GRUB-ie. Niestety w takim wypadku splash pojawia się chwilę później ale i tak jest dobrze.

Ufff... dotarłem do końca mam nadzieję że komuś to się przyda. Sam męczyłem się dwa dni więc postanowiłem podzielić się z innymi własnymi doświadczeniami - by żyło się lepiej.
Awatar użytkownika
ShinnRa
Beginner
Posty: 457
Rejestracja: 05 marca 2007, 23:05
Lokalizacja: Gdynia

Post autor: ShinnRa »

o.O przeglądałem ich stronę i wygląda bardzo ciekawie. Dzisiaj wieczorem pobawię się tym na Lenny AMD64 z jajkiem 2.6.24. Zobaczymy co z tego wyjdzie.
bns
Posty: 74
Rejestracja: 22 stycznia 2007, 18:21
Lokalizacja: /dev/poznan

Post autor: bns »

Wypadało by podać źródło ;] http://banas.ovh.org/?p=111

Ciesze się, że komuś się przydało. Z wątpliwościami mogłeś się zgłosic do mnie (gg/jabber/mail/komentarz) tak samo z poprawkami - na tym to chyba polega :)
Postaram się je wyłapać i zaktualizuję mojego howtulca.

U siebie mógłbyś zmienić kompilacje jądra na debian way czyli:

Kod: Zaznacz cały

make all
[..]

Kod: Zaznacz cały

make modules_install
make install
[..]

Kod: Zaznacz cały

mkinitramfs -o /boot/moj-nowy-ramdysk 2.6.24-moje
[..]
...na koniec zostaje nam umieścić odpowiednie wpisy w pliku gruba menu.lst np.

Kod: Zaznacz cały

title           Moje jajco ;D
root            (hd0,0)
kernel          /vmlinuz-2.6.24-moje root=/dev/sda5 ro vga=792 splash=silent,fadein,theme:debian_paint  quiet CONSOLE=/dev/tty1
initrd          /owyramdysk-2.6.24
savedefault 
Zamienić poprostu na:

Kod: Zaznacz cały

make-kpkg kernel_image kernel_headers --revision=MojeJajco.1 --initrd
dpkg -i /usr/src/linux-image-2.x.x_MojeJajco.1_i386.deb
Chyba prościej i szybciej :)
kernel_image - tworzy paczkę z jądrem, którą łatwo zainstalować, odinstalować z systemu (tworzy wpisy w GRUBIE itd)
kernel_headers - tworzy paczke z nagłówkami potrzebnymi, do np. instalacji sterów nvidii
--initrd - tworzy initramdisk dla budowanego jajca
soki
Beginner
Posty: 249
Rejestracja: 27 października 2007, 21:18
Lokalizacja: Matrix

Post autor: soki »

bns pisze:Wypadało by podać źródło ] http://banas.ovh.org/?p=111
Nom niby tak :-P w sumie pisałem go z głowy, ale wspomniałem, że pierwszy raz robiłem z twojego HowTo :mrgreen:
Ten HowTo opisywał problem w taki sposób, w jaki robiłem. Rzeczywiście wersja z budową paczki jest w sumie szybsza 8-)

Hymm u mnie to nie działa:
bns pisze:Kod:
make-kpkg kernel_image kernel_headers --revision=MojeJajco.1 --initrd
dpkg -i /usr/src/linux-image-2.x.x_MojeJajco.1_i386.deb
bns
Posty: 74
Rejestracja: 22 stycznia 2007, 18:21
Lokalizacja: /dev/poznan

Post autor: bns »

soki pisze:Hymm u mnie to nie działa:
bns pisze:Kod:
make-kpkg kernel_image kernel_headers --revision=MojeJajco.1 --initrd
dpkg -i /usr/src/linux-image-2.x.x_MojeJajco.1_i386.deb
Musisz mieć zainstalowane poniższe pakiety:

Kod: Zaznacz cały

kernel-package,binutils, bzip2, fileutils, libc-dev, gcc, make, libncurses-dev, bin86
http://dug.net.pl/faq/faq-6-79-Kompilacja_jadra.php
soki
Beginner
Posty: 249
Rejestracja: 27 października 2007, 21:18
Lokalizacja: Matrix

Post autor: soki »

Ok działa, wystarczyło wywalić linię: --revision.
Czy przy budowie paczki i jej instalacji moduły automatycznie instalują się w /lib/modules/<wersja_jajca>, czy trzeba dodać opcję modules_image np.

Kod: Zaznacz cały

make-kpkg kernel_image kernel_headers modules_image --revision=MojeJajco.1 --initrd
?
bns
Posty: 74
Rejestracja: 22 stycznia 2007, 18:21
Lokalizacja: /dev/poznan

Post autor: bns »

soki pisze:Ok działa, wystarczyło wywalić linię: --revision.
Dziwne :)
soki pisze:Czy przy budowie paczki i jej instalacji moduły automatycznie instalują się w /lib/modules/<wersja_jajca>, czy trzeba dodać opcję modules_image?
Zainstalują się.
soki
Beginner
Posty: 249
Rejestracja: 27 października 2007, 21:18
Lokalizacja: Matrix

Post autor: soki »

bns pisze:Dziwne :)
Dokładnie :) wywalało jakiś błąd zła nazwa czy coś a w manualu jest napisane że tam starczy sama cyfra :-P
Tak czy siak paczka już się buduje :mrgreen:
GIGABYTE
Beginner
Posty: 224
Rejestracja: 13 lipca 2007, 00:17
Lokalizacja: Toruñ

Post autor: GIGABYTE »

A ja nie mogę dokończyć konfiguracji, nie ma ostatniej opcji u mnie.
http://imagebox.pl/out.php/t1102_niema.png
A jak nic nie zrobię w ostatnim kroku to są takie błędy:

Kod: Zaznacz cały

In file included from include/linux/vt_kern.h:13,
                 from arch/x86/mm/fault_32.c:20:
include/linux/console_struct.h:22:33: error: linux/console_decor.h: Nie ma takiego pliku ani katalogu
In file included from include/linux/vt_kern.h:13,
                 from arch/x86/mm/fault_32.c:20:
include/linux/console_struct.h:111: error: field ‘vc_decor’ has incomplete type
make[2]: *** [arch/x86/mm/fault_32.o] Błąd 1
make[1]: *** [arch/x86/mm] Błąd 2
make[1]: Opuszczenie katalogu `/usr/src/linux-2.6.24'
make: *** [debian/stamp-build-kernel] Błąd 2
karolp1993:/usr/src/linux-2.6.24#
Edycja:

Jeszcze raz wypakowałem i nałożyłem łatkę na jajko lecz błąd dalej jest.
soki
Beginner
Posty: 249
Rejestracja: 27 października 2007, 21:18
Lokalizacja: Matrix

Post autor: soki »

  1. Jaka łatka (wersja)?
  2. Żeby dało się wyłączyć opcję

    Kod: Zaznacz cały

    Enable Tile Blitting Support
    należy odznaczyć wszystkie opcje poniżej:

    Kod: Zaznacz cały

    *** Frame buffer hardware drivers ***
    poza opcją:

    Kod: Zaznacz cały

     VESA VGA graphics support
Zablokowany