gentoo linux, java, software libre y otras hierbas
ene, 30 2009 - 3:32 pm

Activando Framebuffer en Linux

Nota: de nuevo un tutorial raro, que tal vez a pocos le importa. Lo siento.

Esta receta la aprendí configurando mi Gentoo pero bien podría aplicarse a cualquier otra distribución. La idea es activar el soporte para Framebuffer, el cual permite al kernel mostrar gráficos en consolas de texto. Además sirve para otras cosas, como ejecutar servidores X sin aceleración o reproducir videos en la consola (en ASCII, por supuesto).

El tutorial tiene además un valor didáctico que me gusta, ya que vamos a tocar cosas en el Kernel, algo bastante interesante.

Ventajas

Las ventajas de hacer esto, y por lo que yo lo hice, son:

  • Te proporciona una muy bonita consola (de hasta 128 colores + más de 48 líneas con 1280×800, al menos en mi laptop) cuando estás trabajando sobre las TTY (sin entornos gráficos).
  • Te pone el logo de Linux mientras carga el sistema, una maravilla. Los que usen usplash se reirán de mi, pero bueno, prefiero el pingüino y saber que está pasando cuando mi sistema inicia.

Compilando el kernel con las opciones adecuadas

Cuando se trabaja con Gentoo, es muy común tener el código fuente del kernel de Linux descargado puesto que, en el momento de la instalación, se compila manualmente. En otras distros, lo más probable es que no lo tengas. En cualquier caso, la mejor manera de disponer de las fuentes de Linux es: en Gentoo ejecutar el comando emerge gentoo-sources; en otras distros, descargar las fuentes directamente de la página oficial, copiar y descomprimir el archivo en la carpeta /usr/src.

En este punto, he de suponer que tienes algo de experiencia con el kernel. Sino, estás de suerte porque me gusta explicar todo muy bien. Lo primero es abrir una consola y situarnos en el directorio donde tengamos las fuentes de Linux, y posteriormente ejecutamos la herramienta de configuración del Kernel:

# cd /usr/src/linux
# make menuconfig

Una vez hecho esto, debemos activar algunas opciones (dentro de Device Drivers):

(*) Graphics Support
    (*) Enable firmware EDID
    (*) Support for Frame buffer devices
        (*) VESA VGA graphics support
    (*) Console display support
        (*) Video mode selection support
        (*) Frame buffer console support
    (*) Logo Configuration
        (*) Bootup logo

Ten en cuenta que deben estar compilados dentro del kernel (*) y no como módulos (M). Una vez que hayamos configurado correctamente nuestro kernel, lo compilamos y copiamos al directorio /boot, por ejemplo:

# make <- compilamos el kernel
# cp arch/x86/boot/bzImage /boor/el-nombre-de-tu-kernel <- copiamos la imagen del kernel al sector del boot

Identificar qué resoluciones podemos usar con Framebuffer

Para identificar qué resolución es la más adecuada para nuestro equipo, lo más sencillo es instalar la herramienta hwinfo (si no la tienes ya instalada):

En Ubuntu/Debian:

$ sudo aptitude install hwinfo

En Gentoo:

# emerge hwinfo

En Arch:

# pacman -S hwinfo

En Fedora:

$ sudo yum install hwinfo

Una vez instalado, ejecutas el comando:

# hwinfo –framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.447]
Unique ID: rdCR.BCD4SQrtey2
Hardware Class: framebuffer
Model: “NVIDIA G86 Board – e416h01c”
Vendor: “NVIDIA Corporation”
Device: “G86 Board – e416h01c”
SubVendor: “NVIDIA”
SubDevice:
Revision: “Chip Rev”
Memory Size: 14 MB
Memory Range: 0xcd000000-0xcddfffff (rw)
Mode 0×0300: 640×400 (+640), 8 bits
Mode 0×0361: 1280×800 (+5120), 24 bits
[YO SELECCIONÉ ESTE]
Mode 0x037d: 1920×1200 (+7680), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown

Lo que tienes que hacer es identificar el valor del Mode; en mi caso es 0×0361

Configurando el GRUB

Una vez identificado el valor del Mode, no queda más que pasarle a nuestro kernel las opciones adecuadas. Abrimos con nuestro editor de texto favorito el archivo /boot/grub/menu.lst, y añadimos el parámetro vga=modo al final de la línea del kernel. Por ejemplo, en mi caso luce así:

title Gentoo
root (hd0,9)
kernel /boot/kernel root=/dev/sda10 vga=0x0361

¡Reiniciamos, y listo!

9 Comentarios | deja el tuyo

9 Comentarios en “Activando Framebuffer en Linux”

  1. soullost dice:

    Tambien puedes ver videos usando mplayer con el framebuffer :D .

    Saludos.
    PD: Sorry por no acentuar, no puedo.

  2. Cristian dice:

    Ummm, todo un honor que comentes aquí. Recuerdo que eras uno de mis ídolos (no exagero) cuando comencé a interesarme por Linux; tiempos aquellos en los foros de elhacker.net.

    Un saludo!

  3. Cristian dice:

    Activando Framebuffer y configurar vesafb | http://tinyurl.com/df5z89

  4. soullost dice:

    Lo bueno que era, ahora seguramente, te ríes de mi :) . Me paso seguido por tu blog, aunque no comento (muy bueno, por cierto)..

  5. Pau dice:

    Yo tengo Fedora y el paquete hwinfo no se encuentra en los repositorios. Supongo que habrá alguno equivalente…

  6. Cristian dice:

    Hola Pau, existe un tarball que puedes usar:

    http://aur.archlinux.org/packages/hwinfo/hwinfo/

    @soullost, no creo, esas cosas no se olvidan.

    Un saludo.

  7. Juan Martinez dice:

    Buenas amigo, consegui tu pagina por casualidad y veo que usas mucho el gentoo, yo he usado Fedora 7 y Ubuntu la ultima, pero me gustaria probar esa distro, podrias recomendarme alguna pagina para iniciarme en esa distro?, osea instalación, diferencia con otras distro, repositorios, etc, etc.
    Gracias y sigue asi muy interesantes tus post…

    • Cristian dice:

      Hola Juan,

      Qué bueno que estés interesado en extender tus conocimientos, Gentoo es una distro maravillosa y aprenderás bastante. En cuanto a documentación, no existe sitio más completo que la propia página de Gentoo (www.gentoo.org). Allí encontrarás toda clase de información, incluyendo por supuesto los pasos para la instalación (en español).

      Un saludo y mucha suerte.

  8. Emmanuel dice:

    me encanta usar la consola, y es genial tener este tipo de soporte en español, casi todos los que sigo estan en english y comentar para hacer preguntas se torna un poco complicado.

    una pregunta, ¿como se puedo identificar la resolucion de la pantalla de mi notebook desde OpenSUSE 11.3?

    ¿ como instalo hwinfo en esta distro? #zypper install hwinfo ????

    desde ya muchas gracias.

¡Déjanos tu comentario!