jueves, 26 de noviembre de 2015

Cómo compilar un kernel "a la Debian"

El proceso de compilación de un kernel se ha simplificado bastante desde hace un tiempo hasta ahora. Esto nos facilita poder actualizar de forma sencilla el kernel para poder aprovechar mejor el hardware de máquinas nuevas con nuestro sistema operativo preferido.

Existen diversas formas de hacerlo, pero me centraré en la forma "a la Debian", ya que en este blog nos enfocamos siempre a distribuciones derivadas de Debian. Al lío.


     1.    Debemos conseguir el kernel que necesitemos. Según tu distribución es posible que haya kernels específicos ya parcheados.

Para descargar el último kernel disponible acceder a: https://www.kernel.org/ 
Si necesitas una versión específica puedes encontrarla aquí: https://www.kernel.org/pub/linux/kernel/


     2.    Descomprimir el kernel
  • $ tar -xzvf linux-kernel.tar.gz


     3.    Acceder a la carpeta del kernel
  • $ cd linux-kernel

Si se van a aplicar parches este sería el momento de realizar los cambios pertinentes en los ficheros de compilación.


     4.    Copiamos la configuración del kernel actual y configuramos el nuevo kernel basándonos en el antiguo.
  • $ cp /boot/config-kernel-version ./
  • $ make oldconfig

Al ejecutar "make oldconfig" copiará la configuración antigua en la nueva, pero habrá novedades en el nuevo kernel que tendremos que especificar si queremos instalarlas o no.


     5.    Definimos el número de hilos que queremos que se usen en la compilación. Lo ideal sería el número de núcleos de tu procesador + 1.
  • $ export CONCURRENCY_LEVEL=6

     6.    Compilamos el nuevo kernel y generamos la imagen del kernel y los headers
  • $ make-kpkg --rootcmd fakeroot --initrd --revision=1.0 --append-to-version=”loquesea” kernel_image kernel_headers

Tras acabar la compilación, que puede durar bastante, se habrán generado dos paquetes deb fuera de la carpeta donde nos ubicamos.


     7.    Salimos de la carpeta e instalamos los debs generados
  • $ cd ..
  • $ sudo dpkg -i linux-image.deb linux-headers.deb


Con ello sólo nos queda probar nuestro nuevo kernel reiniciando la máquina y eligiéndolo en el GRUB y comprobar que todo funciona correctamente.

Un saludo!!


PD: He de añadir que actualizar el kernel no siempre es la mejor opción. Es cierto que un kernel más nuevo dará soporte a cosas más actuales, pero también se puede dar el caso de que se deje de dar soporte a algún componente hardware del que dispongamos. Por lo que recomiendo que se estudie antes si es mejor actualizar o quedarse con el que se tiene.

1 comentario: