Notas Practica 2 Compilar el núcleo NOTAS: PRACTICA 2 COMPILAR EL NÚCLEO 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> • • make dep make clean 1 Notas Practica 2 Compilar el núcleo • • • make bzImage make modules make modules_install se pueden introducir los comandos en una sola línea y make los compila secuencialmente si no hay errores. • make dep clean bzImage modules modules_install 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 • lilo El comando make bzlilo realiza los siguientes pasos de forma automática • • • • cp /boot/vmlinuz /boot/vmlinuz.old cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz lilo cp /usr/src/linux/System.map /boot/System.map 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 2 Notas Practica 2 Compilar el núcleo 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. 3