Ubuntu Sur

“Las personas nacen libres e iguales en dignidad y derechos”

Compilar el kernel en Ubuntu

Posted by K|Ke on July 6th, 2009

compilando

Como ocurre con los seres humanos respecto al corazón y cerebro para gobernar el cuerpo, los sistemas operativos necesitan un kernel (núcleo) que permita las operaciones básicas necesarias para el correcto funcionamiento del sistema.  Entre estas funciones se encuentran la gestión de la memoria y la ejecución de procesos, proporciona una interfaz de comunicación entre los programas y los dispositivos, además de toda una serie de operaciones imprescindibles para conseguir hacer funcionar todos los mecanismos propios de un sistema operativo como plataforma básica para la ejecución de programas.

Cuando se instala una distribución GNU/Linux automáticamente se copia un kernel en el directorio /boot.  Este kernel será utilizado en el arranque del sistema por defecto.  Inicialmente se puede usar el kernel copiado automáticamente por la instalación.  Sin embargo puede ser necesaria una recompilación del núcleo por diversas razones.

El sistema de compilación de Ubuntu es muy útil para desarrolladores, para gente que precisa el último núcleo y para personas que necesitan compilar un juego surtido de núcleos. Sin embargo puede ser un algo complejo para usuarios normales. Si usted no necesita las últimas fuentes de desarrollo, hay una forma más simple de compilar su núcleo desde el paquete linux-source.

No obstante, para Ubuntu es recomendable realizar la compilación de las fuentes del kernel de Ubuntu, estas se pueden descargar directamente con la herramienta de administración de paquetes ‘apt’ (sudo apt-get install linux-source), o descargándolas desde Ubuntu Packages.

También es posible compilar las fuentes oficiales del núcleo, que puede descargar desde aquí.

Siempre las fuentes del núcleo las desempaquetaremos en /usr/src/

Veamos un ejemplo:

sudo tar xjvf /usr/src/linux-source-2.6.30.tar.bz2

Y luego deberemos ir directamente al directorio principal del árbol de fuentes del núcleo.  Como ejemplo vamos a suponer que estamos en este directorio

cd /usr/src/linux-source-2.6.30/

Nos asegurarnos de contar con todos los paquetes necesarios para compilar el núcleo en Ubuntu

sudo apt-get install kernel-package fakeroot build-essential makedumpfile

Ahora usted está en el directorio principal del árbol de las fuentes del núcleo. Antes de compilar, tiene que configurarlo. Si desea reutilizar la configuración del núcleo que está ejecutando, comience con:

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

Pero antes que ejecute ‘make menuconfig’  (que es el próximo paso a realizar), asegúrese que tiene los paquetes necesarios:

sudo apt-get install libncurses5 libncurses5-dev

sudo make menuconfig

También puede utilizar ‘make xconfig’ una interfaz más cómoda aún para la configuración. Antes de utilizar esta opción necesitamos instalar lo siguiente:

sudo apt-get install qt3-dev-tools libqt3-mt-dev

sudo make xconfig

Si ha reutilizado la configuración existente, vea que los núcleos Ubuntu se compilan con información de depuración incorporada, lo cual resulta en que los módulos del núcleo resultantes (archivos *.ko) sean mucho más grandes de lo que serían normalmente. Para desactivar esto, vaya a “Kernel hacking”; ahi, bajo “Kernel debugging”, desactive “Compile the kernel with debug info”.

Entramos a la pantalla de configuración:

ventana1

Ubicamos ‘Kernel Hacking’ y presionamos Enter

ventana2

Bajamos hasta encontrar ‘Compile the kernel with debug info’ y lo deseleccionamos con la barra espaciadora:

ventana3

Luego exit, para salir de esta pantalla y posteriormente salvamos la configuración y salimos.

Ahora puede compilar el núcleo y crear los paquetes

sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-alguna-cadena-aquí kernel-image kernel-headers

Puede habilitar make paralelo (parecido a make -j), aunque no es necesario, definiendo la variable de entorno
CONCURRENCY_LEVEL . No trate de añadir la opción -j a make-kpkg. Pruebe agregar 1+número de cores
del procesador, por ejemplo si tiene un dual core: export CONCURRENCY_LEVEL=3
Los paquetes deb van a ser creados en el directorio principal del directorio de las fuentes de Linux. (/usr/src/)

Instale el nuevo núcleo

Si desea ver una pantalla de presentación de Ubuntu (o utilizar modo texto) antes de pasar al servidor X en
lugar de una pantalla vacía, asegúrese que el controlador de framebuffer carga:

echo vesafb | sudo tee -a /etc/initramfs-tools/modules
echo fbcon | sudo tee -a /etc/initramfs-tools/modules

Ahora que le ha dicho a initramfs-tools los módulos que debe incluir y la compilación está completa, puede instalar
los paquetes deb generados utilizando dpkg:

sudo dpkg -i linux-image-2.6.20-16-2be-k7_2.6.20-16_i386.deb
sudo dpkg -i linux-headers-2.6.20-16-2be-k7_2.6.20-16_i386.deb

Si usa módulos de linux-restricted-modules, necesitará recompilar estos con el nuevo paquete linux-headers.

fuente: Ubuntu Forums

Modificado por K|Ke

  • Share/Bookmark

Entradas relacionadas:

  1. Android sincronizado con kernel.org
  2. Instala picasa en Ubuntu
  3. Metacity en Ubuntu 10.04
  4. Prevenir intrusiones con fail2ban en Ubuntu y Ubuntu Server

11 Respuestas a “Compilar el kernel en Ubuntu”

  1. mama21mama Dice:

    wow expectacular.

    lo linkee a mi blog.

    vale la pena.

    Saludos

  2. mama21mama Dice:

    que raro mira

    http://supremos.pastebin.com/f609e10f3

  3. K|Ke Dice:

    Hola, me da la impresión que es un problema en /var/lib/dpkg/info, seguramente en el momento de la instalación del kernel algo no se agregó correctamente a la información del archivo, trata de ver por ahí y busca en la www, algo relacionado.

    Saludos.

  4. mama21mama Dice:

    mira que me dices de esto?

    http://juanarg.wordpress.com/2009/04/12/dpkg-error-al-procesar-pakete-%e2%80%93configure/

  5. K|Ke Dice:

    Mama21mama, haz esto y se va a solucionar $ sudo rm /var/lib/dpkg/info/linux-image-2.6.30-070709.postinst
    Luego $ sudo apt-get upgrade

    Saludos.

  6. mama21mama Dice:

    Problema solucionada jedi.
    Para cuando mi ascenso? xD

    En fin; analizemos el problema.
    Que hicimos mal para tener semejante error?
    Y traduciendo un poco… que hicimos?

  7. NauTiluS Dice:

    Hola, necesito una ayudita.

    Resulta que quiero optimizar la arquitectura para procesador un pentium 4.

    Mas detalles del asunto aqui.

    http://pastebin.ubuntu.com/218266/

    Dice que la arquitectura es para i386, pero si en la conf le especifique que es para la familia P4

    http://pastebin.ubuntu.com/218270/

    Esta encendida la opcion ahi, pero en el primer enlaze que te pase dice que no, o sea, el escoje la opcion de configuracion de otro sitio.

    Como tengo que hacerle o acaso estara bien ahi, para que se optimize para esta arquitectura?

    Nos vemos mas luego por el canal

  8. K|Ke Dice:

    Hola NauTiluS, no hay ningún error en la configuración de tu kernel. Debes saber que el Pentium 4 es un microprocesador de séptima generación basado en la arquitectura x86 de 32 bits. La arquitectura del conjunto de procesadores compatibles con el i386 suele ser llamada arquitectura i386. Ahora, los programas compilados para i386 pueden funcionar en todas las arquitecturas superiores de Intel o compatibles, desde 386 a 686. En definitiva la configuración de tu kernel esta correcta, así que adelante no más y a compilar :D

    Saludos.

  9. NauTiluS Dice:

    K|Ke, ya compile el kernel, pero ahora viene el paso para instalarlo, y ahi fue cuando cague el sistema la ultima vez que lo intente en ubuntu, que me decia problemas con los modulos.

    Bueno como el sistema esta recien instalado, seguire adelante :P

    Luego te cuento como me fue.

  10. NauTiluS Dice:

    Ya empezo a dar problemas jeejje

    Mas detalles en el enlaze.

    http://pastebin.ubuntu.com/218580/

    sudo rm /var/lib/dpkg/info/linux-image-2.6.30.1-14-07-09.postinst

    Hize eso que colocaste mas arriba, y luego me salio esto

    http://pastebin.ubuntu.com/218583/

    Y ahora me arrojo eso.

  11. K|Ke Dice:

    Hola NauTiluS, acepta la instalación no más no hay problema. De todas formas siempre tienes el kernel antiguo en tu sistema, ese no debes borrarlo. Como norma siempre uno debe tener un kernel de repuesto.

    Saludos.

Deje una respuesta

XHTML: Usted puede usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>