Lange Zeit war das Anzeigen von Bildern oder Videofilmen der grafischen Oberfläche X11 vorbehalten - wer sich Bilder anschauen wollte, kam um die Installation und (oft aufwendige) Konfiguration von XFree86 nicht herum. Mit dem Linux Kernel 2.2 hielt dann das Framebuffer Device Einzug in die Linux-Welt, und es wurde möglich, Bilder und sogar Videofilme auf der Konsole ohne Qualitätsverlust anzuzeigen. Bevor wir uns mit dem eigentlichen Framebuffer Device genauer beschäftigen, möchte ich zum besseren Verständnis noch darauf hinweisen, dass die eigentliche Textkonsole, die in jedem Kernel standardmäßig aktiviert ist, und der Framebuffer im Kernel streng voneinander getrennt sind. Beide laufen unabhängig.
Die Technik
Das Framebuffer Device repräsentiert im System den Speicher der Grafikkarte und übernimmt die Koordination mit ihr. Es stellt gleichzeitig eine einheitliche Schnittstelle im /dev-Verzeichnis zur Verfügung, über die die verschiedenen Programme auf den Speicher der Grafikkarte indirekt zugreifen können. Die Programme, die auf der Konsole Bilder und Videofilme darstellen, kommunizieren also nicht direkt mit der Karte, sondern benutzen das Framebuffer Device als "Dolmetscher" zum System. Die dafür erforderlichen Schnittstellen werden über Gerätedateien in /dev angesprochen. Das erste Framebuffer Device im System verwendet /dev/fb0, das zweite /dev/fb1 usw.
Die Konfiguration
Viele große Distributoren wie SuSE, Red Hat oder Mandrake unterstützen die Verwendung des Framebuffers bereits in ihren Standard-Kernels. Hierbei handelt es sich jedoch meist nur um den generischen VesaFB. Dieser Framebuffer-Treiber soll theoretisch mit allen Grafikkarten funktionieren, die mit dem Vesa 2.0 Standard kompatibel sind - die Praxis sieht leider anders aus: Bei manchen exotischen Grafik-Chipsätzen streicht der VesaFB die Segel. Außerdem besitzt VesaFB keinerlei Optimierungen und kann höchstens mit 16 MB Videospeicher umgehen. Das heißt nicht, dass Grafikkarten mit größerem Videospeicher nicht funktionieren. Der VesaFB erzielt hier jedoch oft nur schlechte Resultate, die den eigentlichen Möglichkeiten des Framebuffer Devices nicht gerecht werden.
Um den Framebuffer nutzen zu können, muss er im Kernel aktivieren werden. Laden Sie sich dazu zuerst die Quellen des aktuellen Linux-Kernels 2.4.18 ([5]) herunter. Konfigurieren und kompilieren Sie den Kernel danach so, wie beispielsweise im LinuxUser 03/2001 auf Seite 86 beschrieben. Um den Framebuffer im Kernel zu aktivieren, müssen die folgenden Dinge, unabhängig von Ihrer Grafikkarte, fest in den Kernel (nicht etwa als Modul) einkompiliert werden:
- "Prompt for development and/or incomplete code/drivers" im Menüpunkt "Code maturity level options"
- "Video mode selection support" im Menüpunkt "Console drivers"
- "Support for frame buffer devices (EXPERIMENTAL)" im Menüpunkt "Console drivers/Frame-buffer support"
Aktivieren Sie danach im Menüpunkt "Console drivers/Frame-buffer support" den passenden Framebuffer-Treiber für Ihren Grafikkarten-Chipsatz. Die meisten Einträge erklären sich dabei von selbst, ansonsten kann bei Ratlosigkeit ein Klick auf die "Help" Buttons Klarheit schaffen. Wird Ihr Grafikkarten-Chipsatz nicht ausdrücklich in der Liste oder in den Hilfetexten zum Treiber erwähnt, ist davon auszugehen, dass es für diesen Chipsatz noch keinen speziellen FB-Treiber gibt. In dem Fall wählen Sie den Eintrag "VESA VGA graphics console" für den VesaFB aus. Nach dieser Konfiguration können Sie den Kernel kompilieren und installieren.



