以后想在linux驱动和嵌入式上发展,就学点这些东西,但是第一个hello world 模块就让我弄了半天!还是理解太浅。
下面贴一下源代码:
hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
/* the init function*/
static int hello_init(void)
{
printk(KERN_INFO "Hello world !/n");
return 0;
}
/* the distory function*/
static void hello_exit(void)
{
printk(KERN_INFO "Goodbye!/n");
}
module_init(hello_init);
module_exit(hello_exit);
//makefile很简单
obj-m:=hello.o
编译:
1.系统必须安装kernel-headers
2.注意下源程序中头文件路径
make -C /lib/modules/2.6.36-ARCH/build D=/PATH/
第一个路径是你的kerneldir
第二个路径是你的源文件路径
最后加载和删除模块:
insmod ./hello.ko
rmmod hello
当执行这两个命令时,未出现我们预期的字符串。有可能被输入到log文件里了。我的输入到 /var/log/messages.log