Compilar modulos kernel en ubuntu

Buenas, estoy intentando compilar un modulo, para hacer un driver en ubuntu, y no hay manera....la version del kernel es la 3.2.0

que deberia hacer?

Un saludo.
¿Tienes instalado el entorno básico de compilación?

Build-essential, headers del kernel etc etc

Un saludo.
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"
2 respuestas