Una pequeña nota antes de comenzar: si está volviendo a compilar un núcleo con una versión idéntica al que ya está presente en su sistema, primero debe borrar los módulos antiguos. Por ejemplo, si está recompilando 2.6.8, debe borrar el directorio /lib/modules/2.6.8.
La compilación del núcleo y de los módulos, y la posterior instalación de los módulos se hace con las líneas siguientes:
make clean make all make modules_install install |
Un poco de vocabulario: Cualquier argumento como clean, all, etc., se denominan objetivos. Note que, comenzando con el núcleo 2.6, existe un objetivo denominado all (todo). Si ejecuta este objetivo es lo mismo que ejecutar (en la arquitectura x86) los objetivos bzImage y modules. Esta nueva opción construirá los objetivos preferidos para una arquitectura dada. Antes de 2.6, cada arquitectura tenía un nombre de opción diferente para compilar el núcleo. Si especifica varios objetivos para make como se muestra arriba, se ejecutarán los mismos en orden de aparición. Pero si uno de los objetivos falla, make no continuará más[39].
Veamos los objetivos diferentes y qué es lo que hacen:
bzImage: esto construye el núcleo. Note que este objetivo sólo es válido para los procesadores x86 y x86_64. Este objetivo también genera el archivo System.map para este núcleo. Más adelante veremos para que se usa este archivo.
modules: como su nombre (en inglés) lo indica, este objetivo generará los módulos para el núcleo que construyó recién. Si ha elegido no tener módulos, este objetivo no hará cosa alguna.
all: este objetivo generará la imagen del tipo de núcleo preferido y los módulos correspondientes a la arquitectura dada.
modules_install: esto instalará los módulos. De manera predeterminada, los módulos se instalarán en el directorio /lib/modules/<versión-del-núcleo>. Este objetivo también computa las dependencias de los módulos.
install: este último objetivo finalmente copiará el núcleo y los módulos a los lugares correctos y modificará las configuraciones del cargador de arranque para que el núcleo nuevo esté disponible al momento de arrancar la máquina. No lo utilice si prefiere realizar una instalación manual como se describe en “Instalando el núcleo nuevo manualmente”.
Ahora todo está compilado e instalado correctamente, ¡listo para ser probado! Simplemente vuelva a arrancar la máquina y elija el núcleo nuevo en el menú de arranque. Note que todavía está disponible el núcleo antiguo de forma tal que lo puede usar si experimenta problemas con el nuevo. Sin embargo, puede elegir instalar manualmente el núcleo y cambiar los menús de arranque a mano. De esto se trata la sección siguiente.
[39] En este caso, si falla la compilación, significa que hay un error en el núcleo... De ser así, por favor ¡repórtelo!