Ok. Linux es genial. Y una de las genialidades que agradan a muchos es el nivel de personalización que se puede alcanzar en una máquina corriendo Linux. Puedes cambiar casi absolutamente todo lo que se te antoje; algunas cosas son más difíciles que otras, claro, pero al final de cuentas se puede.
Una de esas cosas es el núcleo del sistema, mejor conocido como kernel. Propiamente, Linux es eso, un kernel; los demás programas que complementan el sistema operativo son los desarrollados por el proyecto GNU, es por ello que se puede correr el sistema con diferentes kernels. Dicho de otra manera, puedes tener varios núcleos con los que correr tu Ubuntu (son esas opciones que aparecen en el Grub cuando enciendes la máquina).
Pero ahora la pregunta del millón: ¿De qué me sirve compilar mi propio kernel? Le respuesta es sencilla: al compilarlo nosotros mismos podemos ajustarlo a nuestra computadora en particular, haciendo ésta más responsiva, es decir, más rápida.
Pues bien, pasemos a la parte práctica, como se hace todo ésto:
-
Lo primero es instalar los paquetes necesarios para compilar:
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev libncurses5 libncurses5-dev -
Después hay que conseguir un kernel. Ésto se puede hacer de dos formas, ya sea descargando el kernel más reciente desde kernel.org o usando el kernel que viene en los repositorios de Ubuntu. Personalmente, yo siempre uso el de los repositorios, principalmente porque, a pesar de no ser el más actual, incluye una gran cantidad de drivers extra (como el de mi tarjeta de red inalámbrica, por ejemplo), además de que ya viene parchado:
sudo apt-get install linux-source -
Ahora, hay que descomprimir el código, y crear un link simbólico a la carpeta que generó:
cd /usr/src
sudo tar -xvjf linux-source-2.6.22.tar.bz2
sudo rm -rf linux
sudo ln -s /usr/src/linux-source-2.6.22 linux
cd /usr/src/linux
-
Éste sería el momento de aplicar cualquier parche que se requiera, pero como ya lo mencioné, este kernel ya viene parchado (y sólo se puede usar un parche a la vez), así que procedemos a la parte interesante: la configuración:
sudo cp /boot/config-2.6.22* .config
sudo make xconfigDebe aparecer un ventana como ésta:

Aquí se puede personalizar el kernel marcando o desmarcando opciones. Ya que no sé mucho de ésto, sólo puedo recomendar la siguiente configuración, que es la que siempre uso, y me da buenos resultados:
(* = marcar, / = desmarcar):
- / Block Layer > IO Schedulers > Anticipatory I/O Scheduler.
- / Block Layer > IO Schedulers > Deadline I/O Scheduler.
- * Block Layer > IO Schedulers > CFQ I/O Scheduler.
- * Processor type and features > Processor Family (Aquí es importante seleccionar el tipo de procesador que tienes).
- / Processor type and features > Generic x86 support.
- * Processor type and features > Preemption Model > Voluntary Kernel Preemption.
- * Processor type and features > Timer frequency > 1000 HZ
- / Kernel Hacking > Kernel debugging.
Lo demás modifícalo sólo si en verdad sabes lo que haces… Al terminar sólo guarda al archivo y continua al siguiente paso.
-
Lo siguiente es preparar el código para compilar.
sudo make-kpkg clean -
Y ahora, la parte que todos estábamos esperando: la compilación. Antes de continuar debes saber que ésto va a tardar un buen tiempo… de una a cuatro horas aproximadamente… dependiendo del procesador. Hay que asegurarse que se está en /usr/src/linux/ con privilegios completos de root, y se comienza:
cd /usr/src/linux/
sudo su
make-kpkg -initrd –revision=999 kernel_image kernel_headers modules_image*El número que va en –revision es arbitrario, puedes poner lo que quieras, es sólo para identificación.
-
Por último, una vez pasadas las N-mil horas que haya tardado, se habrán creado dos paquetes (el kernel y sus headers) listos para instalarse.
cd /usr/src/
sudo dpkg -i linux-*.deb
¡Y Listo! Sólo reinicia y ya debes tener el nuevo kernel como opción de arranque en tu Grub.







Comentarios recientes