Si.
Creo el makefile, lo ejecuto pero nada. Dice que no se hace nada para "default".
Si eso pongo aqui el codigo de ejemplo, y el makefile de ejemplo, a ver si me pudieras ayudar.
Un saludo.
Edito:
/* hola.c */
#ifndef MODULE
#define MODULE /* Estamos construyendo un módulo */
#endif
#ifndef __KERNEL__
#define __KERNEL__ /* Es un módulo del kernel */
#endif
#include <linux/module.h>
#include <linux/kernel.h> /* para printk */
#include <linux/init.h> /* module_init y module_exit */
/* Rutina de incialización */
static int __init ejemplo_inicio ()
{
printk ("¡Hola mundo!\n"); /* versión kernel de printf */
return 0;
}
/* Rutina de finalización */
static void __exit ejemplo_fin ()
{
printk ("¡Adiós mundo!\n");
}
module_init (ejemplo_inicio);
module_exit (ejemplo_fin);
/* Añadir información adicional al módulo */
MODULE_AUTHOR ("Anonimo");
MODULE_DESCRIPTION ("Modulo Hola Mundo");
# make -C ~/kernel-2.6 M=`pwd` modules
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hola.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
Creo el archivo .c, ejecuto la orden make, pero sale "no se hace nada para default"
Y esta parte del makefile, no la comprendo: "M=$(PWD) modules"