Compilación del Kernel

Antonio Giráldez

6 de febrero de 2004

El Kernel es el núcleo que controla lo que hace nuestro sistema operativo. Aunque ya hay documentación muy buena sobre como compilar el kernel daremos un repaso que no viene mal nunca. En cualquier caso nos debemos situar en el directorio donde estén las fuentes.

cd /usr/src/linux-laversionquesea

La compilación es una tarea que necesita de los privilegios de root. Para configurar el kernel disponemos de varios tipos de interfaces: la primera (y la más árida) es "make config", la segunda (que presenta un shell bastante aceptable ) es "make menuconfig". Puede que al ejecutar esta opción encontramos que da un error informándonos de que el sistema no es capaz de encontrar las librerías ncurses y que debemos instalarlas. Si hacemos un dselect veremos que ya hay algo de esto instalado. El primer paquete que el shell nos dice que no está instalado es libncurses5-dev. Lo instalamos y ya la opción "make menuconfig" debe funcionar sin problemas. Una tercera opción es "make xconfig"; es una interfaz en modo gráfico para utilizar con el servidor X.

Personalmente siempre uso "make menuconfig" pero es más por cuestión de costumbre, sin embargo al principio os aconsejo esta porque si necesitáis ayuda acerca de la descripción sobre cualquier opción, esta es más completa que en el caso de "make xconfig". Una vez marcadas las opciones que os sean necesarias abandonamos el programa de configuración que terminará escribiendo un fichero con las opciones que hayamos marcado. Luego deberemos hacer

make dep
make clean
make bzImage

Si hemos seleccionado opciones para ser instaladas como módulos haremos

make modules
make modules_install

Estos módulos podremos verlos luego con el comando modconf Al complilar se crea el fichero bzImage que es en núcleo comprimido. Dependiendo de la arquitectura de nuestro ordenador buscaremos el fichero en uno u otro directorio.

Lo que habría que hacer ahora es copiar el nuevo nucleo sobre el antiguo de la siguiente forma

cp usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz

Pero para prevenir un posible mal funcionamiento del nuevo núcleo es más prudente no hacer lo anterior hasta que lo hayamos probado suficientemente. Para esto y como en una instalación con binarios sin haber compilado el núcleo nunca, este se encuentra en /boot con el nombre vmlinuz (/boot/vmlinuz) podemos copiar nuestro nuevo bzImage con ese mismo nombre al directorio /boot.

Ahora editaremos lilo.conf para que permita arrancar el núcleo antiguo o el que acabamos de compilar. El fichero lilo.conf podría presentar entonces un aspecto como este

#
default=LinuxNuevo
image=/boot/bzImage
    label=LinuxNuevo
    read-only
#    restricted
#    alias=1
image=/vmlinuz
    label=LinuxViejo
    read-only
    optional
#    restricted
#    alias=2

Ejecuta ahora lilo y cuando arranque verás dos etiquetas para elegir qué kernel vas a usar (en este ejemplo se ha marcado que por defecto se arranque LinuxNuevo). Puede que quieras (es aconsejable) crear un diskette de arranque por si algo va mal crea uno con el comando mkboot.




Página creada en: 2004-11-04 11:41:06 +0000
© Copyright 2001, 2002, 2003, 2004, La Espiral, debian-laespiral@lists.debian.org
Permitida la copia y distribución textual, integral, siempre y cuando se mantenga este aviso.