Bufor ramki pod FreeBSD

(framebuffer)

linia

 

Zamiast wstępu.


Tekst ten w żaden sposób nie jest czymś na wzór HOWTO. Powstał on na potrzeby autora i opisuje w jaki sposób autor uzyskał wyższą rozdzielczość na swojej maszynie (i nie tylko), na przykładzie FreeBSD 4.8-S, posiadając karty graficzne: RivaTNT2 (jedna maszyna), GeForce (druga maszyna). Dlatego też (starym zwyczajem), autor nie bierze na siebie żadnej odpowiedzialności za ewentuale problemy wynikające z przeczytania niniejszego txt..;>

Należy także dodać, że autor nie przypisuje sobie do niego żadnych praw autorskich (i podobnych), gdyż powstał on na podstawie trzydziestominutowego goglania. Jest to naturalna kolej rzeczy - nie wiesz czegoś to szukasz..;]

 

Co to i na co?

Bufor ramki znany także jako framebuffer pozwala zwiększyć rozdzielczość konsoli ze standardowej 640x480 na większą. Zaletą tego rozwiązania jest "zaoszczędzenie" miejsca na monitorze dzięki czemu widzimy znacznie więcej niż przy trybie 80 na 25 znaków (ma to niewątpliwie swoje zalety - choćby klikanie pod irssi ze znajomymi). Należy dodać, iż sposób wkompilowania go w jądro nie nastręcza większych problemów, a ilość kart graficznych potrafiących obsłużyć bufor ramki jest bardzo duża co sprawia, że tylko nieliczni - mający starsze karty - będą mieć problemy.

 

Sam przepis...

Do osiągnięcia zamierzonego celu musimy poddać edycji plik naszego jądra po czym je ponownie zainstalować. Samego procesu kompilacji jądra nie będę tu opisywał, gdyż jest tego dużo w Sieci. Jeden z wielu opisów znajduje się pod tym adresem. Tak jak powyżej, edytujemy plik konfiguracyjny jądra dodając następujące wpisy:

junior# vi BARTEK
options VGA_WIDTH90
options VESA
options SC_PIXEL_MODE

Jeśli jesteś ciekawy za co poszczególne opcje odpowiadają częściową odpowiedź znajdziesz w pliku o nazwie LINT. Zapisujemy zedytowany plik i przystępujemy do kompilacji. Nie powinno to zająć zbyt wiele czasu (w zależności jaką maszyną dysponujemy). Po zakończonym procesie instalacji nowego kernela robimy shutdown -r now, czekamy aż maszyna "powstanie", logujemy się i sprawdzamy czy to co robiliśmy powyżej faktycznie działa. Wykonujemy to pisząc z linii komend:

junior# vidcontrol -c destructive -g 100x37 VESA_800x600

Jeśli wszystko poszło po myśli nie pozostaje nam nic innego jak zainicjować obslugiwanie framebuffer-a na wszystkich dostępnych konsolach podczas startu systemu. W /etc/rc.conf dodajemy wpis:

allscreen_flags="-c destructive -g 100x37 VESA_800x600"

i cieszymy się dobrodziejstwami bufora ramki.

 

Jeśli coś poszło nie tak...

Jak pisałem wyżej - fb zapodałem sobie na dwóch komputerach mających w miarę nowe karty graficzne: NVIDIA RIVA TNT2 Model 64 i GeForce4 Ti 4200. Za każdym razem cały proces opisywany powyżej przebiegał szybko i bezboleśnie, a kończył się pełnym sukcesem. Kiedyś próbowałem zrobić to pod grafą ATI MACH 64 - bez rezultatów. W ostatnim czasie będąc u znajomego chcąc zapodać mu przyjemnego spash screen-a także poniosłem porażkę - jego grafa ATI - powiedziała nie.

 
linia
$Id: framebuffer.html,v 1.2 2003/07/29 12:52:38 uid Exp $