Como ya sabréis el pasado día 12 de abril se liberó el kernel 4.0 de Linux, así que a colación de esta última release quise compilarlo a modo de prueba en un sistema Debian Wheezy. Los pasos a dar son bastante sencillos y sirven como guía para futuras compilaciones de kernel en la distro Debian.
Compilando el kernel Linux 4.0
Antes de nada, instalamos las herramientas básicas para el proceso de compilación: compilador gcc, librería ncurses para la configuración de las opciones del kernel, conjunto de herramientas de empaquetado dpkg de desarrollo…
apt-get install gcc make libncurses5-dev dpkg-dev fakeroot kernel-package
Descargamos y desempaquetamos el código fuente del kernel:
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.xz tar Jxvf linux-4.0.tar.xz
Configuramos las opciones del kernel que vamos a compilar. Para mantener la configuración del kernel actual (recomendado) hacemos:
cd linux-4.0/ cp /boot/config-`uname -r`* .config
Esta configuración se guardará en el fichero .config
que posteriormente se utilizará en el proceso de compilación. Lanzamos la herramienta menuconfig
para parametrizar el kernel. Se cargará el fichero .config
que anteriormente hemos creado con la configuración de nuestro kernel actual. Nos aseguramos de que esté marcada la opción Enable Loadable Module Support para evitar problemas posteriores. Por ejemplo, si utilizamos el driver privativo de Nvidia éste se carga en el kernel como módulo dinámico (DKMS) por lo que no es buena idea dejar el kernel sin soporte.
make menuconfig
Procedemos a realizar un limpieza inicial del árbol de código:
make-kpkg clean
Para la parte que viene ahora, podemos optimizar el proceso de compilación podemos exportar la variable CONCURRENCY_LEVEL
:
export CONCURRENCY_LEVEL=3
El nº variará en función de los cores que tengamos, cosa que podemos ver haciendo:
cat /proc/cpuinfo
Nos fijamos en cpu cores
, y daremos a la variable CONCURRENCY_LEVEL
el valor nº de cores + 1:
Procedemos a compilar y crear los paquetes .deb
que después utilizaremos para instalar el kernel. En --append-to-version
podéis poner el nombre de kernel personalizado que queráis.
fakeroot make-kpkg --append-to-version "-jotajotakernel" --revision "1" --initrd kernel_image kernel_headers
Nos vamos a dar un paseo, ya que el proceso tardará bastante en función de la capacidad de procesamiento de nuestro ordenador (en las compilaciones, tira bastante de CPU). Si volvemos y sigue compilando, repite el paso de irte a dar un paseo.
Cuando haya finalizado, instalamos el kernel de forma muy sencilla con dpkg
a partir de los paquetes .deb
que hemos creado gracias a make-kpkg
. Estos paquetes están en un directorio anterior al actual en el que hemos estado trabajando. Primero instalamos el kernel y después las cabeceras. No es necesario modificar nada del GRUB ya que todo este proceso está bastante automatizado:
cd .. dpkg -i linux-image-4.0.0-jotajotakernel_1_amd64.deb linux-headers-4.0.0-jotajotakernel_1_amd64.deb
Una vez haya terminado de instalar, reiniciamos:
reboot
En el próximo inicio, deberíamos ver en el GRUB nuestro Kernel 4.0 personalizado:
Y con esto y un bizcocho, a esperar a la versión 4.1