Hola,
estaba mirando un tutorial de como escribir drivers en linux, y al compilar los ejemplos del tutorial me aparecen errores.
El tutorial en pdf es el siguiente enlace: http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fwww.exa.unicen.edu.ar%2Fcatedras%2Frtlinux%2Fmaterial%2Fapuntes%2Fdriv_tut_last.pdf&ei=b3ajUI25MaWm0QXHh4HgAg&usg=AFQjCNEBEb5JwsWr9Emje2Plig1HMheE_Q&cad=rja (http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fwww.exa.unicen.edu.ar%2Fcatedras%2Frtlinux%2Fmaterial%2Fapuntes%2Fdriv_tut_last.pdf&ei=b3ajUI25MaWm0QXHh4HgAg&usg=AFQjCNEBEb5JwsWr9Emje2Plig1HMheE_Q&cad=rja)
El primer ejemplo es simple para ver como funciona. El codigo es el siguiente:
#define MODULE
#include <linux/module.h>
Y para compilar aparencen 2 formas:
$ gcc -c nada.c
la primera me salta este error:
nada.c:1:24: error fatal: linux/init.h: No existe el archivo o el directorio
compilación terminada.
$ gcc -I/usr/src/linux/include -O -Wall -c nada.c
y este lo mismo.
Alguien sabe porque no compila?
Es bastante probable que te falte las linux-headers
ya esta solucionado, encontre el makefile.
ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
.PHONY: build clean
build:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c
else
$(info Building with KERNELRELEASE = ${KERNELRELEASE})
obj-m := hola.o
endif