Chinaunix首页 | 论坛 | 博客
  • 博客访问: 48082
  • 博文数量: 14
  • 博客积分: 297
  • 博客等级: 二等列兵
  • 技术积分: 547
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-08 21:05
个人简介

努力做自己不喜欢的事情!

文章分类
文章存档

2013年(4)

2012年(10)

我的朋友

分类: LINUX

2012-07-31 22:08:13

A simple Hello Wrold Module
 
Source Code:
  1. #include <linux/init.h>
  2. #include <linux/module.h>
  3. MODULE_LICENSE("GPL"); /*这行用于告诉内核该模块拥有free license,在2.6中这是必须的*/
  4. /*执行真正的初始化工作*/
  5. static int hello_init(void)
  6. {
  7.      printk(KERN_ALERT "Hello, world\n");
  8.       return 0;
  9. }
  10. /*执行真正的析构工作*/
  11. static void hello_exit(void) {
  12.    printk(KERN_ALERT "Goodbye, cruel world\n");
  13. }
  14. /*该函数注册模块的构造函数*/
  15. module_init(hello_init);
  16. /*该函数注册模块的析构函数*/
  17. module_exit(hello_exit);
Makefile:
  1. obj-m += hello.o
  2. KERNEL_VERSION = /lib/modules/$(shell uname -r)/build/
  3. #PWD := $(shell pwd)
  4. all:
  5.         make -C $(KERNEL_VERSION) M=$(PWD) modules
  6. clean:
  7.         make -C $(KERNEL_VERSION) M=$(PWD) clean

Directory
/"your_dir"/helloworld/hello.c
/"your_dir"/helloworld/Makefile
 
Command
install module:
insmod hello.ko
cat /var/log/message
 
rmmod hello.ko
cat /var/log/message
 
finished.
阅读(962) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

LanceRen2012-08-23 20:09:26