Cristian Prado writes: > Hola a todos > Estoy empezando a estudiar linux y queria hacer mi primer driver vacio > basandome en un tutorial que anda por alli: > Esto va en el archivo nada.c > > #define MODULE > > #include <linux/module.h> > > NO puedo pasar la compilacion : > gcc -I/usr/src/linux/include -O -Wall -c nada.c > o > gcc -I/usr/include/kunittest -O -Wall -c nada.c > > sabiendo que el archivo module.h esta en /usr/include/kunittest: > linuser@debian:/usr/include/kunittest$ ls > kunittest_export.h module.h runner.h tester.h > > linuser@debian:~/workspace/MI_PROGRAMA$ gcc -I/usr/include/kunittest -O -Wall > -c nada.c > nada.c:2:26: error: linux/module.h: No such file or directory > linuser@debian:~/workspace/MI_PROGRAMA$ > > Uso: > Distributor: Debian > Build Date: 11/12/2010
Yo tengo un esqueleto parecido. El archivo para compilar, llamado hello.c sería algo así: #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel world\n"); } module_init(hello_init); module_exit(hello_exit); y un Makefile para construirlo cómodamente: obj-m:= hello.o default: $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules Ni siquiera necesitas tener el código fuente del kernel, sólo las cabeceras. Por ejemplo, yo tengo instalado el paquete linux-headers-2.6.32-5-amd64, que es el que se corresponde con mi versión de kernel y arquitectura. Para compilar, sólo tienes que especificar en qué directorio están las cabeceras (puedes utilizar dpkg -L para averiguarlo, pero es generalmente bajo el directorio /usr/src/): $ make KERNELDIR=/usr/src/linux-headers-2.6.32-5-amd64/ -- Alberto -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87sjw5dvk7....@eps142.cdf.udc.es