El objetivo de este ejercicio es crear un módulo sencillo y poder cargarlo en nuestro kernel con
el fin de consultar que el mismo se haya registrado correctamente
1°) Crear el archivo memory.c con el siguiente código
Código:
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
2°) Crear el archivo Makefile con el siguiente contenido
Código:
obj-m := memory.o
3°) Ahora es necesario compilar nuestro modulo usando el mismo kernel en que correrá el mismo, utilizaremos el que instalamos en el primer paso del ejercicio guiado.
Código:
make -C <KERNEL_CODE> M=‘pwd‘ modules
Bueno, les comento, el archivo memory.c y el Makefile los tengo en el directorio /root, y el kernel que estuve usando para la practica está en /usr/src/linux-4.10... El comando lo lanzé desde el directorio root, y fue el siguiente:
Código:
make -C /usr/src/linux-4.10 M=‘/root‘ module
Y el error que tuve fue:
Código:
make: se entra en el directorio '/usr/src/linux-4.10'
WARNING: Symbol version dump ./Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /root/memory.o
/bin/sh: 1: ./scripts/recordmcount: not found
scripts/Makefile.build:300: fallo en las instrucciones para el objetivo '/root/memory.o'
make[1]: *** [/root/memory.o] Error 127
Makefile:1490: fallo en las instrucciones para el objetivo '_module_/root'
make: *** [_module_/root] Error 2
make: se sale del directorio '/usr/src/linux-4.10'
Se me generó el archivo memory.o, pero creo que se me tendría que generar tambien un memory.ko... Me gustaría que me comentaran que estoy haciendo mal y como poder compilar correctamente el módulo.
Desde ya muchas gracias!