Siempre me gusto de Slackware y Fedora, que mientras iniciaba me mostraba un simpatico Tux en la pantalla. Como usuario de Debian, no podia disfrutar de esta simpatica característica hasta que recompile el Kernel y activara el framebuffer, así que un día me decidi a hacerlo.
Cabe aclarar que el tutorial expuesto puede ser utilizado únicamente también para compilar un núcleo sin framebuffer.
Pero primero ¿qué es el framebuffer?, veamos que dice Wikipedia:
“…The Linux framebuffer (fbdev) is a graphic hardware-independent abstraction layer on a console without relying on system-specific libraries such as SVGALib or the heavy overhead of the X-Window System to show graphics.
It was originally implemented to allow the Linux kernel to emulate a text console on systems such as the Apple Macintosh that do not have a text-mode display, and was later expanded to Linux’s originally-supported IBM PC Compatible platform, where it became popular largely for the ability to show the Tux logo on boot up. More significantly, it serves as a way of displaying Unicode characters on the Linux console. Under the non-framebuffer, VGA display of the PC, comprehensive Unicode support was impossible, for VGA console fonts were limited to 512 characters…”
Lo primero, fue descargar de http://www.kernel.org/ las fuentes del último núcleo estable (para hacerlo simplemente hacemos click en la F que significa Full). En mi caso descargue la versión 2.6.27.4.
Una vez descargadas las fuentes, movemos el archivo a /usr/src
#: mv linux-2.6.27.4.tar.bz2 /usr/src
Y las descomprimimos de la sigueinte manera:
#: tar jxvf linux-2.6.27.4.tar.bz2
Bien, ya tenemos nuestro kernel descomprimido, así que ahora crearemos un enlace simbolico llamado linux, e ingresamos a el:
#: ln -s /usr/src/linux-2.6.27.4 /usr/src/linux
#: cd linux
Bien, fantástico, ahora viene lo más tedioso (pero para nada dificil), que es configurar nuestro núcleo, para ello, lo primero seria saber realmente todo lo que tenemos instalado, asi que podemos obtener información sobre nuestro hardware e ir anotandolo en algún papel boligrafo en mano. Podemos utilizar comandos tales como lspci, lsusb, dmesg, etc.
Otro tip conveniente es saber que módulos tenemos cargados asi que podriamos hacer un lsmod y sacar esta información que nos puede resultar útil en algun futuro.
Algo útil, para tener una base de nuestra configuración que podemos realizar es utilizar nuestro antiguo archivo config del kernel anterior, el cual se encuentra en el directorio /boot/
Así que vamos a el:
#: cp /boot/config-2.6.22.1 /usr/src/linux/.config
#: make oldconfig
Y la pantalla deberia devolvernos algo como esto:
scripts/kconfig/conf -o arch/x86/Kconfig
# configuration written to .config
#
Una vez que tengamos copiada la configuración del antiguo núcleo en el directorio /usr/src/linux, vamos a configurarlo, aqui tenemos tres opciones para configurar el núcleo:
- make config
- make menuconfig
- make xconfig
La primera, la usaremos unicamente si somos masoquistas y disfrutamos de responder por pantalla miles de preguntas sobre cada una de las cosas que tiene soporte el kernel de Linux.
La segunda, es una bonita interfaz ncurses, donde dividido por categorias, podremos seleccionar cada una de las opciones.
Y la tercera, para aquellos amantes de las X, otra bonita interfaz donde de manera similar a menuconfig podremos configurar todo desde la sesión gráfica.
Como utilizaremos ncurses, es necesario que este instalado, si no lo tenemos:
#: apt-get install ncurses-dev
Bien, una vez instalado ncurses, configuramoes:
#: make menuconfig
Bien, aqui tendremos muchisimas opciones y categorias, como este tutorial se basa únicamente en activar el LinuxLogo, no voy a explicar como configurar cada una de las opciones, aunque es una buena oportunidad para hacerlo, si algo sale mal, recompilamos y listo!.
Para activar LinuxLogo, deberemos ir a:
Device Drivers -> Graphics Support -> Seleccionamos Bootup Logo
Y aquí dentro activamos las tres opciones, o la que mejor se ajuste a nuestras necesidades.
Una vez seleccionado, salimos del make menuconfig con [ESC] o seleccionado Exit hasta ver en pantalla el siguiente mensaje: “Do you wish to save your new kernel configuration?” y seleccionamos Yes para guardar los cambios.
Ahora vamos a compilar e instalar todo, asi que ponemos el siguiente comando:
#: make && make install
Y nos vamos a tomar un café, a comprar cigarillos, a jugar un partidito de fútbol, etc. Ya que esto dependiendo de nuestro procesador y hardware en general va a tardar bastante.
Una vez que termine, y si se completa sin errores pasamos a hacer:
#: make modules_install
NOTA: Si algo sobre la compilación hasta aqui expuesto sale mal o falla, solamente ejecutamos en el directorio /usr/src/linux make clean y vamos devuelta.
Bien, aqui instalaremos los módulos ya compilados, y nos queda solo crear el initramfs, asi que para ello hacemos:
#: mkinitramfs -o /boot/initrd.img-2.6.27 2.6.27
Cuando se cree, actualizamos el GRUB para ello:
#: update-grub
Y de esta manera incluimos el nuevo núcleo en nuestro /boot/grub/menu.lst
Podemos asegurarnos de esto analizando este archivo y encontrando algo como esto:
title Debian GNU/Linux, kernel 2.6.27.4
root (hd0,5)
kernel /boot/vmlinuz-2.6.27.4 root=/dev/sda6 ro vga=792title Debian GNU/Linux, kernel 2.6.27.4 (single-user mode)
root (hd0,5)
kernel /boot/vmlinuz-2.6.27.4 root=/dev/sda6 ro single vga=791
Seria conveniente que tengan agregado el parametro vga=792, si usamos una resolución de 1024×768 y 32 colores en nuestra terminal, asi que sino lo tenemos, lo incorporamos, pueden ver una lista de estos valores dependiendo su resolución aquí.
Reiniciamos nuestro sistema con el comando reboot, y en el menú de GRUB, seleccionamos el nuevo kernel. Este deberia mostrarnos si todo salio bien, a un simpatico Tux en la parte superior izquierda de nuestra pantalla. Espero que les halla servido



