Chinaunix首页 | 论坛 | 博客
  • 博客访问: 592810
  • 博文数量: 88
  • 博客积分: 4769
  • 博客等级: 中校
  • 技术积分: 989
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-24 02:31
文章分类

全部博文(88)

文章存档

2012年(4)

2011年(35)

2010年(49)

分类: LINUX

2011-03-24 22:18:40


新建一个hello.c,输入一下内容:
  1. #include <linux/module.h>
  2. #include <linux/kernel.h>
  3. #include <linux/init.h>

  4. MODULE_LICENSE ("GPL");

  5. static int __init hello_init (void)
  6. {
  7.         printk (KERN_INFO "Hello world\n");
  8.         return 0;
  9. }

  10. static void __exit hello_exit (void)
  11. {
  12.         printk (KERN_INFO "Goodbye world\n");
  13. }

  14. module_init (hello_init);
  15. module_exit (hello_exit);

该模块的作用是在模块插入kernel时打印: Hello world
              在模块从kernel卸载时打印:Goodbye world
             
对应的Makefile的内容如下:
  1. EXTRA_CFLAGS += $(DEBFLAGS)

  2. ifeq ($(KERNELRELEASE),)

  3. KERNELDIR ?= your_kernel_path/linux-2.6.32.2 //这里写成你的kernel所在的路径

  4. PWD := $(shell pwd)

  5. modules:
  6.         $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

  7. modules_install:
  8.         $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

  9. clean:
  10.         rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

  11. .PHONY: modules modules_install clean

  12. else
  13. obj-m := hello.o
  14. endif
接下来运行make编译,成功后你将会看到hello.ko,将其放到开发板的根文件
系统中,使用insmod / lsmod / rmmod 命令进行调试。
阅读(1147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~