入门级别的小例子,记录以备己用而已。
/home/yutao/桌面/helloworld目录下有两个文件:helloworld.c和Makefile
helloworld.c
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
static int hello_init(void)
{
printk("Hello! This is the helloworld module!\n");
return 0;
}
static void hello_exit(void)
{
printk("Module exit! Bye Bye!\n");
return;
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
Makefile
obj-m := helloworld.o
KERNELBUILD := /lib/modules/2.6.32.61/build
all:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o *.ko *.mod.c .tmp_versions modules* Module*
留意/lib/modules/2.6.32.61/build,这是我当前kernel版本对应的地址。
在终端中uname -r 显示2.6.32.61
代码就ok了,然后编译:
在当前目录下make就可以
还是在当前路径下安装module的命令:sudo insmod helloworld.ko
查看输出的log信息:dmesg | tail -10
卸载模块:rmmod helloworld