Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1019745
  • 博文数量: 297
  • 博客积分: 11721
  • 博客等级: 上将
  • 技术积分: 3431
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 10:21
文章分类

全部博文(297)

文章存档

2016年(9)

2011年(71)

2010年(137)

2009年(80)

分类: LINUX

2011-06-16 13:39:17

源程序hello.c:
////////////////////////////////////////////////////////////////////////////
#include
#include
#include

MODULE_LICENSE("Dual BSD/GPL");    
static int hello_init(void) //有的上面定义的是init_modules(void)是通不过编译的
{
    printk(KERN_ALERT "Hello, world\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, world\n");
}

module_init(hello_init);
module_exit(hello_exit);
////////////////////////////////////////////////////////////////////////

Makefile的内容:


ifneq ($(KERNELRELEASE),)
    obj-m := hello.o
else
    KDIR:=/lib/modules/$(shell uname -r)/build
    PWD:=$(shell pwd)

all:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
endif

clean:
    rm -f *.o *.ko *.mod.c .hello*
//////////////////////////////////////////////////////////

编译: make

加载模块:insmod ./hello.ko 

查看加载的模块: lsmod | grep hello

tail -f /var/log/message

Jun 16 13:40:31 localhost kernel: Hello, world


删除模块: rmmod hello
tail -f /var/log/message
Jun 16 13:41:46 localhost kernel: Goodbye, world

阅读(547) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~