Compilar Kernel modo Debian

Hoy me animé a compilar el kernel en Debian para solucionar algunos problemas de incompatibilidad y, porque el kernel que tenía mi distro no me soportaba algunos drivers.

Esta es una pequeña chuleta de cómo compilar el kernel al estilo Debian, espero que sea de ayuda a alguien más.

Antes de iniciar con la creación de nuestro kernel necesitaremos algunos paquetes:

# aptitude install build-essential kernel-package bzip2

¿Por qué otro how to, de cómo compilar el kernel?

El propósito principal del post es dejar una referencia de la compilación del kernel al estilo Debian, clara y directa.

1. Descargar las fuentes de la versión del kernel que vamos a compilar.

www.kernel.org

2. Desempaquetamos el kernel en el directorio /usr/src.

tar -xvv[z|j]f

z – para tar.gz

j – para tar.bz2

3. Ingresamos a las fuentes. cd linux-x.y.zz , o creamos un enlace simbólico ln -s linux-x.y.zz linux, e ingresamos al enlace, cd linux.

4. Limpiamos las sources de cualquier archivo de compilación que tengan. Esto  solo si ya lo habíamos configurado antes; si es nuestra primera vez no hay necesidad de realizar la limpieza. La cual se hace con el comando:

make mrproper

5. Configuración/seleccionar los módulos que queremos que tenga nuestro kernel al ser compilado. Para la configuración de nuestro kernel contamos con varias formas de realizarlo como:

make config, con este comando podemos realizar la configuración pero se requiere tener altos conocimiento sobre el hardware.

make menuconfig, este método realiza la configuración a través de un menú en ncurses. Para usar este método necesitamos tener instaladas la ncurses(libncurses#-dev).

make xconfig, como su nombre lo indica este método usa una interfaz gráfica para realizar la configuración con las librerías Qt.

make gconfig, como te lo has imaginado, este usa las librerías GTK.

Por lo general se usa la segunda opción para realizar la configuración, ya que ésta se puede realizar desde la consola; sin embargo cada quien es libre de usar la de su preferencia.

Antes de iniciar la configuración del kernel podemos establecer su configuración por defecto, con el comando make defconfig. El cual activa algunas opciones de uso común y nos toca ya a nosotros realizar el resto de la configuración, ingresando a la interfaz de configuración de nuestra preferencia.

make menuconfig

TIPS: Si ya tenés un kernel anterior compilado(configurado) y no queremos repetir el paso de configuración, podemos usar este fichero /boo/config-x.y.zz, el cual lo copiamos en el directorio donde se encuentran las fuentes de nuestro nuevo kernel(/usr/src/linux), con un fichero oculto; con el formato .conf así:

cp /boot/config-x.y.zz /usr/src/linux-2.6.35/.config

y luego ingresamos a configurarlo,

make oldconfig menuconfig

6. Compilación del Kernel. Para este propósito necesitamos tener instalado el paquete “kernel-package“, el cual nos permite compilar y crear paquetes de Debian con relación a las fuentes del kernel Linux. Empezamos ejecutando el comando:

make-kpkg clean

Esta opción elimina del directorio todos los ficheros generados por el objeto build y ejecuta make distclean.

make-kpkg –initrd kernel_image kernel_headers

La opción –initrd, crea la Imagen o Disco RAM inicial que es usado en el arranque por el núcleo y que se ubicará en /boot cuando instalemos el kernel.

Hay más opciones como binary-arch, kernel_source. Mirar el manual de make-kpkg para más información.

TIPS: Si vamos a compilar varios kernels, podemos poner un nombre a cada compilación para identificar cada uno de los paquetes generados por make-kpkg. Para esto agregamos la opción “append_to_version=NOMRE_VERSION”

Estos comandos equivalen a la ejecución de make dep, make clean, make bzImage y make modules.

Una vez terminada la ejecución de estos comandos se crearán los paquetes .deb, de image(kernel compilado) y headers(archivos de cabecera del kernel, necesarios para la compilación de módulos para nuestro kernel) en el directorio padre.

7. Instalación del kernel. Para compilar usamos el administrado o gestor de paquetes de Debian.

dpkg -i linux-image-x.y.zz

dpkg -i linux-headers-x.y.zz

Una vez instalados los paquetes podemos verificar que se halla creado la imagen del kernel(vmlinuz-x.y.zz) y el disco RAM, en el directorio /boot.

TIP: Con el método a la Debian no hay necesidad de configurar el gestor de arranque.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s