Como Compilar un kernel Linux en 10 pasos
Autor: Sergio Belkin. Este obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.
Advertencia
El kernel que viene con las distribuciones es suficiente para la mayoría de los casos. Usar un kernel compilado a mano puede dejar el sistema inusable sino se realiza correctamente. No debería usarse en sistemas en producción salvo que se sepa exactamente qué, por qué y para qué se hace. Hay distribuciones que limitan o no proveen el soporte en sistemas Linux con kernels compilados a mano. Siempre es recomendable hacer un backup tanto del directorio /boot como del directorio /lib/modules.
Motivación
Si no has leído la Advertencia por favor no sigas. Leela detenidamente y seguimos. ¿Ya está? ¡OK! ¿Por qué compilar un kernel hoy en 2020? Un razón es que al compilar se puede aprender que funcionalidades proporciona el kernel, deshabilitar funciones que sabemos no vamos a usar, probar nuevas características ausentes en la versión del kernel de la distribución y también para entender más cómo trabaja el sistema operativo. Este how-to ha sido probado tanto en Debian 10 como en CentOS 8. En una máquina con 2GB y un único procesador llevaría menos de una hora hacerlo (obviamente cuantos más sean los módulos o componentes agregados más va a tardar). Recordar que se puede compilar como un ususuario común y luego pedir privilegios de root para instalar. Basta de palabras y manos a la obra.
1. Instalar los pre-requisitos
yum groupinstall "Development Tools" && yum install ncurses-devel zlib-devel binutils-devel elfutils-libelf-devel libkcapi-hmaccalc openssl-devel
En Debian, deberíamos instalar:
apt -y install build-essential libncurses-dev
2. Bajar las fuentes del kernel
Recomendable bajar o la rama Longterm o bien la Stable, por ejemplo:
curl -L -O https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.15.tar.xz
3. Desempaquetar las fuentes
tar avxf linux-5.8.15.tar.xz
4. Entrar en el directorio de las fuentes
cd linux-5.8.15
5. Tomar como referencia el kernel que estamos usando
cp /boot/config-$(uname -r) .config
6. Tomar como base los módulos del kernel que están en uso actualmente 😉 😉
make localmodconfig
(Le damos Enter hasta que termine)
7. Configuramos nuestro kernel a medida
make menuconfig
Esta parte es la más importante. Podemos dejar todo como está pero probablemente haya algo que no estamos usando que no se va a compilar y necesitaremos después. Entonces es importante recorrer algunas secciones para revisar si falta algo, en especial lo que tiene que ver con Netfilter, File Systems, etc . Por ejemplo: tomar los recaudos suficientes si el sistema está virtualizado o si usa containers.
Una vez hecho los ajustes necesarios, guardamos y salimos.
8. Compilamos el kernel
make
9. Instalamos los módulos del kernel con privilegios de root
sudo make modules_install
10. Instalamos el kernel con privilegios de root
sudo make install
¡Listo! Podemos reiniciar y comenzar a usar el kernel compilado por nosotros mismos.
Comentarios
Comments powered by Disqus