您的位置:首页 > 其它

妻子,情人,红颜知己

2009-03-03 01:22 197 查看
1 创建module
#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);

2 制作Makefile
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

3 #make
生成以下文件
-rw-r--r-- 1 hello.ko
-rw-r--r-- 1 hello.mod.c
-rw-r--r-- 1 hello.mod.o
-rw-r--r-- 1 hello.o
-rw-r--r-- 1 Module.markers
-rw-r--r-- 1 modules.order
-rw-r--r-- 1 Module.symvers

4加载 module cmd [insmod]
查看 module cmd [lsmod]
卸载 module cmd [rmmod]
如下:
root@ubuntu:/home/ubuntu/test2# lsmod | grep hello
root@ubuntu:/home/ubuntu/test2# insmod hello.ko
root@ubuntu:/home/ubuntu/test2# lsmod | grep hello
hello 9344 0
root@ubuntu:/home/ubuntu/test2# rmmod hello
root@ubuntu:/home/ubuntu/test2# lsmod | grep hello

运行加载 卸载 产生的log.
root@ubuntu:/home/ubuntu/test2# grep world /var/log/syslog
Feb 24 23:05:34 ubuntu kernel: [44241.806733] Hello, world
Feb 24 23:08:09 ubuntu kernel: [44396.972670] Goodbye, cruel world

学习ing 待续。。。

本文出自 “漂流中。。。” 博客,请务必保留此出处http://piaoliu.blog.51cto.com/949937/278587
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: