Contents
¿Por qué recompilar el kernel?
Hay muchas razones para recompilar el kernel algunas de las cuales son:
- Hacer un kernel más eficiente y por ello una máquina más rápida.
- Aumentar la seguridad.
- Incluir el software necesario para manejar un hardware específico (drivers, módulos).
- Porque quiere aprender a hacerlo.
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.
- Para las versiones 2.2.x y 2.4.x
$ apt-cache search kernel-source
- Para las versiones 2.6.x
$ 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:
- Kernel panic
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.
Luis Alejandro Bernal Romero del grupo Iskariote
