#include<linux/module.h>
#include<linux/init.h>
int my_init(void){
printk("<1> Angus : Module Insertion is successful!");
return 0;
}
void my_cleanup(void){
printk("<1> Angus : Module unloading successful!");
}
module_init(my_init);
module_cleanup(my_cleanup);
生成文件:在Linux设备驱动程序的简单程序
obj-m:=simple.o
aoll:
make -C /usr/src/linux-headers-3.2.0-25-generic-pae/ M=$(PWD) modules
clean:
make -C /usr/src/linux-headers-3.2.0-25-generic-pae/ M=$(PWD) clean
使-C =>将做化妆, 在该路径/ usr/SRC之前改变到目录/linux-headers-3.2.0-25-generic-pae/我已经Makefile文件, 为什么是M = $(PWD)需要的?它做什么,我可以在哪里检查$ PWD? 的/usr/src/linux-headers-3.2.0-25-generic-pae/内部的Makefile有目标的所有:模块和目标模块,并有目标的清洁。 什么是obj-m?
感谢保罗·埃文斯。 – Angus
为什么这被标记为“不是答案”?我看起来很好。 – LarsH
@LarsH:我同意,这是一个答案,这只是错误的。 :-)问题在于'Makefile'中的三个单独的命令行由三个单独的shell命令运行。第一个'cd'运行,然后shell退出并返回到你所在的位置,第二个'echo'运行并打印工作目录,第三个'make'运行在错误的目录中。 – torek