PRÁCTICA 3

 

 COMPILAR EL NÚCLEO 

 

OBJETIVOS

 

·       Aprender a compilar el núcleo

·       Utilizar el comando Make

·       Comprender los tipos de compilación

 

 

TRABAJO

·       Realice una copia del núcleo original antes de modificar y o recompilar.

·       Compile el núcleo como un núcleo monolítico, sin módulos cargables.

·       Configure el cargador del núcleo LILO para que permita seleccionar un núcleo particular, uno de los cuales será la copia original del núcleo, modificando el fichero /etc/lilo.conf.

·       Generar un disquete de arranque con el nuevo núcleo con make bzdisk. para permitir iniciar el sistema desde disquete.

 

 

 DOCUMENTA-CION

README de los ficheros fuentes de linux

Maxwell cap 2

Notas del profesor

TIEMPO

2 Horas

 

 

 

 

COMPILAR EL NÚCLEO

 

Hay que tener privilegios de root

 

realizar antes una copia del núcleo (backup)

 

cp /boot/vmlinuz /boot/vmlinuz.old

 

ir al directorio de los fuentes del núcleo /usr/src/linux

 

es un trabajo mas fácil que configurar el núcleo.

 

existen varias formas, veamos algunas de ellas.

 

existe un fichero makefile para el compilador C, que permite generar un núcleo llamado zImage  de forma automática.

 

make zImage

 

se puede crear una imagen del núcleo comprimida, para evitar mensajes de “núcleo muy grande”, con el comando

 

make bzImage

 

los ficheros objetos que se generan el la compilación del núcleo se pueden borrar mediante

 

make clean

 

si no se borra se ocupa espacio en disco pero posteriores compilaciones van mas rápidas ya que solo se compilan las partes modificadas del núcleo.

 

make dep

 

crea dependencias entre los distintos componentes del núcleo.

 

make modules

 

Si hay funciones del núcleo que se realizan con módulos, hay que compilarlas

 

make modules_install

 

instala las funciones de los módulos  en el directorio /lib/modules/<versión>

 

 

se pueden introducir los comandos en una sola línea y make los compila secuencialmente si no hay errores.

 

 

despues de la compilación, el núcleo comprimido bzImage se encuentra en el directorio  /usr/src/linux/arch/i386/boot

 

hay que copiarlo a /boot

 

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

 

 

realizar un reboot y ejecutar el nuevo núcleo, o lanzar el cargador lilo

 

 

 

El comando make bzlilo realiza los siguientes pasos de forma automática

 

 

System.map contiene símbolos del núcleo para que los módulos puedan interactuar con las funciones del núcleo.

 

 

Como ejemplo resumen, ejecutar la orden

 

make dep clean bzlilo boot modules modules_install

 

 

 

Miscelaneos

 

Cuando escriba nuevo código del núcleo mantenga el formato y estilo según el fichero Documentation/CodingStile en el directorio de los fuentes del núcleo esto es: 8 caracteres de sangría; la llave abierta “{“, con el estilo de K&R, va en la misma línea que el if, else, for wile switch  o do.

 

Genere un fichero diffs o patch con los cambios efectuados con el comando diff.

 

Supongamos el núcleo original en el directorio linux-2.2.5

 

Supongamos el núcleo modificado con los cambios en linux-prueba

 

la secuencia de comandos es esta.

 

ln –s linux-prueba linux

make –C linux-2.2.5 distclean

make –C linux distclean

dif –urN linux-2.2.5 linux > nuevo.patch

 

el fichero nuevo.patch contiene los cambios para otros usuarios aplicar el match.