jump to navigation

Compilar el kernel en Ubuntu 10/11/2009

Posted by linopensoft in Tutoriales.
trackback

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

Anuncios
A %d blogueros les gusta esto: