decoration Tag "framebuffer" decoration

decoration
decoration
25.05 2009
16:33

Framebuffer na grafice Intela

Od jądra w wersji 2.6.29 wprowadzono obsługę KMS (Kernel Mode Setting). Pojawienie się tej opcji pozwala na bardzo proste (wręcz automatyczne) ustawienie framebuffera w konsoli Linuksa – samą decyzje o rozdzielczości w jakiej ma działać system podejmie jądro.



Wcześniej aby uzyskać oczekiwaną rozdzielczość w konsoli dla kart graficznych Intela, konieczne było użycie sterownika vesa, lub i810fb. Jeśli chodzi o ten drugi, nie jestem do końca pewien, czy działa – u mnie nigdy mi się nie udało uzyskać w ten sposób framebuffera. Nowe rozwiązanie nie wymaga od nas nawet przekazania dodatkowego argumentu dla jądra (przekazywanego np. przez GRUBa) przy starcie systemu. Wystarczy odpowiednio skompilować jądro:

 

Konfiguracja kernela

Device Drivers => Graphics support => Direct Rendering Manager


Ważne jest aby wkompilować Enable modesetting on intel by default. Można jeszcze się upewnić czy jest dla jądra wybrana obsługa framebuffer. Dobrze jest się również upewnić, czy nie mamy aktywnego innego sterownika FB, by przypadkiem nam nie przechwycił konfiguracji.

Problem jaki się teraz może pojawić, to niekompatybilny serwer Xów. Jeżeli posiadamy wersję starszą niż 1.6 – nie uda nam się odpalić Xów. Dlatego wymagana jest również aktualizacja do xorg-server-1.6.

Po przekompilowaniu jądra i aktualizacji serwera Xorg po prostu uruchamiamy ponownie komputer, bez potrzeby edycji wpisów w boot loaderze.



16.02 2007
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:



Copyleft (C) tom000.info 2004-2010. Some rights reserved.