Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: Skali en 6 Junio 2017, 23:03 pm



Título: Error al compilar un módulo
Publicado por: Skali en 6 Junio 2017, 23:03 pm
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

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


Título: Re: Error al compilar un módulo
Publicado por: Slava_TZD en 7 Junio 2017, 01:20 am
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.