Error al compilar un módulo

Iniciado por Skali, 6 Junio 2017, 23:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Skali

Muy buenas! Estaba haciendo mi tarea de sistemas operativos, siguiendo los pasos que se me indican pero tengo problemas al ejecutar el comando Make. Aclaro que mi objetivo NO es que me hagan la tarea. PARA NADA. Quiero que me ayuden a entender que estoy haciendo mal. Éste trabajo no es para entregar, es para poder aprender... Aca les dejo la consigna:

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

#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");


2°) Crear el archivo Makefile con el siguiente contenido

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.

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:

make -C /usr/src/linux-4.10 M='/root' module

Y el error que tuve fue:

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! :D

Slava_TZD

No estás haciendo nada mal, te falta el fichero Module.symvers. Es normal si no compilas /usr/src/linux-4.10 primero, Module.symvers se genera cuando compilas los módulos.


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.