sábado, 20 de marzo de 2010

Compilar un Kernel Vanilla custom 2.6.XXX en Debian y Ubuntu.

Por lo general cuando bajamos nuestra copia de Debian o Ubuntu, esta viene con un Kernel genérico, es decir configurado para el poder funcionar en cualquier equipo y para cargar los drivers de cualquier o casi cualquier tipo de hardware, pero nosotros podemos compilar un kernel de acuerdo a nuestras necesidades, es decir adaptado a nuestro equipo en particular, y pues ¿que ganaremos con esto? pues mas que nada para obtener mejor rendimiento de la maquina al no cargar módulos que nunca necesitaremos pues no contamos con ese hardware.

Pasos para compilar el kernel:

1.- Primero instalamos las dependencias que necesitaremos que así que desde la terminal como superusuarios escribimos: aptitude install kernel-package libncurses5-dev fakeroot wget bzip2 

Además de asegurarnos de tener las librerías libqt3-mt libqt3-mt-dev, libqt3-headers, libqt3-compat-headers además del paquete Qt3-assistant. 

2.- Después sera bajarnos la ultima versión del kernel vanilla de http://www.kernel.org/  pero, ¿que es un kernel vanilla? pues en pocas palabras es la versión del kernel que sale de los desarrolladores del kernel Linux y no ha sido modificado por alguna de las diferentes distribuciones que existen, es decir cada distribución tiene sus "versiones" de los nuevos lanzamientos del kernel "parchadas" y adaptadas a las necesidades de la propia distribución.

En este caso es la versión 2.6.33.1 así que bajamos el archivo tar.bz2 y lo descomprimimos, tradicionalmente es hacerlo en /usr/src así que desde la terminal tecleamos lo siguiente (en este caso tengo el paquete en el Escritorio o Desktop:

Desktop# mv linux-2.6.33.1.tar.bz2 /usr/src

Entramos al directorio /usr/src/
# cd  /usr/src

Descomprimimos el código fuente del kernel:

/usr/src# tar xfjv linux-2.6.33.1.tar.bz2

Entramos al directorio del código fuente del kernel:

/usr/src# cd linux-2.6.33.1

/usr/src/linux-2.6.33.1#  

Una vez dentro del directorio ejecutamos el comando: make xconfig

/usr/src/linux-2.6.33.1# make xconfig

Nos aparecera una pantalla como la siguiente:


Después cargamos el archivo de configuración (generalmente empieza con "config" de un kernel que este funcionando en este caso sera el archivo config-2.6.32-trunk-686 y se encuentra en la carpeta boot, del directorio raiz / para esto le damos en el icono del folder de la parte superior de la pantalla abrimos la carpeta boot.
 


Cargamos el archivo config:


Aquí procedemos a elegir las opciones del menú que se nos presenta para cargar solo lo que nuestro sistema tiene podemos auxiliarnos en la terminal de los comandos lspci (nos muestra nuestros dispositivos pci) , lsusb (nos muestra nuestros dispositivos usb), lsmod (que nos muestra los módulos que tenemos cargados) y less /proc/cpuinfo, que nos muestra la información de nuestro CPU, es importante que sepamos mas o menos que hardware tenemos y así mover los parámetros de acuerdo a nuestra conveniencia y si no es así mejor no nos metamos en chingaderas y no le movamos (puede quedar sin moverle solo guardamos y seguimos los pasos siguientes), ahora procedemos a compilar nuestro kernel y para esto tecleamos en la terminal en el directorio de nuestro código fuente:

/usr/src/linux-2.6.33.1# make-kpkg clean

Y despues:

/usr/src/linux-2.6.33.1# make-kpkg --initrd --revision=2:my.1.0 --rootcmd fakeroot --uc --us kernel_image

O si lo prefieren:

/usr/src/linux-2.6.33.1#fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Después de esto hay que esperar un rato según la velocidad de la maquina pues es un proceso tardado, al finalizar nos creara dos paquetes .deb que instalaremos y a su vez nos instalara nuestro nuevo kernel.

Para instalarlos debemos estar en el directorio /usr/src y ejecutamos el siguiente comando:

dpkg -i "nombre del paquete" 

En este caso nos genero los paquetes:

linux-headers 2.6.33.1_2.6.33.1-10.00.Custom_i386.deb 
linux-image-2.6.33.1_2.6.33.1-10.00.Custom_i386.deb

De esta manera tendremos nuestro nuevo kernel actualizado y funcionando.

No hay comentarios:

Publicar un comentario

Python_1_Configurar_virtualenvwrapper_para_entornos_virtuales.

¿Para qué sirve? R= Nos permite configurar un path donde se alojaran entornos virtuales los cuales se pueden entender como un directorio q...