You are on page 1of 4

Regstrate ya!

| Ingresar

i
esDebian

Buscar

La mayor comunidad de Debian en espaol

Inicio Envos recientes Principal

Wiki Soplona

Artculos Mi cuenta Informacin

Blogs Contacto

Videos

Foro

Qu haces?

Compilar un Kernel al estilo Debian.

Hasta 5 GB gratis de backup online. Prubalo y regstrate ahora!


free-hidrive.com/backup

5 GB online backup gratis

Enviado por alejandrogm el 13 Enero, 2006 - 05:55. Artculos

Compilar un kernel al estilo Debian Un breve manual donde se ensea a compilar un kernel Linux a la manera Debian. Alejandro Garrido Mota 1. 2. 3. 4. 5. 6. 7. 8. 9. Conceptos bsicos Porqu compilar un kernel a la manera Debian? Descargando y desempaquetando nuestro nuevo kernel Configurando el kernel Compilando Instalando el kernel Dnde consigo ms informacin? TIPS y consejos Copyrigth y licencia

1. Conceptos bsicos Si ya tienes experiencia en GNU/Linux y sistemas operativos puedes saltar esta seccin y comenzar desde la seccin 1.2. Cuando comentamos acerca de Linux es muy comn que nos estemos refiriendo mas que todo al Sistema Operativo con sus aplicaciones y no al ncleo del sistema como tal. La realidad es que el Sistema Operativo(SO para acortar) Linux es _solamente_ el ncleo del sistema, que tambin es llamado kernel. El kernel es el componente ms importante y es quien hace funcionar todo el sistema, sin el kernel no podra funcionar ninguna otra aplicacin. Algunas de las funciones del kernel son: Administrar la memoria del computador Establecer la comunicacin entre las aplicaciones y los dispositivos de hadware Administrar los procesos Otros (No me acuerdo de otro ms :-P) Es importante recordar que el kernel recibe grandes cantidades de actualizaciones en muy poco tiempo, esas actualizaciones contienen en la mayora de los casos mdulos nuevos, mejoras de seguridad, mejoras en la administracin de recursos, etc. Cmo saber que incorpora cada nuevo Kernel que se libera? Mirando un archivo llamado ChangLog que est tanto en la misma pgina de donde se descargar el kernel como dentro del kernel una vez descargado.

2. Porqu compilar un kernel a la manera Debian? Lo mas seguro es que usted se est preguntado porqu compilar un kernel a la manera de Debian y no hacerlo a la manera clsica o la tradicional. El hecho de compilarlo a la manera debian nos proporciona ciertas ventajas que compilarlo a la tradicional. Cuando a la 'debian way' este se empaqueta automticamente en un archivo que tiene extensin .deb, es decir, se crea un paquete. El simple hecho de que se genere un paquete con nuestro kernel compilado nos proporciona las siguientes ventajas: Cuando tengamos que eliminar el kernel debido a que probablemente ya tengamos uno nuevo, lo nico que tenemos que utilizar es la herramienta dpkg de la siguiente forma: dpkg -r TU_KERNEL. Donde tu kernel es el nombre que le diste al paquete(ya ms adelante veremos como). Para eliminar el kernel tambin puedes utilizar herramientas como apt-get, aptitude, o mejor an Synaptic para los novatos que estn empezando o las personas que se sientan cmodas usndolo. Al poder tener el kernel en un paquete se no hace muy fcil guardarlo en un Pendrive, CD, DVD, o mejor an, si tenemos un servidor web podramos subirlo para que otros se descarguen el paquete con el kernel y utilicen nuestro propio kernel. Comnmente el objetivo de esto es poder instalar ese mismo kernel en varias mquinas. Por ejemplo, si tienen 20 mquinas en su oficina y van a actualizar el kernel a todas, sera muy absurdo compilar el kernel en para cada una se las mquinas, pero sera inteligente y astuto utilizar herramientas de Debian para poder crear un kernel genrico, el cual nos proporcionar un paquete con el kernel, el cual vamos a poder distribuirlo en todas las mquinas mediante CDs, servidor Web, FTP, samba, pendrive, otros. Y as poder instalar rpidamente (en pocos minutos si no surge error) el kernel para las 20 mquinas. 3. Descargando y desempaquetando nuestro nuevo kernel Para instalar un nuevo Kernel es necesario descargar el cdigo fuente del mismo en la pgina oficial que es donde se encuentran todos los kernel de Linux, desde la primera versin hasta la ltima. Cuando hacemos la descarga de un kernel siempre no lo encontraremos empaquetado y comprimido en alguno de estos formatos: .tar.bz2 o .tar.gz . Es indiferente cual se descarguen, de todas formas voy a explicar como se hace para descomprimir y desempaquetar para los dos tipos de formato. Lo comn es que descomprimas el kernel en /usr/src pero si deseas hacerlo en otra parte posees la libertad ;-). Por ejemplo actualmente yo me baj la versin 2.6.15 y la descomprim en /usr/src , que es el directorio donde normalmente se trabaja para todo lo que tiene que ver con kernls y mdulos. Para los que descargaron el .tar.gz : tar xvzf linux-2.6.15.tar.gz Para los que descargaron el .tar.bz2: tar xvjf linux-2.6.15.tar.bz2 Notar la ``j'' para el de extensin .tar.bz2 Luego de eso necesitamos ingresar al directorio donde se descomprimi y desempaqueto el kernel para poder configurarlo y compilarlo, para ingresar al directorio: cd linux-2.6.15 4. Configurando el kernel Una vez dentro del directorio donde hemos descomprimido y desempaquetado el kernel, necesitamos limpiar el kernel de todo archivo de configuracin que tenga el mismo. NOTA: Normalmente podemos obviar este paso para la primera vez que nos descarguemos el kernel, ya que este viene completamente listo para compilar. Pero una vez que terminas la compilacin del mismo y por cualquier razn quieres volver a compilar dicho kernel, no es necesario que tengas que descomprir y desempaquetarlo de nuevo, puedes reutilizar ese cdigo para volver a compilar y es all cuando tienes que eliminar(limpiar) todos los archivos que se generaron con la compilacin anterior. Para "limpiar" los fuentes del kernel: make mrproper Ahora tenemos que configurarlo. Cuando hablamos de configurar nos referimos a decidir que mdulos queremos posea el kernel una vez compilado, que mdulos no. Como siempre pasa en los referente al Software Libre, siempre hay varias maneras de hacer las cosas, lo que quiero decir es que tenemos muchas maneras de configurar el kernel. Aqu les presento 3 formas: 1era forma: make config 2da forma: make menuconfig NOTA: Necesitas tener instalado las las libreras ncurses, en debian: aptitude install ncurses-base 3ra forma: make xconfig NOTA: Las libreras QT las puedes instalar con apt de esta manera. aptitude install libqt3-dev Para la configuracin utilizar la segunda forma, que es como lo he hecho siempre, por supuesto ests en la libertad de utilizar la que quieras, sin embargo te recomiendo la segunda forma, debido a que no necesitas estar en entornos de escritorio ni tener levantado el servidor X, adems que es muy interactiva y simple. Para empezar la configuracin: make menuconfig Es importante recordar que cuando se dediquen a configurar el kernel sean muy cuidadosos seleccionando cuales mdulos tendr y cuales no. Por ejemplo si tenemos dispositivos como FlashDrive o tambin llamados Pendrive es indispensable que activemos el soporte SCSI en el kernel(especficamente soporte para discos SCSI) debido a que estos dispositivos son emulados como discos SCSI tanto Linux como en otros sistemas operativos. Tambin debemos tener en cuenta que si tenemos discos duros SCSI y no le activamos el soporte en el kernel, estara dems decir que evidentemente no funcionarn. Si desactivas el soporte para CDROM, evidentemente la unidad de CDROM no funcionar una vez que instalemos y usemos el kernel. De igual manera pasa si desactivamos el soporte USB en el kernel, no funcionara todo los que conectemos por el puerto USB.

5. Compilando Una vez que terminamos de configurar el kernel tenemos que compilarlo, como lo vamos a hacer de la forma Debian es necesario que tengamos instalado un paquete llamado "kernel-package" el cual nos va a suministrar las herramientas necesarias para poder compilar y generar el paquete con nuestro debido kernel, para instalar la herramienta: aptitude install kernel-package. Bien para empezar la compilacin debemos estar en el directorio donde se encuentra el cdigo fuente del kernel y luego ejecutar lo siguiente: make-kpkg clean make-kpkg --initrd kernel_image kernel_headers A manera de informacin para los que han compilado un kernel anteriormente de Linux mas no a la manera Debian les informo que este comando equivale en la manera clsica a teclear make dep, make clean, make bzImage y make modules La opcin "--initrd" crea una imagen initrd en el paquete que se guardar en /boot cuando instalemos el kernel(recordar que estamos compilandolo nada mas). El resultado del comando anterior va a ser crear dos paquetes con extensin .deb en el directorio superior de donde est el cdigo fuente del kernel. Un paquete va a ser el kernel completo y el otro va a ser los kernel-headers. La opcin de "kernel_headers" que colocamos para la compilacin es opcional, yo personalmente la coloco debido a que muchos programas y mdulos necesitan tener los kernel headers para ser instalados, por ejemplo: el driver de nvidia, VMware, ndiswrapper, madwifi, otros. Si no necesitas los kernel headers borra la palabra "kernel_headers" del comando anterior. NOTA: El tiempo que dura compilar el kernel es dependiente de la configuracin que hayas hecho en el mismo y de la velocidad y tipo de procesador que tengas. Si agregaste muchos mdulos el kernel tardar ms, pero si son pocos la compilacin ser rpida. Hay que tener paciencia, es muy comn que se tarde bastante. 6. Instalando el kernel Una vez que termina la compilacin y notamos la existencia de lso dos paquetes en el directorio superior es hora de instalar el kernel. La instalacin es sper sencilla, debemos ejecutar lo siguiente (recuerda que tienes que estar en el directorio superior): 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 7. Dnde consigo ms informacin? Si quieres saber que otros parmetros le puedes pasar al make-kpkg para compilar el kernel puedes leerte el manual que est completamente en espaol y fcil de entender. Para leer el manual: man make-kpkg 8. TIPS y consejos Todos los kernels que han existido en Linux se encuentran en: http://kernel.org/pub/linux/kernel Consultar el manual de make-kpkg que tiene documentacin sencilla y en espaol. man make-kpkg Si ya tenemos un kernel anterior configurado y no queremos repetir el paso de la configuracin debido a que perdemos mucho tiempo o nos da flojera podemos hacemos lo siguiente: En /boot debe estar nuestra configuracin anterior, normalmente el archivo que contiene tu configuracin anterior se llama config-VERSION_KERNEL. Por ejemplo el mio se llama config-2.6.14 . Ese archivo lo tenemos que copiar en directorio donde estn las fuentes del kernel con el nombre ".config"(recuerden el "." que es sper importante, sin el no nos va a funcionar. En mi caso lo copi de esta manera: cp /boot/config-2.6.14 /usr/src/linux-2.6.15/.config Una vez que hacemos eso ya esta configurado el kernel, podemos verificar entrando a la configuracin del mismo usando cualquiera de las 3 maneras nombradas en el captulo 4 y notaremos que tiene una configuracin diferente a la que viene por defecto. Es importante recordar que si vamos a configurar el kernel con "make config" tenemos que conocer algo de hadware, cuando digo conocer me refiero a que tenemos que saber algunos dispositivos de hadware que posee nuestro ordenador. Por eso si eres medio novato te recomiendo que te vallas por el "make menuconfig" Si vas a compilar varios kernel puedes colocarle su nombre a cada compilacin para poder identificar el paquete .deb en el directorio superior. Para hacer esto necesitas agregar una opcin -append-to-version=NOMBRE y como ya saben donde dice nombre es donde colocan el nombre que caracterice a cada kernel. Si quieren incorporar mdulos que no vinieron con el kernel pueden utilizar module-assistant, que posee bastante documentacin. Adems que es muy til por que nos evitar reiniciar la computadora una vez que incorporemos mdulos al kernel. 9. Copyrigth y licencia Copyright (c) 2006 Alejandro Garrido Mota.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". 2da edicin: Mejorado y actualizado el artculo. 28 de noviembre del 2006
Inicie sesin o regstrese para enviar comentarios 39103 lecturas

Deal Laptops

Small notebook computer

Inspiron

Instalar Linux

Linux Download

Linux Kernel

Linux Server

Artculos

Enviado por jarping el 18 Enero, 2006 - 03:34.


al instalar un kernel en debian personalizado me da un error de hal hardware abstration layer y me dice que no puede cargarse los dispositivos solo da ese error pero por lo demas bien

Inicie sesin o regstrese para enviar comentarios

Enviado por jppsanz el 28 Diciembre, 2006 - 14:55.


Respuesta a al instalar un kernel en Estupendo artculo. Muchas gracias

Inicie sesin o regstrese para enviar comentarios

Enviado por Jack_Spider el 12 Noviembre, 2008 - 02:04.


Excelente articulo muchas gracias

Inicie sesin o regstrese para enviar comentarios

Enviado por Darth_Vader el 14 Noviembre, 2008 - 06:07.


hace mucho pero mucho tiempo que tenia ganas de agradecer por este artculo pero me gusta postear lo estrictamente necesario, y debido a que lo tuve que volver a usar... se me hizo necesario agradecer :D

Inicie sesin o regstrese para enviar comentarios