Feeds:
Entradas
Comentarios

Posts Tagged ‘kernel’

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:

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 »

Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado

Esa es la definición de Kernel que nos da la Wikipedia. Como centro neurálgico o núcleo de nuestro sistema operativo, es lógico que en determinadas ocasiones nos veamos obligados a realizar cambios en el mismo.

Compilar un kernel no es tarea fácil y en la medida de lo posible deberíamos abstenernos de meternos en berenjenales. Aun así, si después de estar seguro que con uno precompilado (linux-image-x.x.x) no solucionas tu problema y te quieres meter de lleno en la compilación de un kernel a tu medida, has de saber que hay dos opciones distintas para realizar dicha labor:

  • Compilación al estilo Debian: de esta forma, lo que hacemos es instalar un kernel con las mismas opciones (si queremos) que teníamos con el kernel anterior y generar un paquete .deb para su posterior instalación.
  • Compilación de un Kernel Vanilla: Este método es bastante mas crudo, ya que partimos de un kernel totalmente limpio (si queremos), el cual modificaremos a nuestro gusto hasta dejarlo totalmente personalizado.

El lugar mas seguro para descargar el kernel es la página oficial del mismo: http://www.kernel.org. Evita hacer descargas a través de Emule, o de sitios extraños. En la portada de la misma tendremos los enlaces para descargar la versión del kernel que queramos. En nuestro caso, bajaremos el último estable, que a fecha de este artículo es la versión 2.6.28:

En la misma línea del kernel, a la derecha, vemos una serie de enlaces en forma de letra. Abajo nos explican que significa cada uno. La opción Changelog es importante, pues ahí podremos consultas las mejoras y novedades que aparecen en la nueva versión del núcleo.

Pulsamos en la F que hay a la derecha en la línea del kernel 2.6.28 para bajarnos las fuentes completas a nuestro directorio, y cuando termine, tendremos un fichero llamado linux-2.6.28.tar.bz2.

Enlaces complementarios:

Otras partes de la guía sobre el Kernel:

Read Full Post »