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.