¿Por qué recompilar el kernel?

Hay muchas razones para recompilar el kernel algunas de las cuales son:

Paso cero: Pasos previos

Antes de empezar el proceso de compilación debemos instalar algunos paquetes y obtener ciertos permisos, aunque esto último no es estrictamente necesario pero facilita el trabajo, es más podriamos no preocuparnos por esto y hacerlo todo como super usuario (root) pero no es recomendado.

Primero instale los paquetes debhelper, modutils, kernel-package y libncurses5-dev

 # apt-get install debhelper modutils kernel-package libncurses5-dev

Cuando se instala el paquete que contiene el código fuente del kernel, este es copiado comprimido en el directorio /usr/src/. Este directorio pertenece a root y esta en el grupo src, por defecto el grupo tiene permisos de lectura-escritura y es por esto que es necesario añadir al usuario con el que vamos a realizar la compilación al grupo src.

 # adduser usuario src

Como ya se dijo en el primer párrafo de esta sección esto no es estrictamente necesario, incluso podriamos copiar los fuentes comprimidos a nuestro home y desde compilar desde ese lugar, con la diferencia de que algunas opciones de las utilidades de debian para compilación de kernels se usan con algunos parámetros de más.

Nota <!> : cuando los comandos indicados sean precedidos por # significa que es una tarea que se debe realizar como root y si estan precedidos por $ es porque se recomienda ejecutar los comandos como un usuario normal del sistema.

Primer paso: Obtener los fuentes

Lo primero que hay que hacer es obtener los fuentes del kernel, hay, al menos dos formas de hacerlo: como paquete Debian o del sitio oficial kernel.org.

La primera forma tiene la ventaja que se instala por el tradicional apt-get, y además tiene la garantía de calidad del proyecto Debian. Pero si usted es osado y amante de lo nuevo preferirá tener el último kernel y para esto se usa la segunda forma. Si usted es de estos últimos pase directamente a el título Obtener los fuentes de kernel.org.

Obtener los fuentes como paquete Debian

Los paquetes que contienen los fuentes del kernel en debian se nombran de dos formas dependiendo de las versiones, si desea usar los fuentes del kernel de las versiones 2.2.x o 2.4.x los paquetes tendran un nombre de la forma kernel-source-2.x.x, de otra manera para las versiones 2.6.x los paquetes se llaman linux-source-2.6.x.

Para buscar los paquetes que necesita use la opción de busqueda de apt según sus necesidades.

 $ apt-cache search kernel-source

 $ apt-cache search kernel-image

Una vez que sepa cual es el paquete de los fuentes del kernel que va a usar, proceda a instalarlo.

 # apt-get install linux-source-2.6.12

Ahora descomprima los fuentes del kernel.

 $ cd /usr/src
 $ tar xjvf linux-source-2.6.12.tar.bz2

Si ha obtenido los fuentes por este método pase directamente al título Segundo paso: Configurarlo

Opcional: Parches para el kernel

En debian tambien podemos encontrar empaquetados diversos parches para el kernel y se mostrará como usarlos por medio del paquete que contiene el parche para el kernel que nos permite ver la espiral de debian cuando el kernel esta iniciando.

 # apt-get install kernel-patch-debianlogo

Obtener los fuentes de kernel.org

Para obtener los fuentes de kernel.org es mejor mirar primero en esa página para saber cual es la última versión estable. Una vez con ese dato hay que entrar a la siguiente dirección:

Y ubicar el kernel que se requiere. A continuación se debe cambiar al directorio donde se ponen los fuentes:

 $ cd /usr/src/

Y obtener el kernel, por ejemplo con wget:

 $ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

Ahora debe descomprimir los fuentes:

 $ tar xvfj linux-2.6.14.tar.bz2

Con lo que obtendrá el directorio linux-2.6.14.

Segundo paso: Configurarlo

Primero hay que cambiarse el directorio del kernel

 $ cd linux-source-2.6.12

Recomendación <!> : Lea el README, esta en ingles pero es bastante claro.

Ahora hay que configurarlo para ello hay varias formas de hacerlo lo más usada es:

 $ make menuconfig

Con eso obtendrá un menú con todas las opciones que puede desactivar, activar o poner como módulo. No es el objetivo de este escrito hacer un descripción extensa de cada una de las opciones del kernel, lo mejor que puede hacerse es leer cuidadosamente la ayuda de cada opción, buscar en google y preguntar en listas técnicas como Iskariote.

Una vez termina la configuración grabela y siga al próximo paso.

Tercer paso: Compilarlo

La ventaja de Debian es que con el paquete kernel-package se tiene una herramienta con la cual es muy fácil recompilar el kernel.

Primero hay que borrar todos los archivos generados en la anterior compilación (es mejor hacerlo aunque sea la primera vez):

 $ make-kpkg --rootcmd fakeroot clean

Ahora si viene la compilación en si:

 $ make-kpkg --rootcmd fakeroot kernel_image

Recomendación: Lea la página del manual de make-kpkg. (man make-kpkg)

Si es la primera vez que compila un kernel de Linux muy seguramente se presentarán errores, anótelos y léase muy bien el documento Cómo hacer preguntas de manera inteligente.

Opcional: Compilación del parche

Para compilar el parche solo debemos añadir unas opciones a make-kpkg

 $ make-kpkg --rootcmd fakeroot --added-patches debianlogo kernel_image modules_image

Cuarto paso: Instalarlo

También instalar el kernel es muy fácil en Debian, es igual que instalar cualquier paquete. Primero hay que subir al directorio padre donde debe aparecer un kernel-image*.deb

 # cd ..

e instalar el paquete:

 # dpkg -i kernel-image-2.6.14.deb

La instalación le debe hacer una serie de preguntas, lo más importante es que configure el lilo o el grub

Nota <!> : Si usa el lilo recuerde revisar el /etc/lilo.conf y además ejecutar:

 # lilo

Último paso: Probarlo

Una de las pocas ocasiones en que es necesario reiniciar una máquina Linux es cuando se quiere poner a funcionar un nuevo kernel. Así que reinicie la máquina.

Cuando arranque debe seleccionar el nuevo kernel y mirar con atención todos los mensajes en pantalla y si tiene algo como:

que no cunda el pánico anote cuidadosamente en que punto ocurrió, en especial los mensajes previos al Kernel panic y si no ha leído Cómo hacer preguntas de manera inteligente hágalo.

Reinicie su máquina por el kernel antiguo y repita los pasos desde la configuración.

Referencias

Autores

No olvide escribirse se aporta cualquier cosa.


CategoryDebian

ReCompilarElKernelEnDebian (last edited 2008-04-20 14:40:24 by localhost)