1) 在/home/yj/kernel中建立2个文件:hello.c makefile
Hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, Yangjin!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, see u, Jin!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("Yangjin");
MODULE_DESCRIPTION("helllo moudle-yangjin");
Makefile
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.32-24-generic/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
2) 在/home/yj/kernel目录下执行make:
3) 编译成功后,会生成hello.ko等文件,用ls –l查看;
4) 获取root权限,加载模块:insmod ./hello.ko
5) 终端无显示,此时需要查看/var/log/syslog文件:
cat /var/log/syslog | grep jin
可看到hello模块的输出。
6) 卸载模块:rmmod hello,输出同样在上一个文件中。