Menú Cerrar

Compilacion Kernel Linux 2.6.37.1 con generacion de paquetes *.deb

Que tal, pues bueno despues de una gran ausencia que tube por trabajo y flojera tambien les triaigo un tutorial que ya habia presentado con anterioridad peroque sin embargo les servira a muchos de igual manera que a mi, y es que con la llegada del nuevo sistema operativo Debian 6 Squeeze esta muy muy bueno de hecho lo tengo en mi laptop y en mi pc de escritorio, teniendo mayor rendimiento, velocidad con respecto a la tecnologia de 64bit perfecta para mis procesadores y una nueva imagen en cuanto a la guerra de los escritorios sin embargo comenzare a platicarles del por que me surgio la idea y nesesidad de compilar este nucleo, ya que el que trae debian esta muy bien y es lo bastante estable y compatible con todos los dispositivos, bueno en gran parte por que tube un problema con mi pc de escritorio, sobre todo por los controladores de la tarjeta Nvidia, ya que ahora el nucleo trae por defecto soporte libre para ellas pero no todas son compatibles y funcionales como deveria de ser, yo se que de esto trata el software libre y como fan de ellos la verdad no me gusto mucho la idea por que los graficos me limitaban a muchas cosas, era como si de plano no tubiera una tarjeta de video, y a su  vez tambien hay controladores libres para instalar en el repositorio cosa que no me dejaba hacer para instalar el ultimo controlador de dicha tarjeta ademas de ser un controlador antiguo el que se incluye en estos repositorios, es por es oque decidi compilar yo mismo el mio.
Antes de comenzar les suguiero que cuando inserten las instruccion antes de eso inicien sesion o se logen como root ya que nesesitamos permisos para realizar todas las acciones correspondientes.

Vamos por partes:
1.- Bajar de la pagina kernel.org el ultimo nucleo estable, al dia de hoy es el 2.6.37.2 y seleccionamos en este caso la opción que dice FullSource.
2.- Una vez bajado el archivo tar.gz, lo descomprimimos, en este caso yo utilize click derecho y en la opcion extraer aqui
3.- Una vez extraido el kernel nos dara una carpeta con el nombre linux-2.6.37 la cual debemos de mandar a una carpeta de sistema y como no nos va a dejar pegarla asi por que si, ejecutamos una consola o terminal (gnome), en la cual escribiremos su para iniciar sesion como root y escribiremos la contraseña de root. Ya estando como root (nos daremos cuenta cuando en nuestro simbolo de sistema o prompt nos aparesca el simbolo de gato (#)), entonces escribimos lo siguiente
root@ska-rabajo-1:/home/amisadai# sudo nautilus
y ya escribiendo esto nos dara una ventana explorador de nautilus sin embargo tendremos sobre ella permisos para en este caso copiar una carpeta en sistema, entonces copiamos la carpeta extraida y la copiamos en la direccion: /usr/src
4.-Acabando de copiar la carpeta cerramos el nautilus con permisos de root y utilizamos la consola o terminal que abrimos, ahora, antes de continuar con la compilacion nesesitamos ciertos paquetes que nos ayudaran a compilar el kernel de una manera segura y sin errores, en la consola escribimos esta linea para descargar e instalar estos paquetes.

root@ska-rabajo-1:/home/amisadai# aptitude install kernel-package quilt autoconf automake libtool libncurses5-dev pkg-config checkinstall build-essential module-assistant zlib1g-dev


5.-Ahora bien, ya que tenemos los paquetes instalados procederemos a configurar nuestro kernel y escribimos en consola o terminal lo siguiente

root@ska-rabajo-1:/home/amisadai# make menuconfig

Nota: si no se ejecuta como muestra la figura tienen que revisar que los paquetes esten instalados ya que a menudo marca error por esta situacion

6.-Ya entrando en el meun del kernel, lo personalizamos a nuestro modo, y si no sabemos como solamente nos vamos a la parte final de save para guardar los cambios y cree un archivo que se llamara .config el cual es importante por que cuando se compile buscara las opciones que fueron señaladas para incluir en el kernel ya sean controladores, procesadores, funciones extras de red entre otros, yo en lo personal me meto a ver que el procesador sea el generico de x86-64 por que yo utilizo debian a 64 bit, y tambien veo que la opcion preemtion model este en desktop ya que si esta en server, el procesador va a trabajar mas y se calienta mas el procesador y se los digo por experiencia a menos que estemos haciendo un nucleo para un servidor Xeon o Phenom que soporte los 64 bit y cargas de trabajo pesadas esta opciones las encontraran en “processor types and features” –>procesor family y preemtition model, o tambien arctivar controladores en la direccion “device drivers” y asi ustedes tambien pueden ir investigando todas estas opciones y si se posisionan un una opcion pueden ver la ayuda y les dara una descripcion de lo que hace cada cosa.
7.-Ahora ya que tenemos nuestro nucleo con opciones lo guardamos en el menu principal en la parte final seleccionamos “save an alternative configuration file”, y nos dara un cuadro el cual nos dice que el archivo de configuracion se llamara “.config” y se cierra el menu de la configuracion del kernel.
8.-Procederemos con compilar el kernel y crear paquetes .deb, lo que crearemos sera la cabecera (Headers), imagen (image), y fuente (source), con lo cual aplicaremos estas linesas

root@ska-rabajo-1:/home/amisadai# make-kpkg clean

root@ska-rabajo-1:/home/amisadai# make-kpkg –append-to-version=-04022011 –initrd kernel-image kernel-headers kernel-source

En donde:

–append-to-version : es la versión que se agregará al nombre del kernel, en mi caso he puesto la fecha de hoy.

kernel-image : se creará un paquete .deb para instalar la imágen del kernel
kernel-headers : se creará un paquete .deb para instalar los headers del kernel
kernel-source : se creará un paquete .deb para instalar el fuente del kernel
Este proceso dura entre 1:30 a 2:30 dependiendo la velocidad de proceso y tipo de procesador y para hacerlo un poco mas aguil podemos utilizar antes de compilar el siguiente comando pero solo esto es apto para procesadores con mas de 1 nucleo

root@ska-rabajo-1:/home/amisadai# export CONCURRENCY_LEVEL=`expr $(cat /proc/cpuinfo |grep -i ‘MHz’|wc -l) + 1

en lo que ternima vemos la version de nuestro kernel que probablemente sea la 2.6.32.5, en el menu Aplicaciones–> Herramientas de sistema –> Monitor de sistema, en la pestaña Sistema, y mientras acaba podemos jugar en la calle, platicar con los amigos en el chat, ver videos de musica o recoger tu cuarto por que el proceso tarda mas de 1 hora y media aproximadamente.
9.-Finalizando todo este proceso nos devolvera la consola o terminal otra vez a el simbolo de sistema o prompt #, y podemos ver nuestro paquetes compilados en .deb solamente recorriendo una carpeta atras y hacer dir como se muestra
root@ska-rabajo-1:/home/amisadai# cd ..
root@ska-rabajo-1:/home/amisadai# dir
Y veremos nuestros archivo que tengan la terminacion .deb, los voy a poner los que acabo de compilar yo linux-headers-2.6.37-04022011_2.6.37-04022011-10.00.Custom_amd64.deb
linux-image-2.6.37-04022011_2.6.37-04022011-10.00.Custom_amd64.deb
linux-source-2.6.37-04022011_2.6.37-04022011-10.00.Custom_all.deb
10.- Para finalizar instalamos estos paquetes que nos genero y lo haremos desde la consola dando el siguiente comando:
root@ska-rabajo-1:/home/amisadai# dpkg -i *.deb
Con esto queremos decir que instalara los 3 paquetes, el headers, source e image, pero hay que tener cuidado, si tenemos mas de 3 paquetes deb por x motivo eliminarlos para no tener problemas.
Ahora solo esperamos y cuando finalize y nuestro prompt no alla devuelto error reiniciamos y veremos que al inicio en el menu de los sistemas operativos nos mostrara nuestro nucleo para ejecutarse en primer lugar, y ya cuando acabe de cargar comprobaremos accediendo en la ventana anterior del monitor de sistema y nos tiene que apareser asi:
Bueno esto seria todo por hoy, si tienen algun comentario o les ocurrio algun problema haganmelo saber y no es por nada pero siguiendo estos pasos no nos debe de fallar por nada, algo que si les recomiendo es que no traten de compilar el kernel linux para instalar de una version x86 a x86_64 o viceversa ya que pues si son arquitecturas diferentes ademas de que el mismo sistema operativo no los va a permitir, espero les halla gustado y tratare de estar mas seguido por aqui ya que tengo mas tutoriales y experiencias que compartir.
Caja Negra
Publicado en Experiencia, Tutorial