Terminal Console Video Graphics – What is the Kernel Frame Buffer?

consoleframebuffergraphicsterminalvideo

I was reading the "mplayer" man pages trying to play video using just the console, (I don't have or don't want to install X11). It mentions that I can use the kernel frame buffer device which is fbdev2. It works, but I don't know much about what the "kernel frame buffer" is. Can I configure it? Are there limitations to its use? Does it use the video card to render graphics?
Also, (I have integrated Intel graphics card on my laptop), are there alternatives or better solutions to play video from console that is not the kernel frame buffer?

Best Answer

The standard spelling is “framebuffer”, without space. In Linux kernel, fbdev is an (optional) graphic abstraction layer for video hardware (a.k.a. video card). Different video hardware needs different drivers (that may be loaded as kernel modules), but user-space software, such as mplayer, uses unified API writing to it. The word framebuffer itself means a part of video memory where a video frame is stored.

Yes, it is configurable. First, you can choose which driver to load (or build into the kernel). Second, there is fbset(8) that changes modes and other settings, as well as some higher-level utilities. Limitations? When you use a framebuffer driver, you can’t enjoy hardware (e.g. VGA-compatible) text mode and suffer some overhead – that’s the most serious one Ī̲ know. See http://tldp.org/HOWTO/Framebuffer-HOWTO/ for more details.

There is a plenty of video output drivers for mplayer (besides framebuffer and X11), but Ī̲ don’t know which are better and in which sense.