Feeds:
Entradas
Comentarios

Posts Tagged ‘compilar’

Tal y como explicaba en el primer artículo de esta serie de artículos sobre la compilación del kernel, compilar un kernel vanilla no es tarea fácil. Se requieren conocimientos avanzados para poder realizar este proceso. El kernel dispone de cientos de opciones que deberemos configurar. Si os decidís por este método,  vamos a ello. Debereis seguir los pasos explicados en el primer artículo para descargar el kernel que vayais a instalar.

Al igual que en la compilación de un kernel al estilo Debian, deberemos tener instaladas las siguientes herramientas para la compilación:

# aptitude install kernel-package libncurses5-dev fakeroot gcc make build-essential

Seguimos los pasos en este caso también para descomprimir el tarball. Copiamos el kernel que descargamos a /usr/src, descomprimimos y creamos un enlace llamado linux a la carpeta del kernel:

# cp /home/anduim/linux-2.6.28.tar.bz2 /usr/src/
# cd /usr/src
# tar xvjf linux-2.6.28.tar.bz2
# ln -s /usr/src/2.6.28/ linux
# cd linux

Si queremos utilizar las opciones del kernel anterior, haremos un

# make oldconfig (con lo cual se cargarán las opciones que teniamos en el otro kernel, y se nos avisará de las que hayan añadido)
# make menuconfig (entramos de lleno en la configuración)

NOTA: Si se quiere prescindir del initrd para el inicio con el nuevo kernel, es imprescindibe tener marcados como built-in (*) las opciones referentes al sistema de ficheros que estemos usando, en mi caso EXT3 (también EXT2), y las opciones correspondientes al soporte de SATA y/o RAID, según sea vuestro HD.

# make (este paso puede tardar bastante, dependiendo de la velocidad de tu ordenador)
# make modules_install

NOTA: En kernels anteriores era necesario hacer tambien un make modules, pero ya no, este paso se realiza automáticamente al hacer el make.

Una vez realizados estos pasos, tenemos dos opciones. O copiar a mano los ficheros necesarios para el arranque con el nuevo kernel, o dejar que se encargue de ello otro comando.

COPIAR FICHEROS DE ARRANQUE MANUALMENTE:

# cd /usr/src/linux
# cp System.map /boot/System.map-2.6.28-anduim
# cp .config /boot/config-2.6.28-anduim
# cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.28-anduim


COPIAR FICHEROS AUTOMATICAMENTE:

Ejecutamos el siguiente comando, y automaticamente se copiarán a /boot los ficheros System.map, .config y bzImage:

# make install

Continuamos con el proceso. Si hemos decidido hacer uso de initrd, deberemos generar dicho fichero. Hay que tener en cuenta que debe existir una carpeta con los módulos en /lib/modules, que se llame exactamente igual que la carpeta que contiene el kernel, en este caso sería /lib/modules/2.6.28. Esta carpeta se crea al ejecutarse el make modules_install. Ahora creamos el fichero de la siguiente forma:

# mkinitramfs -o /boot/initrd.img-2.6.28-anduim 2.6.28

Una vez generado el fichero initrd, solo nos faltará añadir la entrada correspondiente al fichero /boot/grub/menu.lst con el nuevo kernel:

title            Debian GNU/Linux, kernel 2.6.28-anduim
root             (hd0,0)
kernel           /boot/vmlinuz-2.6.28-anduim root=/dev/sda1 ro quiet
initrd           /boot/initrd.img-2.6.28-anduim

Los parámetros (hd0,0), y root=/dev/sda1 dependerán de cada caso en concreto, fijaros en la entrada de grub que usais habitualmente y sabreis cuales son los vuestros. Y la última linea, la del initrd, si habeis marcado bien en el menuconfig lo referente al Sistema de ficheros y las opciones SATA/IDE podreis eliminarlo, si no, dejadlo puesto para que arranque mientras buscais la solución.

Otras partes de la guía sobre el Kernel:

Anuncios

Read Full Post »

Lo primero es instalar todo lo necesario para la compilación (puede ser que algunas cosas ya estuvieran instaladas:)

# aptitude install kernel-package libncurses5-dev fakeroot gcc make build-essential

Copiamos a /usr/src el kernel que descargamos , descomprimimos y creamos un enlace llamado linux a la carpeta del kernel:

# cp /home/anduim/linux-2.6.28.tar.bz2 /usr/src/
# cd /usr/src
# tar xvjf linux-2.6.28.tar.bz2
# ln -s /usr/src/2.6.28/ linux
# cd linux

Ahora tenemos dos posibilidades. O usamos la configuración del kernel anterior para compilar, o configuramos el nuevo desde cero. Si nos decantamos por la primera opción, deberemos hacer lo siguiente (estando en /usr/src/linux):

# make oldconfig (con esto cargará automaticamente las opciones que tenías en el kernel anterior, y te dirá que novedades hay)

Si elegimos la segunda opción, entramos directamente a la configuración (agarraros fuerte, que vienen curvas 🙂

# make menuconfig

Aquí es donde realmente está lo complicado de compilar tu propio kernel. Si tienes dudas sobre que debes marcar y qué no, consúltalas o léete la ayuda que aparece en cada una de ellas. Una vez hayas revisado bien todo, salimos, guardando cuando nos pregunte, y comenzamos a generar el nuevo núcleo:

# make-kpkg clean
# fakeroot make-kpkg --initrd --revision="mi-version-1" kernel-image

Podemos cambiar “mi-version-1” por lo que queramos. Una vez que termine, se habrá creado un  fichero .deb en el directorio de arriba, el cual debemos instalar:

# cd ..
# dpkg -i kernel-image-2.6.28-mi-version-1.deb

Reiniciamos, y si todo estaba bien, arrancaremos con nuestro nuevo kernel.

Otras partes de la guía sobre el Kernel:

Read Full Post »