RAFA !!
Opciones Curso Básico de Linux

Recompilar el Kernel


En Linux el 99% de los drivers de hardware, así como algunas características especiales, vienen en un paquete llamado Kernel, que se distribuye en código fuente, y que es necesario configurar y compilar cuando se quiera cambiar o añadir alguna de estas características. El 1% restante lo forman fabricantes de Hardware que en lugar de proporcionar el código fuente del driver, dan ya el driver compilado, en forma de modulo insertable, siendo las principales desventajas de este sistema el que debes utilizar la versión de kernel para la que el fabricante creo el modulo (que nunca suele ser la ultima), y que no puedes confiar en su seguridad (ni puede ser auditada externamente). El kernel tiene un numero de versión compuesto por tres cifras, la segunda si es impar indica un kernel en desarrollo, y no utilizable en entornos de producción, si es par, es un kernel estable, la ultima indica el numero de revisión, y suele actualizarse cada poco tiempo, con soluciones a fallos y nuevos drivers. Cada cierto tiempo la versión en desarrollo se convierte en estable, añadiendo a Linux nuevas características.

En el momento de escribir esto acaba de salir la versión 2.6.0, la primera estable desde hace tiempo, con nuevas características, aun así la versión 2.4.22, anterior estable, aun sufrirá alguna revisión para asegurar la estabilidad en aquellos sistemas que no quieran o no puedan usar la 2.6. Debido a que cada vez son mas y mas las características que tiene el kernel, muchas de ellas están separadas en módulos, piezas de kernel que solo se utilizan cuando son necesarias, y permiten reducir el tamaño general del kernel y hacerlo mas manejable, durante la configuración del kernel deberemos decidir que partes del kernel estarán disponibles como módulos, cuales de manera permanente y cuales no estarán disponibles.

Así p.e. si no tenemos un sistema bluetooth, podemos configurarlo como no disponible. El sistema de Acceso a CD podemos ponerlo como modulo, si el CD no lo utilizamos constantemente, en cambio el soporte para Discos Duros deberemos tenerlo disponible constantemente, pues de lo contrario no podremos usar el S.O.
Como durante el proceso hay que compilar el kernel, es necesario tener instalado el compilador de C, así como sus herramientas auxiliares, y las librerías de TK, o a partir de la versión 2.6 QT o GTK si quieres configurarlo de manera grafica.
El kernel puede ser bajado desde www.kernel.org donde encontraremos una lista de mirrors, esto es sitios iguales, que tienen el paquete, ya que es un archivo muy grande, con tamaños próximos a los 30 Mb, también están disponibles parches, para en el caso de tener la versión anterior del kernel, ahorrar tiempo de descargar.

El kernel debe ser descomprimido en /usr/src.

Se ejecuta make clean para asegurar una compilación limpia, o si quieres empezar de cero make mrproper.
Se ejecuta el programa de configuración make xconfig (modo grafico), make gtkconfig (modo gnome solo a partir de 2.6), make qtconfig (modo KDE solo a partir de 2.6), make menuconfig (modo texto). Una vez echo esto se procede a compilar he instalar. make dep (solo en versiones previas a la 2.6, o si cambias opciones y recompilas) make bzImage; make modules; make modules-install

Tras lo cual queda copiar el "kernel" un archivo llamado vmlinuz desde /usr/src/Linux/arch/i386/boot/bzImage a /boot o al lugar donde le tengamos indicado a LILO que busque el kernel, ejecutamos LILO para actualizar los cambios y reiniciamos. Opcionalmente puedes hacer make install, que realizara las ultimas opciones por ti.