11:39
Framebuffer w Linuksie
Podkreśliłem tutaj specjalnie Linuksa, gdyż nie wiem jak sprawa się ma w innych systemach unix'owych, ale podejrzewam, że też mogą być wyposażone w urządzenia tego typu. W przypadku innych systemów niż Linux poniższa metoda nie zadziała, gdyż wymagana jest tutaj modyfikacja jądra Linuksa.
Do najpopularniejszych zastosowań framebuffer używany jest by zmienić rozdzielczość konsoli systemowej. Dzięki temu użytkownik otrzymuje większą wygodę w poruszaniu się po systemie właśnie poprzez konsolę. Framebuffer wykorzystywany również może być do przeglądania plików graficznych, pdf'ów, czy klipów wideo.
Wybór sterownika
Aby przygotować system do obsługi framebuffer należy odpowiednio skompilować jądro. Przedstawię tutaj sposób kompilacji jądra ze sterownikiem vesafb-tng.
W pierwszej kolejności należy pobrać patch'a do jądra, który umożliwi obsługę tego steronika. Vesafb-tng jest projektem rozwijanym przez polskiego dewelopera Gentoo Linux - Michała Januszewskiego. Dzięki temu sterownikowi można uzyskać w konsoli rozdzielczości niestandardowe (m.in. dla monitorów panoramicznych), których domyślny sterownik vesafb nie obsługuje.
Plik można pobrać ze strony: http://dev.gentoo.org/~spock/projects/vesafb-tng/ nazwa pliku: vesafb-tng-***.patch. Aby vesafb-tng działała poprawnie należy pobrać patch odpowiedni do wersji skompilowanego w systemie jądra.
Przygotowanie jądra
Po pobraniu pliku przechodzimy do miejsca przechowywania źródeł jądra i aktualizujemy je patchem wydając polecenie:
cat scieżka/do/vesafb-tng.patch | patch -p1
Aby w kompilować w jądro sterownik wpisujemy:
make menuconfig
i przechodzimy do Device Drivers > Graphics support. Jeśli nie mamy jeszcze w kompilowanego w jądro obsługi framebuffer zaznaczamy Support for frame buffer devices, a następnie VESA VGA graphics support i wybieramy sterownik vesafb-tng, zmieniając przy okazji rozdzielczość konsoli:

po czym wychodzimy i kompilujemy jądro poleceniem make. Skompilowanym jądrem zastępujemy aktualne i uruchamiamy ponownie komputer.
Poniżej przykład z obsługa framebuffer:

Pliki graficzne
Jednym z programów umożliwiających przeglądanie plików graficznych jest fbi. Znaleźć go można pod adresem: http://linux.bytesex.org/fbida/. Po skompilowaniu programu i wszystkich wymaganych bibliotek będzie można przeglądać grafiki m.in. w formatach jpg, gif, png. Do działania programu wymagana jest obsługa framebuffer, w przeciwnym wypadku nic z tego nie będzie. Poniżej przykładowe zdjęcie wyświetlane w konsoli systemowej.

Pliki wideo
Jeżeli można wyświetlić w konsoli pliki graficzne, to można również wyświetlić pliki wideo. Jednym z programów, który to umożliwia jest znany chyba wszystkim użytkownikom linuksa MPlayer. Aby była możliwość odtwarzania plików wideo w konsoli należy skompilować program z obsługą directfb. Uruchomienie pliku video odbywa sie standardowo: mplayer plik.avi Poniżej przykład jak działa obsługa wideo pod konsolą linuksa:

Na koniec dołączam jeszcze kilka stron, gdzie można znaleźć informacjie o obsłudze framebuffer:
- http://ks.lublin.pl/art.php?id=014
- http://home.elka.pw.edu.pl/~ljarocho/fb.html
- http://tldp.org/HOWTO/Framebuffer-HOWTO.html

12:23
BASH - Znak zachęty Powłoki
BASH należy do jednych z najpopularniejszych powłok w systemach UNIX'owych. Zna ją prawdopodobnie każdy użytkownik Linuksa. Nazwa BASH pochodzi od Bourne-Again SHell i stanowi część projektu GNU. Pierwsze wersje powłoki zostały napisane przez Brian'a Fox'a w 1987.
Znak zachęty
Znak zachęty może być pojedynczym znakiem, lub ich ciągiem. Informuje on o gotowości przyjmowania poleceń przez system operacyjny. W zależności od używanej terminala, oraz od jego konfiguracji może on zawierać różne informacje. Najczęściej wyświetla ścieżkę, bądź nazwę aktualnego katalogu. Przechowywane mogą być w nim również inne informacje, jak nazwa komputera, domeny, zalogowanego użytkownika, aktualny czas i datę, czy po prostu nazwę używanej powłoki.
Zachęta w powłoce BASH
W powłoce BASH standardowy znak zachęty przechowywany jest w zmiennej PS1. Zaraz po zalogowaniu się widzimy już jaką przyjął wartość. Widzimy jednak tylko znaki drukowane, wypisane przez powłokę na podstawie danych zawartych w zmiennej. Aby zobaczyć jak zbudowany jest znak zachęty, wystarczy wypisać zmienną PS1:
echo $PS1
lub
set | grep PS1
Standardowo, zaraz po skompilowaniu powłoki BASH jako znak zachęty będzie widniała informacja o nazwie używanej powłoki, oraz jej wersji (zawartość zmiennej PS1 to s-v$):
bash-3.1$
Aby zmienić znak zachęty wystarczy przypisać do zmiennej PS1 inną zawartość:
PS1="Nowy znak zachety> "
Powłoka BASH posiada również wtórny znak zachęty. Wyświetlany jest gdy do wykonania polecenia potrzebne są dodatkowe dane z wejścia w celu uzupełnienia podstawowej komendy. Wtórny znak zachęty przechowywany jest w zmiennej PS2.
Znaki specjalne
Wewnątrz zmiennej znaku zachęty mogą znajdować się znaki specjalne. Wszystkie znaki specjalne poprzedzone są symbolem ''.
a- znak dzwonka ASCII (07)d- data w formacie 'DzienTygodnia Miesiąc Dzień' np: "Tue May 26"e- znak escape ASCII (033)h- nazwa hosta do pierwszej kropkiH- nazwa hostaj- liczba zadań aktualnie obsługiwanych przez powłokęl- główna część nazwy urządzenia powłokin- znak nowej liniir- powrót karetkis- nazwa powłokit- aktualny czas w formacie 24h GG:MM:SST- aktualny czas w formacie 12h GG:MM:SS@- aktualny czas w formacie 12h GG:MMA- aktualny czas w formacie 24h GG:MMu- nazwa aktualnie zalogowanego użytkownikav- wersja powłoki BASH (np. 3.1)V- wersja powłoki BASH (np. 3.1.17)w- ścieżka aktualnego kataloguW- nazwa aktualnego katalogu!- numer polecenia w historii BASH#- numer polecenia$- jeżeli UID jest 0 wyświetla # w przeciwnym wypadku $nnn- znak odpowiadający szesnastkowej liczbie nnn- - symbol ''
[- początek sekwencji znaków niedrukowalnych]- koniec sekwencji znaków niedrukowalnych
Przypisywanie znaku zachęty
Wspomniałem wcześniej, jak można przypisać do zmiennej PS1 ciąg znaków, aby uzyskać nowy znak zachęty. Wpisane w ten sposób ciągi znaków do zmiennej będą pamiętane tylko w obrębie aktualnie działającego terminala. Aby zmiany były pamiętane dla każdego uruchomionego terminala zaraz po zalogowaniu się, należy ustawić tą zmienną w pliku .bashrc znajdującego się w katalogu domowym każdego użytkownika. W przypadku braku pliku należy go utworzyć.
Kolorowy znak zachęty
Powłoka BASH umożliwia nadawanie pewnym obszarom znaku zachęty pewnych kolorów. Wybór kolorów nie jest duży (zaledwie 16), ale zastosowanie dobrze dobranych kolorów zwiększy czytelność informacji znajdujących się w znaku zachęty.
- \[\033[0m\] - brak formatowania
- \[\033[1;30m\] - szary
- \[\033[0;30m\] - czarny
- \[\033[0;31m\] - czerwony
- \[\033[1;31m\] - jasny czerwony
- \[\033[0;32m\] - zielony
- \[\033[1;32m\] - jasny zielony
- \[\033[0;33m\] - brązowy
- \[\033[1;33m\] - żółty
- \[\033[0;34m\] - niebieski
- \[\033[1;34m\] - jasny niebieski
- \[\033[0;35m\] - fioletowy
- \[\033[1;35m\] - purpurowy
- \[\033[0;36m\] - cyjan
- \[\033[1;36m\] - morski
- \[\033[0;37m\] - siwy
- \[\033[1;37m\] - biały
Kolory, gdzie przed średnikiem znajduje się jedynka, przez terminale obsługujące obsługujące czcionkę pogrubioną będą wyświetlane jako pogrubione. W tym wypadku niektóre terminale mogą interpretować te kolory nie jako rozjaśnione/przyciemnione, a po prostu pogrubione.
Przykładowe formatowania znaku zachęty:
PS1="\u@\h \w \$ "PS1="\u:\W \$ "PS1="\[\033[1;32m\][\t] \[\033[0;36m\]\w \$ \[\033[0m\] "PS1="\[\033[1;36m\][\A \d] \[\033[0;37m\]\W \$ \[\033[0m\] "PS1="\[\033[1;34m\][\u] \[\033[0;35m\]\w \$ \[\033[0m\] "PS1="\[\033[1;30m\]\u\[\033[1;31m\](\w)\$ \[\033[0m\] "PS1="\[\033[0;33m\]\!: \[\033[0m\] "PS1="\[\033[0;36m\]\w \[\033[0;37m\]\#\$ \[\033[0m\] "PS1="\[\033[0;31m\]\t -\[\033[0;33m\] \w \[\033[0;37m\]\$ \[\033[0m\] "PS1="\[\033[0;37m\](\#)\[\033[01;33m\]\u@\h\[\033[0;36m\] \w \$\[\033[00m\] "
Wyniki:


English
Nazywam się Tomasz Chudyk i witam na mojej stronie. Z zawodu jestem programistą. Moje zainteresowania krążą głównie wokół open-source, Linuksa i technologi internetowych.
