Como compilar un núcleo "a la debian"

1. Instalación de herramientas necesarias
2. Obtención de las fuentes del kernel y preparación de las mismas
2.1 Fuentes vanilla
2.2 Fuentes desde los repositorios
2.3 Preparar las fuentes
3. Aplicar parches al kernel
4. Configuración y compilación
5. Instalación
6. Instalación del Kernel usando Entorno Gráfico [Usando el Kernel 2.6.31 como Ejemplo]
6.1 Paquetes necesarios
6.2 Descargamos el Kernel
6.3 Preparativos previos a la instalación
6.4 Configuración y compilación
6.5 Agregando Linux Logo [Opcional]
6.6 Guardamos y cerramos
6.7 Compilamos e Instalamos
6.8 Precauciones antes de Reiniciar


1. Instalación de herramientas necesarias

Primeramente actualizamos las fuentes de software:

apt-get update

A continuación, instalamos las herramientas necesarias para realizar a compilación:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

2. Obtención de las fuentes del kernel y preparación de las mismas

2.1 Fuentes vanilla

Nos situamos en el directorio /usr/src y nos las bajamos;

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.XXX.tar.bz2

2.2 Fuentes desde los repositorios

apt-get install linux-source-2.6.XXX

2.3 Preparar las fuentes

Una vez tenemos las fuentes en /usr/src se descomprimen

tar xjf fuentes.tar.bz2

Para hacer mas cómodo el trabajo haremos un enlace que se llame linux a la carpeta donde se hayan descomprimido las fuentes.

ln -s fuentes linux

Y nos situamos dentro de este directorio

cd linux

3. Aplicar parches al kernel

Llegados a este punto puede ser que antes de comenzar la compilación se necesite parchear el kernel, por ejemplo, para añadir soporte a algún dispositivo que en el kernel todavía no este incluido.

Nos descargamos el parche que no haga falta y lo situamos dentro de /usr/src, y nos situamos en /usr/src/linux. Antes de aplicar el parche de manera definitiva tenemos que verificar que funciona, así:

bzip2 -dc /usr/src/patch.bz2 | patch -p1 –dry-run

Si no hemos obtenido ningún mensaje de error procedemos a aplicar el parche de manera definitiva:

bzip2 -dc /usr/src/patch.bz2 | patch -p1

4. Configuración y compilación

Siguiendo en el directorio usr/src/linux:

make clean && make mrproper

Si el kernel que estamos ejecutando en este momento de manera correcta podemos copiar la configuración al kernel nuevo así:


cp /boot/config-`uname -r` ./.config

Procedemos a la configuración de nuestro nuevo kernel:


make menuconfig

Si queremos que cargue la configuración del kernel ntiguo que antes hemos copiado, lo primero que tenemos que hacer es cargarla, seleccionando Load an alternate Configuration File.

Esta es la parte en la que hay que prestar atención. Aquí es donde se tiene que modificar la configuración de nuestro nuevo núcleo. Si en algún momento tenemos alguna duda sobre cualquier opción podemos pulsar la tecla h cuando estemos sobre ella y obtendremos una explicación. Si aun así surgen dudas, podemos recurrir al archi-conocido google, allí se halla información de cada opción del kernel de manera pormenorizada.

Una vez hemos acabado de configurarlo:

make-kpkg clean

Pasamos a compilarlo. Aquí hay que tener paciencia, dependiendo de las características de nuestro equipo y de las opciones elegidas a la hora de compilar el kernel, este proceso tardara más o menos.

fakeroot make-kpkg --initrd --append-to-version=-XXX  kernel_image kernel_headers

Substituimos XXX por el nombre que le queramos dar al nuevo núcleo. OJO! Mantener el menos delante.

5. Instalación

Una vez termine el proceso nos habrá generado los paquetes de nuestro nuevo núcleo en /usr/src

dpkg -i linux-image-XXXX.deb
dpkg -i linux-headers-XXX.deb

6. Instalación del Kernel usando Entorno Gráfico

El siguiente método mostrado a continuación permite la instalación de un Nuevo Kernel en Debian usando Entorno Gráfico. Si es tu primera instalación de un Kernel en Debian es importante contar con las siguientes herramientas:

6.1 Paquetes necesarios

Tenemos que contar con lo básico para empezar nuestra instalación. Revisa que tengas instalados los siguientes paquetes sobre el Kernel en el que te encuentras.

Linux Headers

# apt-get install linux-headers-`uname -r`

Build Essentials

# apt-get install build-essential

Modules Assistant

# apt-get install module-assistant

Ahora vamos a instalar un paquete que nos permitirá Compilar el Kernel usando nuestro Entorno Gráfico.

# apt-get install libqt3-mt-dev

Instalaremos Kernel Package

# apt-get install kernel-package

Es importante contar con cada una de sus Dependencias dependiendo de la Rama de Debian en que te encuentres. Si quieres conocer más acerca de este paquete puedes ver el Siguiente Enlace

6.2 Descargamos el Kernel

Para esta prueba usaremos el Kernel 2.6.31. En el siguiente enlace puedes encontrar la lista completa de Kernels Linux a partir de su versión 2.6.0 Aqui

Descarga el Kernel 2.6.31 linux-2.6.31.tar.gz

6.3 Preparativos previos a la instalación

Ahora que tenemos descargado el Kernel debemos descomprimirlo. Suponiendo que la descarga la has realizado en tu "Escritorio" entonces:

Ingresamos al Escritorio

# cd Desktop

Descomprimimos

# tar -xzvf linux-2.6.31.tar.gz

Ingresamos dentro de la carpeta del Kernel

# cd linux-2.6.31

Una vez ingresado dentro de la carpeta del kernel es Opcional poder usar la configuración del Kernel que tenemos instalado. Si quieres saber que Kernel estás usando ejecuta

# uname -r

En nuestro caso este fue el resultado 2.6.30-i686

Ahora debemos copiar la configuración de nuestro Kernel a la carpeta del Kernel 2.6.31 que vamos a compilar. Este ejemplo es tomado siguiendo la salida de uname -r

# cp /boot/config-2.6.30-1-686 /home/tu-usuario/Desktop/linux-2.6.31

6.4 Configuración y compilación

Ahora que tenemos todo preparado empezamos a Configurar Recordemos que nos encontramos dentro de la carpeta de nuestro Kernel 2.6.31 ahora ejecutamos el siguiente comando

# make xconfig

Al ejecutar este comando te saldrá la siguiente ventana

Ahora vamos a cargar el archivo que copiamos a nuestra carpeta del Kernel 2.6.31 para ello nos vamos a File -- Load Y cargamos el archivo que cargamos anteriormente a nuestra carpeta del Kernel 2.6.31. consecutivamente una vez seleccionado hacemos clic en Open

Como podemos ver en esta imágen

6.5 Agregando Linux Logo [Opcional]

Posiblemente más adelante quieras jugar con Framebuffer además de eso tenemos la posibilidad de que cuando carguemos nuestro SO Debian queremos que salga el Logo de Linux Cabe decir que Framebuffer viene activo por defecto más no la opción de Linux Logo [Bootup Logo] para ello vamos a activar esta opción de la siguiente manera:

Activando Linux Logo

Para ello nos vamos a la sección que dice "Graphic Support" y marcamos donde dice "Bootup Logo" Como se muestra en esta imágen

6.6 Guardamos y cerramos

Lo único que nos queda en estos momentos es Guardar y Cerrar Simplemente debes hacer clic en la imágen que tiene el Diskette y luego cerrar la ventana

6.7 Compilamos e Instalamos

Ahora que tenemos todo listo solo nos queda compilar e instalar pero antes de seguir ten en cuenta lo siguiente:

Importante

La compilación e instalación puede tardar aproximadamente unos 30 - 45 minutos. Dependiendo de las prestaciones de tu máquina. Entre menos prestaciones de Procesador o Memoria es posible que tarde mucho más.

1. Desactiva momentáneamente el Protector de Pantalla

2. Si tu máquina es de bajas prestaciones "Evita" en todo momento hacer otras tareas mientras se está compilando. Esto puede ocacionar un cuelgue no deseado.

Ahora vamos compilar e instalar en un solo paso

Recordemos que nos encontramos dentro de la carpeta de nuestro Kernel a compilar, solo nos resta realizar este último paso

# make && make install && make modules_install && mkinitramfs -o /boot/initrd.img-2.6.31 2.6.31 && update-grub

Fíjate bien en esta parte

/boot/initrd.img-2.6.31 2.6.31

Esta cambiará dependiendo del Kernel que estes compilando. Recuerda que en esta Wiki estamos compilando el Kernel 2.6.31 solo cambia estos valores con los valores del Kernel al cual has optado compilar e instalar.

6.8 Precauciones antes de Reiniciar

Hemos finalizado, pero antes de reiniciar tu máquina "Recuerda"

1. Si has instalado Drivers de Video debes desinstalarlos puesto a que no podrás entrar al entorno gráfico de tu nuevo Kernel.

2. Si por error se te olvida desinstalar los drivers de video, reinicia la máquina nuevamente, entra normalmente desde tu Kernel anterior y desinstalalos.

3. Los drivers deben de ser desinstalados desde el Kernel que los contiene y no desde el nuevo Kernel.

Fin