Compilación del kernel 2.6.20 en Ubuntu Edgy

En realidad, Edgy me parece una de las versiones menos recomendables de Ubuntu, pero tengo por ahí un CD de él para hacer pruebas.. (no es el oficial, sino Linux Mint 2) y por allá un tutorial de cómo compilar el kernel mencionado en Ubuntu 6.10, así que pondré aquí un resumen de los pasos necesarios, para tenerlos a mano cuando algún día me de por intentarlo, a ver qué sale. Por otra parte, aunque se ponga como ejemplo a Edgy, estas instrucciones son válidas para las otras versiones de Ubuntu, y con ligeros cambios, para cualquier distribución que use el kernel 2.6.

Antes de comenzar, si no están instalados los paquetes build-essential y kernel-package hay que hacerlo:

$ sudo apt-get install build-essential kernel-package

Las fuentes pueden encontrarse en www.kernel.org, tras descargarlas y descomprimirlas, se han de mover a /usr/src:

$ sudo mv linux-2.6.20-default /usr/src

Lo que está en rojo hay que cambiarlo por la versión exacta del kernel que se vaya a compilar.

Hecho esto, hay que entrar al /usr/src:

$ cd /usr/src

En caso de existir ya un enlace simbólico enlazado a un kernel antiguo hay que borrarlo:

$ sudo rm -R linux

A continuación, se ha de crear un enlace simbólico al directorio que contiene las fuentes para que quede como /usr/src/linux:

$ sudo ln -s linux-source-2.6.20 linux

Ya está todo preparado para poder compilar el kernel; aunque se puede hacer mediante distintas órdenes, las 2 formas más comunes para comenzar a compilarlo son: en modo texto (pero con menús) ejecutando make menuconfig o en modo gráfico, mediante make xconfig. Tanto en un caso como en el otro se necesita un paquete adicional: libncurses5-dev (con todas sus dependencias) para usar la primera opción, y libqt3-dev para la 2ª.

$ sudo apt-get install libncurses5-dev

$ sudo apt-get install libqt3-dev

Se puede partir de una configuración conocida para ahorrar trabajo (si se usa un kernel precompilado, no se ahorrará mucho) si se ha compilado un kernel anteriormente. Está en /boot, en el archivo config-2.6.17 (o la versión que sea) y hay que copiarlo a /usr/src/linux-2.6.20 renombrandolo a .config.

$ cd /usr/src/linux
$ sudo cp /boot/config-2.6.20 .config

Ahora ya puede comenzar la compilación; para ello hace falta paciencia y bastante tiempo. Hay que conocer bien la máquina para no eliminar algún modulo necesario; por ello, en caso de duda es mejor incluir más módulos de los estrictamente necesarios. Si, por ejemplo, hay una tarjeta gráfica XXXX y hay dos módulos pero no se sabe cuál de ellos es necesario, instala los dos).

Para construir el paquete o .deb para instalar el nuevo kernel, se usa la función make-kpkg. Ésta sustituye a las clásicas ordenes de antaño: make dep, make clean, make bzImage y make modules, por lo que se ahorrará trabajo y tiempo con make-kpkg. Habrá que introducir :

$ sudo make-kpkg clean
$ sudo make-kpkg –append-to-version=.XXXX –initrd kernel_image

Las XXXX representa una secuencia alfanumérica en la que se puede poner lo que se quiera; es útil poner la fecha de compilación; por ej:

Linux xoxe 2.6.20.100207 #1 SMP Sat Feb 10 16:07:05 CET 2007 i686 GNU/Linux

Conviene abstenerse de cosas como i386, i686, k6, k7, spark, o cualquier otra simbología de construcción y arquitectura.

Si se usa la fecha de compilación quedaría algo así:

$ sudo make-kpkg –append-to-version=.100207 –initrd kernel_image

Posiblemente tras introducir esta orden aparezca una advertencia diciendo que si se comete un error se puede poner en peligro la configuración o el sistema. Habrá que omitir esa advertencia y esperar, dado que la compilación dura bastante tiempo por lo que es un buen momento para tomarse un café, sacar al perro o seguir usando el PC para otras tareas mientras trabaja.

Si todo ha ido correctamente se habrá generado en /usr/src el archivo kernel-image-2.6.20.100207_10.00.Custom_i386.deb que se instala como un paquete normal:

$ sudo dpkg -i kernel-image-2.6.20.100207_10.00.Custom_i386.deb

Esto no solo lo instalará sino que tener que actualizar manualmente el initrd y el grub dado que lo hará todo solo, solo quedará borrar (opcionalmente) aquel enlace simbólico creado con la orden $ sudo rm -R linux, reiniciar y probar el nuevo kernel actualizado y personalizado.

2 Comments »

  1. […] que enseña a compilar el kernel en Ubuntu Hace tiempo que publiqué un post sobre la compilación del kernel y ahora he encontrado por Youtube otro tutorial parecido, pero en vídeo. Aunque las versiones de […]

    Like

  2. 2

    Thanks for the marvelous posting! I definitely enjoyed reading it, you could be a great author.
    I will make certain to bookmark your blog and will eventually come back from now on. I want
    to encourage yourself to continue your great posts, have a nice holiday weekend!

    Like


RSS Feed for this entry

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: