Podczas uruchamiania jądra, na ekranie (w buforze ramki) może zostać wyświetlony „sympatyczny pingwin”. Logo włączamy podczas konfiguracji jądra, w sekcji:

Device Drivers  --->
  Graphics support  --->
    [*] Bootup logo  --->
      [ ]   Standard black and white Linux logo
      [ ]   Standard 16-color Linux logo
      [*]   Standard 224-color Linux logo

W zależności od architektury zostaną wyświetlone różne pingwiny, wariant (ilość kolorów) zależy od możliwości bufora ramki, a ilość obrazków odpowiada ilości rdzeni/procesorów.

Podmiana pingwina na logotyp firmy, pozwala niewielkim kosztem przygotować urządzenie do prezentacji. Nie trzeba w tym celu modyfikować ani jednej linii kodu.

Załóżmy, że dysponujemy ekranem o rozdzielczości 640×480 pikseli (taki sam jest emulowany przez QEMU).

Edycja pliku

Plik z wyświetlanym logiem to:

drivers/video/logo/logo_linux_clut224.ppm

Jest to plik graficzny w formacie PPM (ASCII). Taki format może zostać zapisany w programie GIMP. Przygotujemy plik z obazkiem, który będzie o 16 pikseli niższy niż wysokość ekranu, co pozwoli wyświetlać linie statusu (pasek postępu lub informacje o błędach).

Nowy plik z logiem ma rozmiar 640×646 piksele.

Aby mógł zostać prawidłowo wyświetlony, musi składać się z co najwyżej 224 różnych kolorów.

Należy przekształcić go na odpowiedni format. Użycie mniejszej ilości kolorów spowoduje, że plik będzie zajmował mniej miejsca.

Plik powinien zostać zapisany w formacie PPM.

W tym przypadku plik z obrazkiem dla architektury ARM.

Należy wybrać format tekstowy (ASCII) - tylko taki jest rozumiany przez jądro.

Korekta kolorów

Po uruchomieniu systemu w emulatorze, okazuje się, że kolory nie są dobrze odwzorowane. Zamienione zostały dane koloru czerwonego i niebieskiego (z RGB zrobiło się BGR). Konieczne jest odwrócenie kolorów.

Problem ten występuje tylko w niektórych przypadkach (tutaj ARM/versatile).

Plik w formacie PPM składa się z napisów ASCII. Kilka pierwszych linii pliku zapisanego przez program GIMP wygląda następująco:

P3
# CREATOR: GIMP PNM Filter Version 1.1
640 464
255
73
79
117
...
  • P3 - to określenie formatu PPM (występuje zawsze).
  • Kolejna linia to komentarz.
  • Linia trzecia zawiera rozmiary obrazka: szerokość, wysokość.
  • Czwarta linia zawiera liczbę 255.
  • W kolejnych liniach, aż do końca pliku znajdują się liczby 0-255 określające kolor odpowiednich pikseli. Jeden punkt określany jest przez trzy kolejne liczby reprezentujące wartości kolorów: R G B. Liczby mogą być zapisane w oddzielnych liniach (tak jest w pliku wygenerowanym przez GIMP) lub po kilka w jednej linii.

Ponieważ jest to plik tekstowy, kolory można zamienić stosunkowo prostym skryptem AWK:

color_swap.awk
#!/usr/bin/awk -f
#Przed rozpoczęciem przetwarzania wczytaj pierwsze 4 linie i wypisz je bez zmian
BEGIN {
  getline
  print
  getline
  print
  getline
  print
  getline
  print
}
#Dla każdej (kolejnej) lini - wczytaj 3 linie, a następnie wypisz je w odwrotnej kolejności
{
  red = $0
  getline
  green = $0
  getline
  blue = $0
 
  print blue
  print green
  print red
}

Skrypt musi zostać użyty w następujący sposób:

./color_swap.awk < drivers/video/logo/logo_linux_clut224.ppm > tmp.ppm
mv tmp.ppm drivers/video/logo/logo_linux_clut224.ppm

Po zbudowaniu systemu ze zmodyfikowanym logiem, jest ono wyświetlane poprawnie.

ostatnio zmienione: 2011/06/28 00:26