jueves, 28 de noviembre de 2013

Como compilar el Kernel

Descargando y desempaquetando el kernel

En principio, para compilar un kernel es evidente que debes descargar el código fuente del mismo. Para eso ingresamos en la página oficial del proyecto donde se encuentran todos los kernel oficiales de Linux, desde la primera versión hasta la última. Cuando los descarguemos vendrá empaquetado y comprimido en alguno de los siguientes formatos: .tar.bz2 o .tar.gz . Es indiferente cual se descarguen, explicaré como descomprimir y desempaquetar ambos tipos de formato.

Lo tradicional es descomprimir el kernel en el directorio /usr/src, sin embargo no olvides que tienes la libertad de hacerlo en donde caprichosamente desees. En el momento de escribir el artículo la versión del kernel es 2.6.15 y la desempaquete y descomprimí en /usr/src, directorio donde se trabaja para todo lo referente con el kernel y los módulos.

Para quienes se descargaron el .tar.gz :

tar xvzf linux-2.6.15.tar.gz
4. Configurando el kernel

Una vez dentro del directorio, necesitamos limpiarlo de todo archivo de configuración que tenga.

NOTA: Podemos obviar este paso para la primera vez que nos lo descarguemos, ya que este viene completamente listo para compilar. Pero una vez que terminas la compilación y por cualquier razón quieres volver a compilarlo, no es necesario que tengas que descomprimirlo y desempaquetarlo de nuevo, puedes reutilizar ese mismo código y es allí cuando tienes que eliminar (limpiar) todos los archivos que se generaron con la compilación anterior.

Para "limpiar" los fuentes del kernel:

make mrproper

Ahora debemos configurarlo, esto quiere decir decidir cuales módulos deseamos que tenga (o que no tenga) una vez compilado. Como es característico del Software Libre: tenemos varias maneras de hacer las cosas, hablemos sobre 3 formas de configurar el kernel:

1era alternativa: make config <-- Hay que tener algo de experiencia, si no la tienes no te recomiendo seguir este camino ya que hace muchas preguntas de hardware. 2da alternativa: make menuconfig <-- Es muy cómodo hacer la configuración por este método porque posees un menú muy sencillo he interactivo. NOTA: Necesitas tener instalado las las librerías ncurses, en debian: aptitude install libncurses5-dev 3ra alternativa: make xconfig <-- Debes tener instalado y en funcionamiento el servidor X, ya que toda la configuración se hace gráficamente (haciendo uso del sistema de ventanas). NOTA: Necesitas tener instaladas las librerías QT, en debian aptitude install libqt3-dev Para la configuración utilizaré la segunda alternativa, es decir, make menuconfig, como lo hago siempre. Estás en la libertad de utilizar la que quieras. Sin embargo te recomiendo el segundo método debido a que no necesitas estar en entornos de escritorio ni tener funcionando el servidor X, además que tiene una interfaz muy simple e interactiva.


Para comenzar la configuración:

make menuconfig

Cuando se dediquen a configurar el kernel recuerden ser muy precavidos seleccionando o habilitando los módulos. Si tenemos dispositivos como FlashDrive (o Pendrive) es indefectible activar el soporte SCSI (específicamente soporte para discos SCSI), ya que estos son emulados como discos SCSI en Linux. Si desactivas el soporte para CDROM, evidentemente la unidad de CDROM no funcionaría una vez instalado. De igual manera pasa si desactivamos el soporte USB, no funcionaría todo los que conectemos por el puerto USB.
5. Compilando

Terminada la configuración del kernel lo compilaremos. Debido a que lo estamos haciendo a la Debian way es necesario que tengamos instalado un paquete llamado kernel-package, el cual suministrará las herramientas necesarias para poder compilar y generar el paquete con nuestro kernel, para instalarla: aptitude install kernel-package. Antes de comenzar la compilación debemos estar en el directorio donde se encuentra el código fuente del kernel y luego ejecutar lo siguiente:

make-kpkg clean

make-kpkg --initrd kernel_image kernel_headers

Los que hayan compilado un kernel de Linux este comando equivale a: make dep, make clean, make bzImage y make modules

La opción --initrd crea una imagen initrd en el paquete que se guardará en /boot cuando instalemos el kernel (recordar que solo estamos compilando y empaquetando, no instalando).

El comando anterior creará dos paquetes con extensión .deb en el directorio superior. Un paquete será el kernel y el otro los kernel-headers.

La opción de kernel_headers es opcional, yo la utilizo debido a que muchos programas y módulos (ver la sección Gestión de módulos) necesitan tener los headers del kernel que se está usando para poder ser instalados, ejemplo: el driver de nvidia, VMware, ndiswrapper, madwifi, otros.

NOTA: El tiempo de compilación es proporcional a la configuración que hayas hecho y a tu poder de computo. Si incluiste muchjos módulos se demorará más. Hay que tener paciencia, es muy frecuente que se tarde bastante.
6. Instalándolo

Una vez que termina la compilación y es corroborada la existencia de los dos paquetes en el directorio superior es el momento de instalarlo. La instalación es muy trivial, debemos ejecutar en el directorio donde están los paquetes:

dpkg -i TU_KERNEL.deb

dpkg -i TU_KERNEL-HEADERS.deb

Por ejemplo, en mi caso fue así:

dpkg -i kernel-image-2.6.15_10.00.Custom_i386.deb

dpkg -i kernel-headers-2.6.15_10.00.Custom_i386.deb

¡Felicitaciones! Con esto terminas la instalación del kernel, ya podrías reiniciar la máquina e iniciar con tu nuevo kernel.

No hay comentarios:

Publicar un comentario

Los comentarios serán supervisados antes de su publicacion

Related Posts Plugin for WordPress, Blogger...

Entradas populares

LinuxSur.org Img

LinuxSur.org Img